请输入
菜单

开屏广告

💡Tips

  • 自动管理多广告位并行加载、缓存与比价展示,开发者只需 loadisReadyshow
  • 调用 load() 前必须确保 MCSDK.init() 已完成,否则加载会静默失败
  • 广告关闭后 SDK 自动补量,无需手动重新加载;isReady() 返回 false 时也会自动触发后台补量
  • 开屏广告包含 onAdLoadTimeout 超时回调,建议结合业务场景合理处理超时逻辑
  • show() 需传入 ViewGroup 容器,用于承载开屏广告视图

1. 加载广告

java 复制代码
// 1. 设置回调
MCSplashAdManager.getInstance().setListener(new MCSplashAdManagerListener() {
    @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) {
        // 广告关闭,建议在此回调中移除容器内的视图
        if (container != null) {
            container.removeAllViews();
        }
    }

    @Override
    public void onAdClicked(MCAdInfo adInfo) {
        // 广告点击
    }

    @Override
    public void onAdDisplayFailed(MCAdInfo adInfo, MCError error) {
        // 展示失败
    }

    @Override
    public void onAdRevenuePaid(MCAdInfo adInfo) {
        // 广告收益回调(用于收益归因)
    }

    // --- 开屏特有回调 ---
    @Override
    public void onAdLoadTimeout() {
        // 加载超时,可在此进入应用主页面
    }
});

// 2. 加载(SDK 根据服务端配置自动管理多广告位)
MCSplashAdManager.getInstance().load();

⚠️ 注意

  • setListener() 建议在 load() 之前调用,否则可能丢失首次加载回调
  • load() 调用后进入加载状态,加载未完成前重复调用会被自动忽略,无需手动防重复
  • onAdLoadTimeout 在加载超时时触发,建议在此回调中跳转到应用主页面,避免用户长时间等待

2. 展示广告

java 复制代码
// container 为显示开屏广告的父容器(ViewGroup)
if (MCSplashAdManager.getInstance().isReady()) {
    MCSplashAdManager.getInstance().show(activity, container);
}

💡 说明

  • 开屏广告需传入 ViewGroup 类型的容器参数,用于承载广告视图
  • show() 内部自动选择缓存池中 eCPM 最高的广告展示,无需手动比价
  • 展示后该广告位缓存被消耗,SDK 自动发起补量
  • isReady() 返回 false 时,SDK 会自动触发后台补量,可定期轮询检查就绪状态

3. 释放资源

java 复制代码
MCSplashAdManager.getInstance().destroy();

⚠️ 注意

  • 销毁后需重新调用 load() 才能继续使用
  • destroy() 重复调用是安全的
  • 建议在 onAdHidden 回调中同步清理容器视图(container.removeAllViews()

4. 设置自定义参数

java 复制代码
Map<String, Object> loadExtraParameter = new HashMap<>();
loadExtraParameter.put("key", "value");
MCSplashAdManager.getInstance().setLoadExtraParameter(loadExtraParameter);

Map<String, String> extraParameter = new HashMap<>();
extraParameter.put("key", "value");
MCSplashAdManager.getInstance().setExtraParameter(extraParameter);

// 自定义参数需在 load() 前设置
MCSplashAdManager.getInstance().load();

上一个
智能缓存
下一个
插屏广告
最近修改: 2026-04-07Powered by