请输入
菜单

激励视频广告

💡Tips

  • 自动管理多广告位并行加载、缓存与比价展示,开发者只需 loadisReadyshow
  • 调用 load() 前必须确保 MCSDK.init() 已完成,否则加载会静默失败
  • 广告关闭后 SDK 自动补量,无需手动重新加载;isReady() 返回 false 时也会自动触发后台补量

1. 加载广告

java 复制代码
// 1. 设置回调
MCRewardAdManager.getInstance().setListener(new MCRewardAdManagerListener() {
    @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) {
        // 广告收益回调(用于收益归因)
    }

    // --- 激励视频特有回调 ---
    @Override
    public void onUserRewarded(MCAdInfo adInfo, MCReward reward) {
        // 用户完成激励,在此发放奖励
    }

    @Override
    public void onUserRewardFailed(MCAdInfo adInfo) {
        // 激励发放失败
    }

    @Override
    public void onRewardedVideoStarted(MCAdInfo adInfo) {
        // 视频开始播放
    }

    @Override
    public void onRewardedVideoCompleted(MCAdInfo adInfo) {
        // 视频播放完成
    }
});

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

⚠️ 注意

  • setListener() 建议在 load() 之前调用,否则可能丢失首次加载回调
  • load() 调用后进入加载状态,加载未完成前重复调用会被自动忽略,无需手动防重复
  • onUserRewarded 是发放奖励的唯一可靠时机,请勿在其他回调中发放

2. 展示广告

java 复制代码
if (MCRewardAdManager.getInstance().isReady()) {
    MCRewardAdManager.getInstance().show(activity);
}

💡 说明

  • show() 内部自动选择缓存池中 eCPM 最高的广告展示,无需手动比价
  • 展示后该广告位缓存被消耗,SDK 自动发起补量
  • isReady() 返回 false 时,SDK 会自动触发后台补量,可定期轮询检查就绪状态

3. 释放资源

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

⚠️ 注意

  • 销毁后需重新调用 load() 才能继续使用
  • destroy() 重复调用是安全的

4. 设置自定义参数

java 复制代码
Map<String, Object> loadExtraParameter = new HashMap<>();
loadExtraParameter.put(MCAdConst.KEY.USER_ID, "test_userid_001");
loadExtraParameter.put(MCAdConst.KEY.USER_CUSTOM_DATA, "test_userdata_001");
MCRewardAdManager.getInstance().setLoadExtraParameter(loadExtraParameter);

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

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

💡 说明

激励视频支持通过 MCAdConst.KEY.USER_IDMCAdConst.KEY.USER_CUSTOM_DATA 传递用户标识与自定义数据,用于服务端激励验证。


上一个
插屏广告
下一个
政策合规
最近修改: 2026-04-07Powered by