カスタム イベントを使用すると、サポートされている広告ネットワーク以外の広告ネットワークで、ウォーターフォール メディエーションを追加できます。そのためには、統合する広告ネットワークに対応するカスタム イベント アダプタを実装します。
サンプル カスタム イベント プロジェクト全体については、GitHub リポジトリをご覧ください。
前提条件
カスタム イベントを作成するには、まず次のいずれかの広告フォーマットをアプリに統合する必要があります。
管理画面でカスタム イベントを作成する
カスタム イベントは、まず管理画面で AdMob作成する必要があります。手順については、 カスタム イベントを追加するをご覧ください。
次の情報が必要です。
- Class Name
カスタム イベント アダプタを実装するクラスの完全修飾名(例:
com.google.ads.mediation.sample.customevent.SampleCustomEvent
)。すべてのカスタム イベント広告フォーマットに、単一のアダプタクラスを使用することをおすすめします。- ラベル
広告ソースを定義する一意の名前。
- パラメータ
カスタム イベント アダプタに渡されるオプションの文字列引数。
アダプターを初期化する
Google Mobile Ads SDK が初期化されると、
initialize()
が、サポートされているすべてのサードパーティ アダプターと、 AdMob UI 内のアプリ用に設定されたカスタム イベントで呼び出されます。このメソッドを使用して、カスタム イベントに必要なサードパーティ SDK で必要なセットアップや初期化を行います。
Java
package com.google.ads.mediation.sample.customevent; import com.google.android.gms.ads.AdFormat; import com.google.android.gms.ads.mediation.Adapter; import com.google.android.gms.ads.mediation.InitializationCompleteCallback; import com.google.android.gms.ads.mediation.MediationConfiguration; ... public class SampleAdNetworkCustomEvent extends Adapter { private static final String SAMPLE_AD_UNIT_KEY = "parameter"; private InitializationCompleteCallback initializationCallback; @Override public void initialize(Context context, InitializationCompleteCallback initializationCompleteCallback, List<MediationConfiguration> mediationConfigurations) { // This is where you will initialize the SDK that this custom // event is built for. Upon finishing the SDK initialization, // call the completion handler with success. initializationCompleteCallback.onInitializationSucceeded(); } }
バージョン番号を報告する
すべてのカスタム イベントは、カスタム イベント アダプタ自体のバージョンと、カスタム イベントとやり取りする第三者 SDK のバージョンの両方を Google Mobile Ads SDK に報告する必要があります。バージョンは、
VersionInfo
オブジェクトとして報告されます。
Java
package com.google.ads.mediation.sample.customevent; public class SampleCustomEvent extends Adapter { @Override public VersionInfo getVersionInfo() { String versionString = new VersionInfo(1, 2, 3); String[] splits = versionString.split("\\."); if (splits.length >= 4) { int major = Integer.parseInt(splits[0]); int minor = Integer.parseInt(splits[1]); int micro = Integer.parseInt(splits[2]) * 100 + Integer.parseInt(splits[3]); return new VersionInfo(major, minor, micro); } return new VersionInfo(0, 0, 0); } @Override public VersionInfo getSDKVersionInfo() { String versionString = SampleAdRequest.getSDKVersion(); String[] splits = versionString.split("\\."); if (splits.length >= 3) { int major = Integer.parseInt(splits[0]); int minor = Integer.parseInt(splits[1]); int micro = Integer.parseInt(splits[2]); return new VersionInfo(major, minor, micro); } return new VersionInfo(0, 0, 0); } }
広告をリクエスト
広告をリクエストするには、各広告フォーマットの手順をご覧ください。