前提条件
カスタム イベントの設定を完了します。
インタースティシャル広告をリクエストする
ウォーターフォール メディエーション チェーンでカスタム イベント広告申込情報に到達すると、カスタム イベントの作成時に指定したクラス名で loadInterstitialAd()
メソッドが呼び出されます。この場合、メソッドは SampleCustomEvent
にあり、SampleInterstitialCustomEventLoader
で loadInterstitialAd()
メソッドを呼び出します。
インタースティシャル広告をリクエストするには、Adapter
を拡張するクラスを作成または変更します。
loadInterstitialAd()
を実装する。また、MediationInterstitialAd
を実装するための新しいクラスを作成します。
カスタム イベントの例では、SampleCustomEvent
は Adapter
クラスを拡張し、SampleInterstitialCustomEventLoader
にデリゲートします。
Java
package com.google.ads.mediation.sample.customevent; import com.google.android.gms.ads.mediation.Adapter; import com.google.android.gms.ads.mediation.MediationAdConfiguration; import com.google.android.gms.ads.mediation.MediationAdLoadCallback; import com.google.android.gms.ads.mediation.MediationInterstitialAd; import com.google.android.gms.ads.mediation.MediationInterstitialAdCallback; ... public class SampleCustomEvent extends Adapter { private SampleInterstitialCustomEventLoader interstitialLoader; @Override public void loadInterstitialAd( @NonNull MediationInterstitialAdConfiguration adConfiguration, @NonNull MediationAdLoadCallback<MediationInterstitialAd, MediationInterstitialAdCallback> callback) { interstitialLoader = new SampleInterstitialCustomEventLoader(adConfiguration, callback); interstitialLoader.loadAd(); } }
SampleInterstitialCustomEventLoader
は次のタスクを行います。
インタースティシャル広告の読み込みと
MediationAdLoadCallback
メソッドを呼び出します。MediationInterstitialAd
インターフェースを実装する。広告イベント コールバックを受信して Google Mobile Ads SDK に報告する
アド マネージャーの管理画面で定義されたオプション パラメータは、広告構成に含まれます。このパラメータには、
adConfiguration.getServerParameters().getString(MediationConfiguration.CUSTOM_EVENT_SERVER_PARAMETER_FIELD)
。
このパラメータは通常、広告オブジェクトをインスタンス化する際に広告ネットワーク SDK が要求する広告ユニット ID です。
Java
package com.google.ads.mediation.sample.customevent; import com.google.android.gms.ads.mediation.Adapter; import com.google.android.gms.ads.mediation.MediationInterstitialAdConfiguration; import com.google.android.gms.ads.mediation.MediationAdLoadCallback; import com.google.android.gms.ads.mediation.MediationInterstitialAd; import com.google.android.gms.ads.mediation.MediationInterstitialAdCallback; ... public class SampleInterstitialCustomEventLoader extends SampleAdListener implements MediationInterstitialAd { /** A sample third-party SDK interstitial ad. */ private SampleInterstitial sampleInterstitialAd; /** Configuration for requesting the interstitial ad from the third-party network. */ private final MediationInterstitialAdConfiguration mediationInterstitialAdConfiguration; /** Callback for interstitial ad events. */ private MediationInterstitialAdCallback interstitialAdCallback; /** Callback that fires on loading success or failure. */ private final MediationAdLoadCallback<MediationInterstitialAd, MediationInterstitialAdCallback> mediationAdLoadCallback; /** Constructor. */ public SampleInterstitialCustomEventLoader( @NonNull MediationInterstitialAdConfiguration mediationInterstitialAdConfiguration, @NonNull MediationAdLoadCallback<MediationInterstitialAd, MediationInterstitialAdCallback> mediationAdLoadCallback) { this.mediationInterstitialAdConfiguration = mediationInterstitialAdConfiguration; this.mediationAdLoadCallback = mediationAdLoadCallback; } /** Loads the interstitial ad from the third-party ad network. */ public void loadAd() { // All custom events have a server parameter named "parameter" that returns // back the parameter entered into the UI when defining the custom event. Log.i("InterstitialCustomEvent", "Begin loading interstitial ad."); String serverParameter = mediationInterstitialAdConfiguration.getServerParameters().getString( MediationConfiguration.CUSTOM_EVENT_SERVER_PARAMETER_FIELD); Log.d("InterstitialCustomEvent", "Received server parameter."); sampleInterstitialAd = new SampleInterstitial(mediationInterstitialAdConfiguration.getContext()); sampleInterstitialAd.setAdUnit(serverParameter); // Implement a SampleAdListener and forward callbacks to mediation. sampleInterstitialAd.setAdListener(this); // Make an ad request. Log.i("InterstitialCustomEvent", "start fetching interstitial ad."); sampleInterstitialAd.fetchAd( SampleCustomEvent.createSampleRequest(mediationInterstitialAdConfiguration)); } public SampleAdRequest createSampleRequest( MediationAdConfiguration mediationAdConfiguration) { SampleAdRequest request = new SampleAdRequest(); request.setTestMode(mediationAdConfiguration.isTestRequest()); request.setKeywords(mediationAdConfiguration.getMediationExtras().keySet()); return request; } }
広告の取得が成功した場合もエラーが発生した場合も、onSuccess()
または onFailure()
を呼び出すことになります。onSuccess()
は、次の実装を実装するクラスのインスタンスを渡すことで呼び出されます。
MediationInterstitialAd
。
通常、これらのメソッドは、アダプタが実装するサードパーティ SDK のコールバック内に実装されます。この例では、サンプル SDK が
関連するコールバックを含む SampleAdListener
がある
Java
@Override public void onAdFetchSucceeded() { interstitialAdCallback = mediationAdLoadCallback.onSuccess(this); } @Override public void onAdFetchFailed(SampleErrorCode errorCode) { mediationAdLoadCallback.onFailure(SampleCustomEventError.createSampleSdkError(errorCode)); }
MediationInterstitialAd
では、広告を表示する showAd()
メソッドを実装する必要があります。
Java
@Override public void showAd(@NonNull Context context) { sampleInterstitialAd.show(); }
メディエーション イベントを Google Mobile Ads SDK に転送する
onSuccess()
が呼び出されると、返された MediationInterstitialAdCallback
そのオブジェクトを使用して、プレゼンテーション イベントを
Google Mobile Ads SDK にリンクできます。「
SampleInterstitialCustomEventLoader
クラスは SampleAdListener
を拡張します。
インターフェースを使用して、サンプル広告ネットワークから Google モバイルにコールバックを転送します。
。
カスタム イベントには、こうしたコールバックを可能な限り漏れなく転送させましょう。これにより、アプリは同等イベントを Google Mobile Ads SDK から受け取ることができます。コールバックの使用例を以下に示します。
Java
@Override public void onAdFullScreen() { interstitialAdCallback.reportAdImpression(); interstitialAdCallback.onAdOpened(); } @Override public void onAdClosed() { interstitialAdCallback.onAdClosed(); }
これで、インタースティシャル広告のカスタム イベントの実装が完了しました。完全な サンプルを GitHub。 このサンプルは、すでにサポートされている広告ネットワークで使用することができます。また、変更を加えてカスタム イベント インタースティシャル広告を表示することもできます。