Skip to content

AdMobメディエーション実装方法

ren.fujii edited this page Sep 17, 2021 · 3 revisions

AdMobメディエーションを利用した実装方法

AdMobメディエーションを利用してアドフリくんの広告を表示することができます。
実装手順に従い、各広告を導入してください。
追加情報については、AdMob公式ガイドを参照してください。

AdMobメディエーション作成

① メニューからメディエーションを選択して「メディエーショングループを作成」を行います。
② 広告フォーマットとプラットフォームを選択します。 AdMob

広告種類によるAdMobの広告フォーマット

広告種類 AdMobの広告フォーマット
動画リワード リワード
インタースティシャル インタースティシャル
ネイティブ ネイティブアドバンス
レクタングル バナー
モバイルバナー バナー

③ 広告のソースから「カスタムイベントを追加」を行います。 AdMob

④ カスタムイベントの「ラベル」と「eCPM」を設定します。 AdMob

⑤ 以下の「広告種類によるClass nameとParameter」を参考に、広告ユニットのマッピングから「Class name」と「Parameter」を設定します。

広告種類によるClass nameとParameter

  • Class nameはiOSと異なるのでご注意下さい。
広告種類 Class name Parameter
動画リワード jp.tjkapp.adfurikunsdk.moviereward.AdfurikunAdMobReward アドフリくんの広告枠ID
インタースティシャル jp.tjkapp.adfurikunsdk.moviereward.AdfurikunAdMobInterstitial アドフリくんの広告枠ID
ネイティブ jp.tjkapp.adfurikunsdk.moviereward.AdfurikunAdMobNativeAd アドフリくんの広告枠ID
レクタングル jp.tjkapp.adfurikunsdk.moviereward.AdfurikunAdMobRectangle アドフリくんの広告枠ID
モバイルバナー jp.tjkapp.adfurikunsdk.moviereward.AdfurikunAdMobBanner アドフリくんの広告枠ID

AdMob

各広告の実装例

新しいバージョン(20.0.0以上)

① 動画リワード

// RewardedAdインスタンス変数を定義
RewardedAd mRewardedAd;
// 読み込み状態通知リスナーを定義
RewardedAdLoadCallback mLoadListener = new RewardedAdLoadCallback() {
        @Override
        public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
			// 広告読み込み完了時に呼ばれる。
			mRewardedAd = rewardedAd;
        }

        @Override
        public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
			// 広告読み込み失敗時に呼ばれる。
			mRewardedAd = null;
        }
};
// 獲得した報酬状態通知リスナーを定義
OnUserEarnedRewardListener mRewardedListener = new OnUserEarnedRewardListener() {
        @Override
        public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
            // 広告再生完了時に呼ばれる。
        }
};
// 再生状態通知リスナーを定義
FullScreenContentCallback mPlayListener = new FullScreenContentCallback() {
        @Override
        public void onAdShowedFullScreenContent() {
            // 広告再生開始時に呼ばれる。
        }

        @Override
        public void onAdDismissedFullScreenContent() {
            // 広告を閉じた時に呼ばれる。
			mRewardedAd = null;
        }

        @Override
        public void onAdFailedToShowFullScreenContent(@NonNull AdError adError) {
            // 広告再生失敗時に呼ばれる。
			mRewardedAd = null;
        }
};
●広告みを開始する
if (mRewardedAd == null) {
    RewardedAd.load(this, 広告ユニットID, AdManagerAdRequest.Builder().build(), loadListener);
}
●広告再生開始する
if (mRewardedAd != null) {
	mRewardedAd.setFullScreenContentCallback(mPlayListener);
	mRewardedAd.show(activity, mRewardedListener);
}

② インタースティシャル
// InterstitialAdインスタンス変数を定義
InterstitialAd mInterstitialAd;
// 読み込み状態通知リスナーを定義
InterstitialAdLoadCallback mLoadListener = new InterstitialAdLoadCallback() {
        @Override
        public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
			// 広告読み込み完了時に呼ばれる。
			mInterstitialAd = interstitialAd;
        }

        @Override
        public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
			// 広告読み込み失敗時に呼ばれる。
			mInterstitialAd = null;
        }
};
// 再生状態通知リスナーを定義
FullScreenContentCallback mPlayListener = new FullScreenContentCallback() {
        @Override
        public void onAdShowedFullScreenContent() {
            // 広告再生開始時に呼ばれる。
        }

        @Override
        public void onAdDismissedFullScreenContent() {
            // 広告を閉じた時に呼ばれる。
			mInterstitialAd = null;
        }

        @Override
        public void onAdFailedToShowFullScreenContent(@NonNull AdError adError) {
            // 広告再生失敗時に呼ばれる。
			mInterstitialAd = null;
        }
};
●広告みを開始する
if (mInterstitialAd == null) {
    InterstitialAd.load(this, 広告ユニットID, AdManagerAdRequest.Builder().build(), loadListener);
}
●広告再生開始する
if (mInterstitialAd != null) {
	mInterstitialAd.setFullScreenContentCallback(mPlayListener);
	mInterstitialAd.show(activity);
}

