帮助中心/文档详情/

激励视频广告回调方案说明

背景:

目前激励视频分为小于30s时长的激励视频以及大于30s(播放到30s时会展示跳过按钮,用户可随时跳过)的激励视频。此文档为开发者提供了官方建议的用来做奖励发放回调的回调方法。 开发者可遵循此文档对满足奖励发放条件的用户进行奖励发放

说明:

当前激励视频的奖励发放回调是依据播放进度进行奖励发放处理的。

  • 低于30s的激励视频播放进行达到90%即会回调奖励验证接口。
  • 高于30s激励视频播放到第27s的时候即会回调奖励验证接口。

奖励发放机制

当前开发者可用来发放奖励的时机有三种:

第一种:使用奖励验证回调方法进行奖励发放: - 推荐

优点:

  1. 开发者不管使用服务端验证还是客户端验证都可以通过此回调去进行奖励发放。
  2. 非用户主动操作导致的视频无法完成播放,也会给出回调。

此回调涵盖目前所有激励视频播放异常的场景

//iOS端:模板渲染激励视频

//依据返回的verify(YES/NO)为依据进行激励视频的发放处理
- (void)nativeExpressRewardedVideoAdServerRewardDidSucceed:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd verify:(BOOL)verify {
    [self pbud_logWithSEL:_cmd msg:[NSString stringWithFormat:@"verify:%@ rewardName:%@ rewardMount:%ld",verify?@"true":@"false",rewardedVideoAd.rewardedVideoModel.rewardName,(long)rewardedVideoAd.rewardedVideoModel.rewardAmount]];
}

//iOS端:SDK渲染激励视频

//依据返回的verify(YES/NO)为依据进行激励视频的发放处理
- (void)rewardedVideoAdServerRewardDidSucceed:(BURewardedVideoAd *)rewardedVideoAd verify:(BOOL)verify{
}

//Andriod端

 //依据verify返回的true/false进行奖励的发放处理
 @Override
 public void onRewardVerify(boolean rewardVerify, int rewardAmount, String rewardName, int errorCode, String errorMsg) {
    String logString = "verify:" + rewardVerify + " amount:" + rewardAmount +" name:" + rewardName + " errorCode:" + errorCode + " errorMsg:" + errorMsg;
    Log.e(TAG, "Callback --> " + logString);
    TToast.show(RewardVideoActivity.this, logString);
                    }

第二种:视频播放完成回调方法进行奖励的发放处理: - 不推荐

优点:

  1. 完全依据视频完播放的情况去进行奖励的发放。

缺点:

  1. 视频在非用户行为导致的播放异常情况下,用户无法领取奖励,可能会导致客诉。
  2. 无法通过服务端验证播放是否有效。
  3. 超过30s的视频,用户点击跳过则不会有此回调。

//iOS端:模版渲染激励视频

- (void)nativeExpressRewardedVideoAdDidPlayFinish:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *_Nullable)error {
  //播放完成回调
}

//iOS端:SDK渲染激励视频

- (void)rewardedVideoAdDidPlayFinish:(BURewardedVideoAd *)rewardedVideoAd didFailWithError:(NSError *)error {
}

//Andriod端

@Override
 public void onVideoComplete() {
                        Toast.makeText(RewardVideoActivity.this, "rewardVideoAd complete", Toast.LENGTH_SHORT).show();
                    }

第三种:广告关闭回调方法进行奖励的发放处理: - 不推荐

缺点:

  1. 奖励发放条件不严谨。不管出于什么原因,开发者关闭激励视频一定会触发此回调
  2. 无法通过服务端验证播放是否有效

//iOS端:模板渲染激励视频

- (void)nativeExpressRewardedVideoAdDidClose:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd {  
}

//iOS端:SDK渲染激励视频

- (void)rewardedVideoAdDidClose:(BURewardedVideoAd *)rewardedVideoAd {
    self.selectedView.promptStatus = BUDPromptStatusDefault;
}

//Andriod端

@Override
public void onAdClose() {
    Toast.makeText(RewardVideoActivity.this, "rewardVideoAd close", Toast.LENGTH_SHORT).show();
                    }

综上:

为了保证奖励发放的统一规范,建议开发者直接将奖励发放的时机放在奖励验证回调方法中进行处理即可。
//iOS端:模板渲染激励视频

//依据返回的verify(YES/NO)为依据进行激励视频的发放处理
- (void)nativeExpressRewardedVideoAdServerRewardDidSucceed:(BUNativeExpressRewardedVideoAd *)rewardedVideoAd verify:(BOOL)verify {
    [self pbud_logWithSEL:_cmd msg:[NSString stringWithFormat:@"verify:%@ rewardName:%@ rewardMount:%ld",verify?@"true":@"false",rewardedVideoAd.rewardedVideoModel.rewardName,(long)rewardedVideoAd.rewardedVideoModel.rewardAmount]];
}

//iOS端:SDK渲染激励视频

//依据返回的verify(YES/NO)为依据进行激励视频的发放处理
- (void)rewardedVideoAdServerRewardDidSucceed:(BURewardedVideoAd *)rewardedVideoAd verify:(BOOL)verify{
}

//Andriod端

 //依据verify返回的true/false进行奖励的发放处理
@Override
public void onRewardVerify(boolean rewardVerify, int rewardAmount, String rewardName, int errorCode, String errorMsg) {
    String logString = "verify:" + rewardVerify + " amount:" + rewardAmount + " name:" + rewardName + " errorCode:" + errorCode + " errorMsg:" + errorMsg;
    TToast.show(RewardVideoActivity.this, logString);
                    }

文档内容是否对您有帮助?
联系我们