💡Tips
- 自动管理多广告位并行加载、缓存与比价展示,开发者只需
load→isReady→show- 调用
load()前必须确保MCSDK.init()已完成,否则加载会静默失败- 广告关闭后 SDK 自动补量,无需手动重新加载;
isReady()返回 false 时也会自动触发后台补量
// 1. 设置回调
MCInterstitialAdManager.getInstance().setListener(new MCInterstitialAdManagerListener() {
@Override
public void onAdLoaded(MCAdInfo adInfo) {
// 至少一个广告就绪(一轮加载最多触发 1 次)
}
@Override
public void onAdLoadFailed(MCError error) {
// 所有广告位均加载失败(与 onAdLoaded 互斥)
}
@Override
public void onAdLoadFinished() {
// 本轮所有广告位加载结束(无论成功失败均会触发)
}
@Override
public void onAdDisplayed(MCAdInfo adInfo) {
// 广告展示成功
}
@Override
public void onAdHidden(MCAdInfo adInfo) {
// 广告关闭(SDK 自动补量,无需手动 load)
}
@Override
public void onAdClicked(MCAdInfo adInfo) {
// 广告点击
}
@Override
public void onAdDisplayFailed(MCAdInfo adInfo, MCError error) {
// 展示失败
}
@Override
public void onAdRevenuePaid(MCAdInfo adInfo) {
// 广告收益回调(用于收益归因)
}
});
// 2. 加载(SDK 根据服务端配置自动管理多广告位)
MCInterstitialAdManager.getInstance().load();
⚠️ 注意
setListener()建议在load()之前调用,否则可能丢失首次加载回调load()调用后进入加载状态,加载未完成前重复调用会被自动忽略,无需手动防重复
if (MCInterstitialAdManager.getInstance().isReady()) {
MCInterstitialAdManager.getInstance().show(activity);
}
💡 说明
show()内部自动选择缓存池中 eCPM 最高的广告展示,无需手动比价- 展示后该广告位缓存被消耗,SDK 自动发起补量
isReady()返回false时,SDK 会自动触发后台补量,可定期轮询检查就绪状态
MCInterstitialAdManager.getInstance().destroy();
⚠️ 注意
- 销毁后需重新调用
load()才能继续使用destroy()重复调用是安全的
Map<String, Object> loadExtraParameter = new HashMap<>();
loadExtraParameter.put("key", "value");
MCInterstitialAdManager.getInstance().setLoadExtraParameter(loadExtraParameter);
Map<String, String> extraParameter = new HashMap<>();
extraParameter.put("key", "value");
MCInterstitialAdManager.getInstance().setExtraParameter(extraParameter);
// 自定义参数需在 load() 前设置
MCInterstitialAdManager.getInstance().load();