③ ネイティブ

// AdLoaderインスタンス変数を定義
AdLoader mAdLoader;
// 広告読み込み状態通知リスナーを定義
NativeAd.OnNativeAdLoadedListener mLoadListener = new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd nativeAd) {
			// 広告読み込み完了時に呼ばれる。
			// NativeAd利用して広告を組み立てる。
			// https://developers.google.com/admob/android/native/templates
        }
}
// 広告表示状態通知リスナーを定義
AdListener mShowListener = new AdListener() {
        @Override
        public void onAdLoaded() {
			// 広告読み込み完了時に呼ばれる。(OnNativeAdLoadedListener利用するため使わない)
        }

        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
			// // 広告読み込み失敗時に呼ばれる。
        }

        @Override
        public void onAdOpened() {
			// 広告表示時に呼ばれる。
        }

		@Override
        public void onAdImpression() {
			// 広告表示時に呼ばれる。
        }

        @Override
        public void onAdClosed() {
			// 広告を閉じた時に呼ばれる。
        }

        @Override
        public void onAdClicked() {
			// 広告をクリックした時に呼ばれる。
        }
}
@Override
protected void onCreate(Bundle bundle) {
	●ネイティブのインスタンス生成通知リスナーの設定
	// ネイティブのインスタンスを生成
	mAdLoader = AdLoader.Builder(context, 広告ユニットID)
			// 広告読み込み状態通知リスナーを設定
			.forNativeAd(mLoadListener)
			// 広告表示状態通知リスナーを設定
			.withAdListener(mShowListener)
			.build();
}
●広告みを開始する
if (!mAdLoader.isLoading()) {
	Bundle customEventExtras = new Bundle();
	customEventExtras.putInt(AdfurikunAdMobNativeAd.CUSTOM_EVENT_KEY_WIDTH, width);
	customEventExtras.putInt(AdfurikunAdMobNativeAd.CUSTOM_EVENT_KEY_HEIGHT, height);
	AdRequest adRequest = AdRequest.Builder()
			.addCustomEventExtrasBundle(AdfurikunAdMobNativeAd.class, customEventExtras)
			.build();
	mAdLoader.loadAd(adRequest);
}

※ネイティブは読み込み時に広告サイズをアダプター側に渡す必要があります。

④ レクタングル・バナー

// PublisherAdViewインスタンス変数を定義
AdManagerAdView mAdManagerAdView;
// 状態通知リスナーを定義
AdListener mListener = new AdListener() {
         @Override
        public void onAdLoaded() {
			// 広告読み込み完了時に呼ばれる。
        }

        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
			// // 広告読み込み失敗時に呼ばれる。
        }

        @Override
        public void onAdOpened() {
			// 広告表示時に呼ばれる。
        }

		@Override
        public void onAdImpression() {
			// 広告表示時に呼ばれる。
        }

        @Override
        public void onAdClosed() {
			// 広告を閉じた時に呼ばれる。
        }

        @Override
        public void onAdClicked() {
			// 広告をクリックした時に呼ばれる。
        }
}

@Override
protected void onCreate(Bundle bundle) {
	●レクタングルバナーのインスタンス生成通知リスナーの設定
	// レクタングル・バナーのインスタンスを生成
	mAdManagerAdView = new AdManagerAdView(context);
	// 広告サイズを設定(レクタングル:AdSize.MEDIUM_RECTANGLE、バナー:AdSize.BANNER)
	mAdManagerAdView.setAdSizes(広告サイズ);
	// 広告ユニットIDを設定
	mAdManagerAdView.setAdUnitId(広告ユニットID);
	// 状態通知リスナーを設定
	mAdManagerAdView.setAdListener(mListener);
	// レクタングル・バナービューを貼る
	containerView.addView(mPublisherAdView);
}
Activityのライフサイクルにわせて状態管理
@Override
protected void onResume() {
	super.onResume();
    mAdManagerAdView.resume();
}
@Override
protected void onPause() {
	mAdManagerAdView.pause();
	super.onPause();
}
@Override
protected void onDestroy() {
	mAdManagerAdView.destroy();
	super.onDestroy();
}
●広告みを開始する
if (!mAdManagerAdView.isLoading()) {
	AdManagerAdRequest adRequest = AdManagerAdRequest.Builder().build();
	mAdManagerAdView.loadAd(adRequest);
}

