Skip to main content

激励视频

一、集成建议#

  • 激励视频广告一般是全屏的15-30s的视频,调用时机是在给用户奖励或者获得某些特定物品时,用户看完广告下发奖励发放给用户
  • 激励视频广告是三方广告平台提供的一般不支持做定制或者修改
  • 激励视频广告一般需要预加载,在展示机会到来时,通过调用isAdReady方法检查是否有可用广告,有可用广告时,调用showAdWithSceneId:方法来展示广告

主要步骤:#

  • 创建TradPlusAdRewarded对象
  • 加载广告
  • 注册TradPlusADRewardedDelegate回调
  • 显示广告

注意事项#

  • 禁止在tpRewardedAdOneLayerLoad: didFailWithError:回调中执行广告加载的方法,否则会引起死循环。
  • 禁止在tpRewardedAdLoaded 回调中直接执行广告展示的方法。SDK有广告会过期自动补充功能。如果在tpRewardedAdLoaded 回调中执行showAdWithSceneId:,开发者会无法精准控制广告展示的时机。

二、TradPlusAdRewarded API说明#

1、加载、展示广告#

  • 参数说明
参数说明
AdUnitIDAdUnitID为TradPlus后台创建的广告位ID,SDK将根据广告位ID拉取配置并请求广告
sceneIdsceneId为广告场景ID是可选参数,默认为nil,开发者需和- (void)showAdWithSceneId:(nullable NSString *)sceneId;配套使用
如需使用广告场景请参考: 广告场景说明
  • 方法说明
方法说明
- (void)setAdUnitID:(NSString *)adUnitID;设置广告位ID
- (void)loadAd;请求该广告位激励视频广告
- (BOOL)isReady;检测该广告位是否有可用广告
true为有可用广告
flase为无可用广告
- (void)entryAdScenario:(nullable NSString *)sceneId;进入广告场景
广告场景是用来统计进入广告场景的次数和进入场景后展示广告的次数,所以请在准确的位置调用。
- (void)showAdWithSceneId:(nullable NSString *)sceneId;展示该广告位激励视频广告

2. 监听回调#

  • 参数说明
参数说明
adInfo广告位ID、三方广告平台、ecpm等信息,具体请参考回调信息说明
error返回的是TP封装的错误信息:详见: 错误码说明
  • TradPlusADRewardedDelegate 回调接口及说明
方法说明
- (void)tpRewardedAdLoaded:(NSDictionary *)adInfo;广告加载完成 首个广告源加载成功时回调 一次加载流程只会回调一次
- (void)tpRewardedAdLoadFailWithError:(NSError *)error;返回的是TP封装的错误信息:详见: 错误码说明
- (void)tpRewardedAdImpression:(NSDictionary *)adInfo;广告展示成功 三方认可的有效展示
- (void)tpRewardedAdShow:(NSDictionary )adInfo didFailWithError:(NSError )error;广告展示失败
- (void)tpRewardedAdClicked:(NSDictionary *)adInfo;广告被点击
- (void)tpRewardedAdDismissed:(NSDictionary *)adInfo;广告关闭
- (void)tpRewardedAdReward:(NSDictionary *)adInfo;完成奖励
- (void)tpRewardedAdStartLoad:(NSDictionary *)adInfo;v7.6.0+新增 开始加载流程
- (void)tpRewardedAdOneLayerStartLoad:(NSDictionary *)adInfo;当每个广告源开始加载时会都会回调一次。
v7.6.0+新增。替代原回调接口:tpRewardedAdLoadStart:(NSDictionary *)adInfo;
- (void)tpRewardedAdIsLoading:(NSDictionary *)adInfo;v8.7.0+新增,调用load之后如果收到此回调,说明广告位仍处于加载状态,请等待上一轮load结果回调后再触发新的一轮广告加载。
- (void)tpRewardedAdPlayAgainReward:(NSDictionary *)adInfo;再看一个的完成奖励 (快手,穿山甲)
v7.8.0及以上 TradPlusADRewardedPlayAgainDelegate 统一回调
- (void)tpRewardedAdBidStart:(NSDictionary *)adInfo;bidding开始
- (void)tpRewardedAdBidEnd:(NSDictionary )adInfo error:(NSError )error;bidding结束 error = nil 表示成功
- (void)tpRewardedAdOneLayerLoaded:(NSDictionary *)adInfo;当每个广告源加载成功后会都会回调一次。
- (void)tpRewardedAdOneLayerLoad:(NSDictionary )adInfo didFailWithError:(NSError )error;当每个广告源加载失败后会都会回调一次,返回三方源的错误信息
- (void)tpRewardedAdAllLoaded:(BOOL)success;加载流程全部结束
- (void)tpRewardedAdPlayStart:(NSDictionary *)adInfo;开始播放
- (void)tpRewardedAdPlayEnd:(NSDictionary *)adInfo;播放结束
  • v7.8.0 新增TradPlusADRewardedPlayAgainDelegate回调处理国内再看一个的相关回调
