⼆段激励⼴告:即在激励视频场景中,以转化任务的形式,通过对原有的激励⾦进⾏翻倍或膨胀,⽤额外增加出的奖励来激发⽤户再进⼀步发⽣转化。
- SDK 版本>=v6.4.94
- (CocoaPod接入)AnyThinkMediationBaiduAdapter >= 10.032.1
- 手动接入请前往SDK下载中心重新勾选并下载10.032.1的百度联盟SDK及其Adapter适配器
- 百度广告源为激励视频类型
#import <AnyThinkSDK/AnyThinkSDK.h>
在加载激励视频广告时,添加二段激励的相关参数即可开启此功能。
//
// RewardedVC.m
// iOSDemo
//
#import "RewardedVC.h"
#import <AnyThinkSDK/AnyThinkSDK.h>
#import "AdLoadConfigTool.h"
@interface RewardedVC () <ATRewardedVideoDelegate>
@property (nonatomic, assign) NSInteger retryAttempt;
@end
@implementation RewardedVC
//广告位ID
#define RewardedPlacementID @"b67f4ab93eb3a7"
//场景ID,可选,可在后台生成。没有可传入空字符串
#define RewardedSceneID @""
#pragma mark - Load Ad 加载广告
/// 加载广告
- (void)loadAd {
NSMutableDictionary *loadConfigDict = [NSMutableDictionary dictionary];
// ============ 二段激励配置开始 ============
// 奖励类型:1对应膨胀奖励,2对应翻倍奖励
[loadConfigDict setValue:@"1" forKey:kATBaiduRewardedVideoRewardType];
// 膨胀奖励数量
[loadConfigDict setValue:@"100" forKey:kATBaiduRewardedVideoBasicReward];
// 膨胀奖励单位(如:元、金币、钻石等)
[loadConfigDict setValue:@"元" forKey:kATBaiduRewardedVideoBasicUnit];
// 翻倍奖励数量
[loadConfigDict setValue:@"200" forKey:kATBaiduRewardedVideoAdvancedReward];
// 翻倍奖励单位
[loadConfigDict setValue:@"元" forKey:kATBaiduRewardedVideoAdvancedUnit];
// 翻倍倍数,建议2倍以上
[loadConfigDict setValue:@"2" forKey:kATBaiduRewardedVideoMultiple];
// ============ 二段激励配置结束 ============
// 服务端激励验证参数(可选)
[loadConfigDict setValue:@"media_val_RewardedVC" forKey:kATAdLoadingExtraMediaExtraKey];
[loadConfigDict setValue:@"rv_test_user_id" forKey:kATAdLoadingExtraUserIDKey];
[loadConfigDict setValue:@"reward_Name" forKey:kATAdLoadingExtraRewardNameKey];
[loadConfigDict setValue:@3 forKey:kATAdLoadingExtraRewardAmountKey];
// 加载广告
[[ATAdManager sharedManager] loadADWithPlacementID:RewardedPlacementID extra:loadConfigDict delegate:self];
}
#pragma mark - Show Ad 展示广告
/// 展示广告
- (void)showAd {
// 场景统计功能(可选)
[[ATAdManager sharedManager] entryRewardedVideoScenarioWithPlacementID:RewardedPlacementID scene:RewardedSceneID];
// 检查广告是否就绪
if (![[ATAdManager sharedManager] rewardedVideoReadyForPlacementID:RewardedPlacementID]) {
[self loadAd];
return;
}
// 展示配置
ATShowConfig *config = [[ATShowConfig alloc] initWithScene:RewardedSceneID showCustomExt:@"testShowCustomExt"];
// 展示广告
[[ATAdManager sharedManager] showRewardedVideoWithPlacementID:RewardedPlacementID config:config inViewController:self delegate:self];
}
#pragma mark - ATAdLoadingDelegate
/// 广告加载成功回调
- (void)didFinishLoadingADWithPlacementID:(NSString *)placementID {
NSLog(@"广告加载成功:%@", placementID);
// 重置重试次数
self.retryAttempt = 0;
}
/// 广告加载失败回调
- (void)didFailToLoadADWithPlacementID:(NSString *)placementID error:(NSError *)error {
NSLog(@"广告加载失败:%@ 错误码:%ld", placementID, error.code);
// 重试已达到3次,不再重试
if (self.retryAttempt >= 3) {
return;
}
self.retryAttempt++;
// 计算延迟时间:2的幂次方,最大8秒
NSInteger delaySec = pow(2, MIN(3, self.retryAttempt));
// 延迟重试加载
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delaySec * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[self loadAd];
});
}
#pragma mark - ATRewardedVideoDelegate
/// 激励成功回调(重要:获取奖励类型)
- (void)rewardedVideoDidRewardSuccessForPlacemenID:(NSString *)placementID extra:(NSDictionary *)extra {
NSLog(@"激励成功:%@ 额外信息:%@", placementID, extra);
//走到这里了,说明至少是基础奖励,具体奖励类型参考下方来判断
// 从extra中获取奖励类型
NSString *rewardType = extra[@"reward_type"];
if ([rewardType isEqualToString:@"1"]) {
// 用户获得膨胀奖励
NSLog(@"用户获得膨胀奖励");
// 在此处发放膨胀奖励给用户
} else if ([rewardType isEqualToString:@"2"]) {
// 用户获得翻倍奖励
NSLog(@"用户获得翻倍奖励");
// 在此处发放翻倍奖励给用户
}
}
/// 激励视频开始播放
- (void)rewardedVideoDidStartPlayingForPlacementID:(NSString *)placementID extra:(NSDictionary *)extra {
NSLog(@"激励视频开始播放:%@", placementID);
}
/// 激励视频播放完毕
- (void)rewardedVideoDidEndPlayingForPlacementID:(NSString *)placementID extra:(NSDictionary *)extra {
NSLog(@"激励视频播放完毕:%@", placementID);
}
/// 激励视频播放失败
- (void)rewardedVideoDidFailToPlayForPlacementID:(NSString*)placementID error:(NSError *)error extra:(NSDictionary *)extra {
NSLog(@"激励视频播放失败:%@ 错误码:%ld", placementID, (long)error.code);
// 预加载下一个广告
[self loadAd];
}
/// 激励视频已关闭
- (void)rewardedVideoDidCloseForPlacementID:(NSString *)placementID rewarded:(BOOL)rewarded extra:(NSDictionary *)extra {
NSLog(@"激励视频已关闭:%@, 是否已激励:%@", placementID, rewarded ? @"是" : @"否");
// 预加载下一个广告
[self loadAd];
}
/// 激励视频已点击
- (void)rewardedVideoDidClickForPlacementID:(NSString*)placementID extra:(NSDictionary *)extra {
NSLog(@"激励视频已点击:%@", placementID);
}
@end
| 参数Key | 类型 | 说明 | 示例值 |
|---|---|---|---|
| kATBaiduRewardedVideoRewardType | NSString | 奖励类型 1 = 膨胀奖励 2 = 翻倍奖励 |
@"2" |
| kATBaiduRewardedVideoBasicReward | NSString | 膨胀奖励数量 | @"100" |
| kATBaiduRewardedVideoBasicUnit | NSString | 膨胀奖励单位 可自定义:元、金币、钻石等 |
@"元" |
| kATBaiduRewardedVideoAdvancedReward | NSString | 翻倍奖励数量 | @"200" |
| kATBaiduRewardedVideoAdvancedUnit | NSString | 翻倍奖励单位 | @"元" |
| kATBaiduRewardedVideoMultiple | NSString | 奖励倍数,建议两倍或以上 | @"2" |
在 rewardedVideoDidRewardSuccessForPlacemenID:extra: 回调中,通过 extra 字典的 reward_type 字段判断用户获得的奖励类型:
| reward_type值 | 数据类型 | 说明 |
|---|---|---|
| @"1" | NSString | 膨胀奖励 |
| @"2" | NSString | 翻倍奖励 |
rewardedVideoDidRewardSuccessForPlacemenID:extra: 回调中根据 reward_type 字段判断奖励类型A: 在 rewardedVideoDidRewardSuccessForPlacemenID:extra: 回调中打印 extra 字典,如果包含 reward_type 字段,则说明二段激励功能已生效。
A: 不一定。用户观看完视频后会获得基础奖励,只有当用户完成额外交互(如点击广告)时才会获得膨胀、翻倍奖励。具体交互方式由百度广告平台控制。
A:
extra 字典,查看 reward_type 值