古いバージョン(20.0.0未満)

① 動画リワード

// RewardedVideoAdインスタンス変数を定義
RewardedVideoAd mRewardedVideoAd;
// 状態通知リスナーを定義
RewardedVideoAdListener mListener = new RewardedVideoAdListener() {
        @Override
        public void onRewardedVideoAdLoaded() {
			// 広告読み込み完了時に呼ばれる。
        }

        @Override
        public void onRewardedVideoAdFailedToLoad(int errorCode) {
			// 広告読み込み失敗時に呼ばれる。
        }

        @Override
        public void onRewardedVideoAdOpened() {
			// 広告表示時に呼ばれる。
        }

        @Override
        public void onRewardedVideoStarted() {
			// 広告再生開始時に呼ばれる。
        }

        @Override
        public void onRewardedVideoCompleted() {
			// 広告再生完了時に呼ばれる。
        }

        @Override
        public void onRewardedVideoAdClosed() {
			// 広告を閉じた時に呼ばれる。
        }

        @Override
        public void onRewarded(RewardItem rewardItem) {
			// 動画リワード広告がリワードをトリガーした時に呼ばれる。
        }

        @Override
        public void onRewardedVideoAdLeftApplication() {
			// 広告がアプリケーションを離れた時に呼ばれる。
        }
}
@Override
protected void onCreate(Bundle bundle) {
	●動画リワードのインスタンス生成通知リスナーの設定
	// 動画リワードのインスタンスを生成
	mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(context);
	// 状態通知リスナーを設定
	mRewardedVideoAd.setRewardedVideoAdListener(mListener);
}
Activityのライフサイクルにわせて状態管理
@Override
protected void onResume() {
	super.onResume();
    mRewardedVideoAd.resume(context);
}
@Override
protected void onPause() {
	mRewardedVideoAd.pause(context);
	super.onPause();
}
@Override
protected void onDestroy() {
	mRewardedVideoAd.destroy(context);
	super.onDestroy();
}
●広告みを開始する
if (!mRewardedVideoAd.isLoaded()) {
	AdRequest adRequest = AdRequest.Builder().build();
	mRewardedVideoAd.loadAd(広告ユニットID, adRequest);
}
●広告再生開始する
if (mRewardedVideoAd.isLoaded()) {
	mRewardedVideoAd.show();
}

② インタースティシャル
// InterstitialAdインスタンス変数を定義
InterstitialAd mInterstitialAd;
// 状態通知リスナーを定義
AdListener mListener = new AdListener() {
        @Override
        public void onAdLoaded() {
			// 広告読み込み完了時に呼ばれる。
        }

        @Override
        public void onAdFailedToLoad(int errorCode) {
			// // 広告読み込み失敗時に呼ばれる。
        }

        @Override
        public void onAdOpened() {
			// 広告表示時に呼ばれる。
        }

        @Override
        public void onAdClosed() {
			// 広告を閉じた時に呼ばれる。
        }

        @Override
        public void onAdClicked() {
			// 広告をクリックした時に呼ばれる。
        }

        @Override
        public void onAdLeftApplication() {
			// 広告がアプリケーションを離れた時に呼ばれる。
        }
}
@Override
protected void onCreate(Bundle bundle) {
	●インタースティシャルのインスタンス生成通知リスナーの設定
	// インタースティシャルのインスタンスを生成
	mInterstitialAd = new InterstitialAd(context);
	// 広告ユニットIDを設定
	mInterstitialAd.setAdUnitId(広告ユニットID);
	// 状態通知リスナーを設定
	mInterstitialAd.setAdListener(mListener);
}
●広告みを開始する
if (!mInterstitialAd.isLoaded() && !mInterstitialAd.isLoading()) {
	AdRequest adRequest = AdRequest.Builder().build();
	mInterstitialAd.loadAd(adRequest);
}
●広告再生開始する
if (mInterstitialAd.isLoaded()) {
	mInterstitialAd.show();
}

③ ネイティブ
// AdLoaderインスタンス変数を定義
AdLoader mAdLoader;
// 広告読み込み状態通知リスナーを定義
UnifiedNativeAd.OnUnifiedNativeAdLoadedListener mLoadListener = new UnifiedNativeAd.OnUnifiedNativeAdLoadedListener() {
        @Override
        public void onUnifiedNativeAdLoaded(UnifiedNativeAd unifiedNativeAd) {
			// 広告読み込み完了時に呼ばれる。
			// UnifiedNativeAd利用して広告を組み立てる。
			// https://developers.google.com/admob/android/native/advanced
        }
}
// 広告表示状態通知リスナーを定義
AdListener mShowListener = new AdListener() {
        @Override
        public void onAdLoaded() {
			// 広告読み込み完了時に呼ばれる。(OnUnifiedNativeAdLoadedListener利用するため使わない)
        }

        @Override
        public void onAdFailedToLoad(int errorCode) {
			// // 広告読み込み失敗時に呼ばれる。
        }

        @Override
        public void onAdOpened() {
			// 広告表示時に呼ばれる。
        }

        @Override
        public void onAdClosed() {
			// 広告を閉じた時に呼ばれる。
        }

        @Override
        public void onAdClicked() {
			// 広告をクリックした時に呼ばれる。
        }

        @Override
        public void onAdLeftApplication() {
			// 広告がアプリケーションを離れた時に呼ばれる。
        }
}
@Override
protected void onCreate(Bundle bundle) {
	●ネイティブのインスタンス生成通知リスナーの設定
	// ネイティブのインスタンスを生成
	mAdLoader = AdLoader.Builder(context, 広告ユニットID)
			// 広告読み込み状態通知リスナーを設定
			.forUnifiedNativeAd(mLoadListener)
			// 広告表示状態通知リスナーを設定
			.withAdListener(mShowListener)
			.build();
}
●広告みを開始する
if (!mAdLoader.isLoading()) {
	Bundle customEventExtras = new Bundle();
	customEventExtras.putInt(AdfurikunAdMobNativeAd.CUSTOM_EVENT_KEY_WIDTH, width);
	customEventExtras.putInt(AdfurikunAdMobNativeAd.CUSTOM_EVENT_KEY_HEIGHT, height);
	AdRequest adRequest = AdRequest.Builder()
			.addCustomEventExtrasBundle(AdfurikunAdMobNativeAd.class, customEventExtras)
			.build();
	mAdLoader.loadAd(adRequest);
}

※ネイティブは読み込み時に広告サイズをアダプター側に渡す必要があります。

④ レクタングル・バナー

// PublisherAdViewインスタンス変数を定義
PublisherAdView mPublisherAdView;
// 状態通知リスナーを定義
AdListener mListener = new AdListener() {
        @Override
        public void onAdLoaded() {
			// 広告読み込み完了時に呼ばれる。
        }

        @Override
        public void onAdFailedToLoad(int errorCode) {
			// // 広告読み込み失敗時に呼ばれる。
        }

        @Override
        public void onAdOpened() {
			// 広告表示時に呼ばれる。
        }

        @Override
        public void onAdClosed() {
			// 広告を閉じた時に呼ばれる。
        }

        @Override
        public void onAdClicked() {
			// 広告をクリックした時に呼ばれる。
        }

        @Override
        public void onAdLeftApplication() {
			// 広告がアプリケーションを離れた時に呼ばれる。
        }
}

@Override
protected void onCreate(Bundle bundle) {
	●レクタングルバナーのインスタンス生成通知リスナーの設定
	// レクタングル・バナーのインスタンスを生成
	mPublisherAdView = new PublisherAdView(context);
	// 広告サイズを設定(レクタングル:AdSize.MEDIUM_RECTANGLE、バナー:AdSize.BANNER)
	mPublisherAdView.setAdSizes(広告サイズ);
	// 広告ユニットIDを設定
	mPublisherAdView.setAdUnitId(広告ユニットID);
	// 状態通知リスナーを設定
	mPublisherAdView.setAdListener(mListener);
	// レクタングル・バナービューを貼る
	containerView.addView(mPublisherAdView);
}
Activityのライフサイクルにわせて状態管理
@Override
protected void onResume() {
	super.onResume();
    mPublisherAdView.resume();
}
@Override
protected void onPause() {
	mPublisherAdView.pause();
	super.onPause();
}
@Override
protected void onDestroy() {
	mPublisherAdView.destroy();
	super.onDestroy();
}
●広告みを開始する
if (!mPublisherAdView.isLoading()) {
	AdRequest adRequest = PublisherAdRequest.Builder().build();
	mPublisherAdView.loadAd(adRequest);
}

AdfurikunSDK Android について

SDKの組み込み

広告SDKの実装

その他

トラブルシューティング

Clone this wiki locally