self.rewardedVideoAd.playAgainDelegate = self;
  • TradPlusADRewardedPlayAgainDelegate回调接口及说明
方法说明
- (void)tpRewardedAdPlayAgainImpression:(NSDictionary *)adInfo;“再看一次”广告展现
- (void)tpRewardedAdPlayAgainShow:(NSDictionary )adInfo didFailWithError:(NSError )error;“再看一次”广告展现失败
- (void)tpRewardedAdPlayAgainClicked:(NSDictionary *)adInfo;“再看一次”广告被点击
- (void)tpRewardedAdPlayAgainReward:(NSDictionary *)adInfo;“再看一次”广告完成奖励,穿山甲和快手如果有进阶奖励,会存放在adInfo的reward_info中
- (void)tpRewardedAdPlayAgainPlayStart:(NSDictionary *)adInfo;“再看一次”广告视频播放开始
- (void)tpRewardedAdPlayAgainPlayEnd:(NSDictionary *)adInfo;“再看一次”广告视频播放结束

3. 清除缓存广告(v7.1.0+新增API)#

主要使用场景:游戏或应用切换用户后需要清理之前已加载完成的激励视频广告缓存。

[TradPlus clearCacheWithPlacementId:@"您的广告位D"]]

4. 服务器端奖励验证#

  • TPSDK将通过此API透传给三方SDK
  • 现已支持TradPlus的服务器激励回调三方广告平台的服务器激励回调为保证服务器激励的准确性,建议开发者优先使用三方广告平台的服务器激励回调。 请参考 激励视频服务器激励(S2S)说明
  • 参数说明
参数说明
userID*必填(用户唯一ID)可以使用账户系统或者该APP打开后,自动生成一个UUID,来标识该用户的唯一标识。
customData(用户自定义数据)根据三方平台要求传递信息。
- (void)setServerSideVerificationOptionsWithUserID:(nonnull NSString *)userID customData:(nullable NSString *)customData;

三、示例代码#

#import <TradPlusAds/TradPlusAdRewarded.h>
@interface TradPlusAdRewardedViewController ()<TradPlusADRewardedDelegate,TradPlusADRewardedPlayAgainDelegate>
@property (nonatomic, strong) TradPlusAdRewarded *rewardedVideoAd;
@end
@implementation TradPlusAdRewardedViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.rewardedVideoAd = [[TradPlusAdRewarded alloc] init];
[self.rewardedVideoAd setAdUnitID:@"您的广告位ID"];
self.rewardedVideoAd.delegate = self;
[self.rewardedVideoAd loadAd];
}
- (void)showRewardVideoAd
{
if (self.rewardedVideoAd.isAdReady)
{
[self.rewardedVideoAd showAdWithSceneId:nil];
}
}
#pragma mark - TradPlusADRewardedDelegate
///广告加载完成
- (void)tpRewardedAdLoaded:(NSDictionary *)adInfo
{
}
///广告加载失败
- (void)tpRewardedAdLoadFailWithError:(NSError *)error
{
}
///广告展现
- (void)tpRewardedAdImpression:(NSDictionary *)adInfo
{
}
///广告展现失败
- (void)tpRewardedAdShow:(NSDictionary *)adInfo didFailWithError:(NSError *)error
{
}
///广告被点击
- (void)tpRewardedAdClicked:(NSDictionary *)adInfo
{
}
///广告关闭
- (void)tpRewardedAdDismissed:(NSDictionary *)adInfo
{
}
@end

请参考:TradPlusAdRewardedViewController