激励视频广告适用于用户主动触发、以换取奖励的场景,例如游戏复活、领取积分等。
// 创建激励视频广告实例
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();
广告加载完成后,在用户触发奖励场景时展示激励视频。
// 检查广告是否就绪并展示
rewardedVideoAd.show(activity);
// 检查广告是否就绪
rewardedVideoAd.isAdReady()
酷盈 SDK 自 v6.5.72 起支持深度任务相关的二次激励,通过 SDMAdDeepRewardResultListener 监听激励结果。
SDMAdDeepRewardResultListener#onSuccess()。SDMRewardVideoListener#onAdReward()。可在广告开始展示后判断,例如在 SDMRewardVideoListener#onAdPlayStart() 中读取扩展信息。
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() 之前关闭该体验:
SDMSDK.setDeepRewardEnabled(false);
在不再需要广告实例时,应及时释放以避免内存泄漏;若已注册深度激励监听,请先置为 null。
// 释放广告资源
@Override
protected void onDestroy() {
super.onDestroy();
if (rewardedVideoAd != null) {
rewardedVideoAd.setDeepRewardResultListener(null);
rewardedVideoAd.setListener(null);
rewardedVideoAd.destroy();
}
}