設定
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
カスタム イベントを使用すると、メディエーションのサポート対象でない広告ネットワークもウォーターフォール メディエーションに組み込むことができます。これは、組み込みたい広告ネットワークに対応するカスタム イベント アダプタを実装することによって実現可能です。
GitHub リポジトリでは、サンプル カスタム イベント プロジェクトの全体を確認できます。
前提条件
カスタム イベントを作成するには、あらかじめ次のいずれかの広告フォーマットをアプリに組み込んでおく必要があります。
UI でカスタム イベントを作成する
カスタム イベントはまず AdMob 管理画面で作成する必要があります。カスタム イベントを追加するの手順をご覧ください。
以下を指定する必要があります。
- クラス名
カスタム イベント アダプタを実装するクラスの完全修飾名です(例: com.google.ads.mediation.sample.customevent.SampleCustomEvent
)。ベスト プラクティスとして、すべてのカスタム イベント広告フォーマットで同一のアダプタクラスを使用することをおすすめします。
- ラベル
広告のソースを定義する一意の名前です。
- パラメータ
カスタム イベント アダプタに渡される文字列引数(任意使用)です。
アダプタを初期化する
Google Mobile Ads SDK が初期化されると、AdMob 管理画面で該当アプリ用に設定されたすべてのサポート対象サードパーティ アダプタおよびカスタム イベントで、initialize()
が呼び出されます。カスタム イベントに必要なサードパーティ SDK でセットアップまたは初期化を行う際は、このメソッドを使用します。
Java
package com.google.ads.mediation.sample.customevent;
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";
@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();
}
}
Kotlin
package com.google.ads.mediation.sample.customevent
import com.google.android.gms.ads.mediation.Adapter
import com.google.android.gms.ads.mediation.InitializationCompleteCallback
import com.google.android.gms.ads.mediation.MediationConfiguration
class SampleCustomEvent : Adapter() {
private val SAMPLE_AD_UNIT_KEY = "parameter"
override fun initialize(
context: Context,
initializationCompleteCallback: InitializationCompleteCallback,
mediationConfigurations: List<MediationConfiguration>
) {
// 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);
}
}
Kotlin
package com.google.ads.mediation.sample.customevent
class SampleCustomEvent : Adapter() {
override fun getVersionInfo(): VersionInfo {
val versionString = VersionInfo(1,2,3).toString()
val splits: List<String> = versionString.split("\\.")
if (splits.count() >= 4) {
val major = splits[0].toInt()
val minor = splits[1].toInt()
val micro = (splits[2].toInt() * 100) + splits[3].toInt()
return VersionInfo(major, minor, micro)
}
return VersionInfo(0, 0, 0)
}
override fun getSDKVersionInfo(): VersionInfo {
val versionString = VersionInfo(1,2,3).toString()
val splits: List<String> = versionString.split("\\.")
if (splits.count() >= 3) {
val major = splits[0].toInt()
val minor = splits[1].toInt()
val micro = splits[2].toInt()
return VersionInfo(major, minor, micro)
}
return VersionInfo(0, 0, 0)
}
}
広告をリクエストする
広告をリクエストする方法については、各広告フォーマットの固有手順をご覧ください。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-08-31 UTC。
[null,null,["最終更新日 2025-08-31 UTC。"],[[["\u003cp\u003eCustom events allow you to add waterfall mediation for unsupported ad networks by implementing a custom event adapter.\u003c/p\u003e\n"],["\u003cp\u003eBefore creating custom events, you must integrate a supported ad format (Banner, Interstitial, Native, or Rewarded) into your app.\u003c/p\u003e\n"],["\u003cp\u003eYou need to create a custom event in the AdMob UI, providing the class name, label, and optional parameter.\u003c/p\u003e\n"],["\u003cp\u003eAll custom event adapters need to report both the adapter and third-party SDK versions to the Google Mobile Ads SDK using \u003ccode\u003eVersionInfo\u003c/code\u003e objects.\u003c/p\u003e\n"],["\u003cp\u003eRefer to format-specific instructions to request an ad after implementing the custom event adapter.\u003c/p\u003e\n"]]],["Custom events enable waterfall mediation for unsupported ad networks by implementing a custom event adapter. This requires creating the event in the AdMob UI, providing a class name, label, and optional parameter. The adapter's `initialize()` method is called during SDK initialization to set up the third-party SDK. All custom events must report their adapter and the third-party SDK's version numbers using `VersionInfo`. Finally, specific instructions to request an ad are available per ad format.\n"],null,["# Setup\n\nCustom events let you add waterfall mediation for an ad network that isn't a\n[supported ad network](/admob/android/choose-networks). You do this by implementing\na custom event adapter for the ad network you want to integrate.\n\nYou can find a full sample custom event project in our [GitHub\nrepo](//github.com/googleads/googleads-mobile-android-mediation).\n\nPrerequisites\n-------------\n\nBefore you can create custom events, you must first integrate one of the\nfollowing ad format into your app:\n\n- [Banner](/admob/android/banner)\n- [Interstitial](/admob/android/interstitial)\n- [Native](/admob/android/native)\n- [Rewarded](/admob/android/rewarded)\n\nCreate a custom event in the UI\n-------------------------------\n\nA custom event must first be created in the AdMob\nUI. See the instructions in\n\n[Add a custom event](//support.google.com/admob/answer/3083407).\n\n\nYou need to supply the following:\n\nClass Name\n\n: The fully-qualified name of the class that implements the custom event\n adapter---for example,\n\n `com.google.ads.mediation.sample.customevent.SampleCustomEvent`. As a best\n practice, we recommend using a single adapter class for all custom event ad\n formats.\n\nLabel\n\n: A unique name defining the ad source.\n\nParameter\n\n: An optional string argument passed to your custom event adapter.\n\nInitialize the adapter\n----------------------\n\nWhen\n\nGoogle Mobile Ads SDK\n\ninitializes,\n\n`initialize()`\n\nis invoked on all supported third-party adapters and custom events configured\nfor the app within the AdMob UI. Use this method to\nperform any necessary setup or initialization on the required third-party SDK\nfor your custom event. \n\n### Java\n\n package com.google.ads.mediation.sample.customevent;\n\n import com.google.android.gms.ads.mediation.Adapter;\n import com.google.android.gms.ads.mediation.InitializationCompleteCallback;\n import com.google.android.gms.ads.mediation.MediationConfiguration;\n\n public class SampleAdNetworkCustomEvent extends Adapter {\n private static final String SAMPLE_AD_UNIT_KEY = \"parameter\";\n\n @Override\n public void initialize(Context context,\n InitializationCompleteCallback initializationCompleteCallback,\n List\u003cMediationConfiguration\u003e mediationConfigurations) {\n // This is where you will initialize the SDK that this custom\n // event is built for. Upon finishing the SDK initialization,\n // call the completion handler with success.\n initializationCompleteCallback.onInitializationSucceeded();\n }\n }\n\n### Kotlin\n\n package com.google.ads.mediation.sample.customevent\n\n import com.google.android.gms.ads.mediation.Adapter\n import com.google.android.gms.ads.mediation.InitializationCompleteCallback\n import com.google.android.gms.ads.mediation.MediationConfiguration\n\n class SampleCustomEvent : Adapter() {\n private val SAMPLE_AD_UNIT_KEY = \"parameter\"\n\n override fun initialize(\n context: Context,\n initializationCompleteCallback: InitializationCompleteCallback,\n mediationConfigurations: List\u003cMediationConfiguration\u003e\n ) {\n // This is where you will initialize the SDK that this custom\n // event is built for. Upon finishing the SDK initialization,\n // call the completion handler with success.\n initializationCompleteCallback.onInitializationSucceeded()\n }\n }\n\nReport version numbers\n----------------------\n\nAll custom events must report to\n\nGoogle Mobile Ads SDK\n\nboth the version of\nthe custom event adapter itself and the version of the third-party SDK the\ncustom event interfaces with. Versions are reported as\n\n[`VersionInfo`](/admob/android/reference/com/google/android/gms/ads/VersionInfo)\n\nobjects: \n\n### Java\n\n package com.google.ads.mediation.sample.customevent;\n\n public class SampleCustomEvent extends Adapter {\n\n @Override\n public VersionInfo getVersionInfo() {\n String versionString = new VersionInfo(1, 2, 3);\n String[] splits = versionString.split(\"\\\\.\");\n\n if (splits.length \u003e= 4) {\n int major = Integer.parseInt(splits[0]);\n int minor = Integer.parseInt(splits[1]);\n int micro = Integer.parseInt(splits[2]) * 100 + Integer.parseInt(splits[3]);\n return new VersionInfo(major, minor, micro);\n }\n\n return new VersionInfo(0, 0, 0);\n }\n\n @Override\n public VersionInfo getSDKVersionInfo() {\n String versionString = SampleAdRequest.getSDKVersion();\n String[] splits = versionString.split(\"\\\\.\");\n\n if (splits.length \u003e= 3) {\n int major = Integer.parseInt(splits[0]);\n int minor = Integer.parseInt(splits[1]);\n int micro = Integer.parseInt(splits[2]);\n return new VersionInfo(major, minor, micro);\n }\n\n return new VersionInfo(0, 0, 0);\n }\n }\n\n### Kotlin\n\n package com.google.ads.mediation.sample.customevent\n\n class SampleCustomEvent : Adapter() {\n override fun getVersionInfo(): VersionInfo {\n val versionString = VersionInfo(1,2,3).toString()\n val splits: List\u003cString\u003e = versionString.split(\"\\\\.\")\n\n if (splits.count() \u003e= 4) {\n val major = splits[0].toInt()\n val minor = splits[1].toInt()\n val micro = (splits[2].toInt() * 100) + splits[3].toInt()\n return VersionInfo(major, minor, micro)\n }\n\n return VersionInfo(0, 0, 0)\n }\n\n override fun getSDKVersionInfo(): VersionInfo {\n val versionString = VersionInfo(1,2,3).toString()\n val splits: List\u003cString\u003e = versionString.split(\"\\\\.\")\n\n if (splits.count() \u003e= 3) {\n val major = splits[0].toInt()\n val minor = splits[1].toInt()\n val micro = splits[2].toInt()\n return VersionInfo(major, minor, micro)\n }\n\n return VersionInfo(0, 0, 0)\n }\n }\n\nRequest ad\n----------\n\nTo request an ad, refer to the instructions specific to the ad format:\n\n- [Banner](/admob/android/custom-events/banner)\n- [Interstitial](/admob/android/custom-events/interstitial)\n- [Native](/admob/android/custom-events/native)\n- [Rewarded](/admob/android/custom-events/rewarded)"]]