菜单

激励视频

1. 加载广告

激励视频广告适用于用户主动触发、以换取奖励的场景,例如游戏复活、领取积分等。

java 复制代码
// 创建激励视频广告实例
SDMRewardedVideoAd rewardedVideoAd;
rewardedVideoAd = new SDMRewardedVideoAd(context, "PlacementId");

// 设置广告监听器
rewardedVideoAd.setListener(new SDMRewardVideoListener() {
    @Override
    public void onAdLoaded() {
        // 广告加载成功回调
    }

    @Override
    public void onAdLoadFail(AdError errorCode) {
        // 广告加载失败回调
    }

    @Override
    public void onAdReward() {
        // 用户获得奖励回调
    }

    @Override
    public void onAdPlayStart() {
        // 视频开始播放回调
    }

    @Override
    public void onAdPlayEnd() {
        // 视频播放结束回调
    }

    @Override
    public void onAdPlayFailed(AdError errorCode) {
        // 视频播放失败回调
    }

    @Override
    public void onAdClick() {
        // 广告点击回调
    }

    @Override
    public void onDeeplinkCallback(boolean isSuccess) {
        // Deeplink 回调
    }

    @Override
    public void onAdClose() {
        // 广告关闭回调
    }
});

// 深度激励:须在 load 之前注册
rewardedVideoAd.setDeepRewardResultListener(new SDMAdDeepRewardResultListener() {
    @Override
    public void onSuccess(java.util.List<SDMAdDeepRewardResult> results) {
        // 深度任务转化结果
    }

    @Override
    public void onError(int code, String message) {
    }
});

// 开始加载广告
rewardedVideoAd.load();

2. 展示广告

广告加载完成后,在用户触发奖励场景时展示激励视频。

java 复制代码
// 检查广告是否就绪并展示
rewardedVideoAd.show(activity);

3. 判断是否准备就绪

java 复制代码
// 检查广告是否就绪
rewardedVideoAd.isAdReady()

4. 二次激励

酷盈 SDK 自 v6.5.72 起支持深度任务相关的二次激励,通过 SDMAdDeepRewardResultListener 监听激励结果。

  • 仅在二次激励任务完成时,才会触发 SDMAdDeepRewardResultListener#onSuccess()
  • 看完包含二次激励的视频后, 仍然只触发常规激励回调: SDMRewardVideoListener#onAdReward()

判断广告是否包含二次激励

可在广告开始展示后判断,例如在 SDMRewardVideoListener#onAdPlayStart() 中读取扩展信息。

java 复制代码
SDMAd ad = rewardedVideoAd.getSDMAd();

// ...

@Override
public void onAdPlayStart() {
    if (ad != null) {
        java.util.Map<String, Object> extra = ad.getExtraInfo();
        Object taskTypeObj = extra.get(SDMAdDeepRewardResult.KEY_TASK_TYPE);
        // 值为 1 表示含深度激励(二次激励)能力
    }
}

二次激励开关

若不需要二次激励,可在 SDMRewardedVideoAd#load() 之前关闭该体验:

java 复制代码
SDMSDK.setDeepRewardEnabled(false);

5. 释放资源

在不再需要广告实例时,应及时释放以避免内存泄漏;若已注册深度激励监听,请先置为 null

java 复制代码
// 释放广告资源
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (rewardedVideoAd != null) {
            rewardedVideoAd.setDeepRewardResultListener(null);
            rewardedVideoAd.setListener(null);
            rewardedVideoAd.destroy();
        }
    }
上一个
广告样式
下一个
插屏广告
最近修改: 2026-04-29Powered by