菜单

百度二段激励

1. 百度二段激励功能说明

⼆段激励⼴告:即在激励视频场景中,以转化任务的形式,通过对原有的激励⾦进⾏翻倍或膨胀,⽤额外增加出的奖励来激发⽤户再进⼀步发⽣转化。

2. 前提条件

  • SDK 版本>=v6.4.94
  • (CocoaPod接入)AnyThinkMediationBaiduAdapter >= 10.032.1
  • 手动接入请前往SDK下载中心重新勾选并下载10.032.1的百度联盟SDK及其Adapter适配器
  • 百度广告源为激励视频类型

3. 使用步骤

3.1 引入必要的头文件

objc 复制代码
#import <AnyThinkSDK/AnyThinkSDK.h>

3.2 配置二段激励参数

在加载激励视频广告时,添加二段激励的相关参数即可开启此功能。

4. 示例代码

4.1 完整实现示例

objc 复制代码
//
//  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

5. 参数详细说明

5.1 二段激励配置参数

参数Key 类型 说明 示例值
kATBaiduRewardedVideoRewardType NSString 奖励类型
1 = 膨胀奖励
2 = 翻倍奖励
@"2"
kATBaiduRewardedVideoBasicReward NSString 膨胀奖励数量 @"100"
kATBaiduRewardedVideoBasicUnit NSString 膨胀奖励单位
可自定义:元、金币、钻石等
@"元"
kATBaiduRewardedVideoAdvancedReward NSString 翻倍奖励数量 @"200"
kATBaiduRewardedVideoAdvancedUnit NSString 翻倍奖励单位 @"元"
kATBaiduRewardedVideoMultiple NSString 奖励倍数,建议两倍或以上 @"2"

5.2 奖励类型判断

rewardedVideoDidRewardSuccessForPlacemenID:extra: 回调中,通过 extra 字典的 reward_type 字段判断用户获得的奖励类型:

reward_type值 数据类型 说明
@"1" NSString 膨胀奖励
@"2" NSString 翻倍奖励

6. 注意事项

  • 所有二段激励参数均在加载广告时配置,而非展示时
  • 参数传入和获取请严格遵守类型
  • 务必在 rewardedVideoDidRewardSuccessForPlacemenID:extra: 回调中根据 reward_type 字段判断奖励类型

7. 常见问题

Q1: 如何判断二段激励功能是否生效?

A:rewardedVideoDidRewardSuccessForPlacemenID:extra: 回调中打印 extra 字典,如果包含 reward_type 字段,则说明二段激励功能已生效。

Q2: 用户一定会获得膨胀奖励、翻倍奖励吗?

A: 不一定。用户观看完视频后会获得基础奖励,只有当用户完成额外交互(如点击广告)时才会获得膨胀、翻倍奖励。具体交互方式由百度广告平台控制。

Q3: 如何测试二段激励功能?

A:

  1. 确保SDK版本符合要求
  2. 正确配置二段激励参数
  3. 加载并展示广告
  4. 观看完整视频并尝试点击广告
  5. 在激励回调中打印 extra 字典,查看 reward_type
上一个
摇一摇配置
下一个
政策合规
最近修改: 2026-02-09Powered by