💡Tips
- 🚀 Use preloading mechanism to enhance UX
- ⚠️ Handle lifecycle properly to prevent memory leaks
- 🔧 Recommended to use standardized callback workflow
MCInterstitialAd mInterstitialAd = new MCInterstitialAd(activity, "your mediation unit id");
mInterstitialAd.setListener(new MCAdListener() {
@Override
public void onAdLoaded(MCAdInfo mcAdInfo) {
// Ad load success callback
// Reset retry attempt
retryAttempt = 0;
}
@Override
public void onAdDisplayed(MCAdInfo mcAdInfo) {
// Ad display success callback
// pre-load
mInterstitialAd.loadAd();
}
@Override
public void onAdHidden(MCAdInfo mcAdInfo) {
// Ad closed callback
// pre-load
mInterstitialAd.loadAd();
}
@Override
public void onAdClicked(MCAdInfo mcAdInfo) {
// Ad click callback
}
@Override
public void onAdLoadFailed(MCError mcError) {
// Ad load failure callback
// We recommends that you retry with exponentially higher delays up to a maximum delay (in this case 8 seconds) or the maximum number of retries (in this case 3)
if (retryAttempt >= 3) return;
retryAttempt++;
long delayMillis = TimeUnit.SECONDS.toMillis((long) Math.pow(2, Math.min(3, retryAttempt)));
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mInterstitialAd.loadAd();
}
}, delayMillis);
}
@Override
public void onAdDisplayFailed(MCAdInfo mcAdInfo, MCError mcError) {
// Ad display failure callback
mInterstitialAd.loadAd();
}
});
mInterstitialAd.setRevenueListener(new MCAdRevenueListener() {
@Override
public void onAdRevenuePaid(MCAdInfo adInfo) {
// Revenue tracking callback
}
});
mInterstitialAd.loadAd();
if (mInterstitialAd.isReady()) {
mInterstitialAd.showAd(activity, null);
} else {
mInterstitialAd.loadAd();
}
if (mInterstitialAd != null) {
mInterstitialAd.destroy();
}
mInterstitialAd = new MCInterstitialAd(activity, "your mediation unit id");
mInterstitialAd.setListener(new MCAdListener() {
...
@Override
public void onAdLoaded(MCAdInfo mcAdInfo) {
// Retrieve custom parameters
mcAdInfo.getOriginJsonString();
}
...
});
Map<String, Object> loadExtraParameter = new HashMap<>();
loadExtraParameter.put("test_load_extra_key", "test_load_extra_value");
mInterstitialAd.setLoadExtraParameter(loadExtraParameter);
Map<String, String> extraParameter = new HashMap<>();
extraParameter.put("test_extra_key", "test_extra_value");
mInterstitialAd.setExtraParameter(extraParameter);
mInterstitialAd.loadAd();