AdMobメディエーション実装方法 - glossom-dev/AdfurikunSDK-Android GitHub Wiki
AdMobメディエーションを利用してアドフリくんの広告を表示することができます。
実装手順に従い、各広告を導入してください。
追加情報については、AdMob公式ガイドを参照してください。
① メニューからメディエーションを選択して「メディエーショングループを作成」を行います。
② 広告フォーマットとプラットフォームを選択します。
広告種類 | AdMobの広告フォーマット |
---|---|
動画リワード | リワード |
インタースティシャル | インタースティシャル |
ネイティブ | ネイティブアドバンス |
レクタングル | バナー |
モバイルバナー | バナー |
③ 広告のソースから「カスタムイベントを追加」を行います。
④ カスタムイベントの「ラベル」と「eCPM」を設定します。
⑤ 以下の「広告種類による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 |
// 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);
}
// 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);
}