Custom events let you add waterfall mediation for an ad network that isn't a supported ad network. You do this by implementing a custom event adapter for the ad network you want to integrate.
You can find a full sample custom event project in our GitHub repo.
Prerequisites
Before you can create custom events, you must first integrate one of the following ad format into your app:
Create a custom event in the UI
A custom event must first be created in the AdMob UI. See the instructions in Add a custom event.
You need to supply the following:
- Class Name
The fully-qualified name of the class that implements the custom event adapter—for example,
com.google.ads.mediation.sample.customevent.SampleCustomEvent
. As a best practice, we recommend using a single adapter class for all custom event ad formats.- Label
A unique name defining the ad source.
- Parameter
An optional string argument passed to your custom event adapter.
Initialize the adapter
When the Google Mobile Ads SDK initializes,
initialize()
is invoked on all supported third-party adapters and custom events configured
for the app within the AdMob UI. Use this method to
perform any necessary setup or initialization on the required third-party SDK
for your custom event.
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(); } }
Report version numbers
All custom events must report to the Google Mobile Ads SDK both the version of
the custom event adapter itself and the version of the third-party SDK the
custom event interfaces with. Versions are reported as
VersionInfo
objects:
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); } }
Request ad
To request an ad, refer to the instructions specific to the ad format: