RewardedVC.m
此步骤的extra字典中支持传入相关配置广告的参数与您的自定义参数,您可以在这里查看更多关于extra参数的说明。
//导入头文件
#import <AnyThinkRewardedVideo/AnyThinkRewardedVideo.h>
@interface RewardedVC () <ATAdLoadingDelegate, 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];
// 可选接入,以下几个key参数适用于广告平台的服务端激励验证,将被透传
[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];
}
/// 广告位加载完成
/// - Parameter placementID: 广告位ID
- (void)didFinishLoadingADWithPlacementID:(NSString *)placementID {
// 重置重试次数
self.retryAttempt = 0;
}
/// 广告位加载失败
/// - Parameters:
/// - placementID: 广告位ID
/// - error: 错误信息
- (void)didFailToLoadADWithPlacementID:(NSString *)placementID error:(NSError *)error {
// 重试已达到 3 次,不再重试加载
if (self.retryAttempt >= 3) {
return;
}
self.retryAttempt++;
// Calculate delay time: power of 2, maximum 8 seconds
NSInteger delaySec = pow(2, MIN(3, self.retryAttempt));
// Delayed retry loading ad
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delaySec * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[self loadAd];
});
}
- 展示方法中ATShowConfig的showCustomExt字段也支持服务器回调,您需要在后台中的配置激励回调地址添加&ilrd={ilrd},然后服务端解析show_custom_ext字段即可。当您使用showCustomExt作为服务端激励时,加载广告load时的extra参数则必须添加用于服务器回调的参数(请参考上方加载广告处的示例),否则服务器将无法收到回调。
- 统计场景到达率,呈现在后台的 数据报表 -> 漏斗分析报表 -> 到达广告场景 ,在展示广告前调用。
#pragma mark - Show Ad 展示广告
/// 展示广告
- (void)showAd {
//场景统计功能,呈现在后台的 数据报表 -> 漏斗分析报表 -> 到达广告场景 ,在展示广告前调用。可选接入
[[ATAdManager sharedManager] entryRewardedVideoScenarioWithPlacementID:RewardedPlacementID scene:RewardedSceneID];
//检查是否有就绪
if (![[ATAdManager sharedManager] rewardedVideoReadyForPlacementID:RewardedPlacementID]) {
[self loadAd];
return;
}
//展示配置,Scene传入后台的场景ID,没有可传入空字符串,showCustomExt参数可传入自定义参数字符串
ATShowConfig *config = [[ATShowConfig alloc] initWithScene:RewardedSceneID showCustomExt:@"testShowCustomExt"];
//展示广告
[[ATAdManager sharedManager] showRewardedVideoWithPlacementID:RewardedPlacementID config:config inViewController:self delegate:self];
}
#pragma mark - ATRewardedVideoDelegate
/// 激励成功
/// - Parameters:
/// - placementID: 广告位ID
/// - extra: 额外信息字典
- (void)rewardedVideoDidRewardSuccessForPlacemenID:(NSString *)placementID extra:(NSDictionary *)extra {}
/// 激励广告视频开始播放
/// - Parameters:
/// - placementID: 广告位ID
/// - extra: 额外信息字典
- (void)rewardedVideoDidStartPlayingForPlacementID:(NSString *)placementID extra:(NSDictionary *)extra {}
/// 激励广告视频播放完毕
/// - Parameters:
/// - placementID: 广告位ID
/// - extra: 额外信息字典
- (void)rewardedVideoDidEndPlayingForPlacementID:(NSString *)placementID extra:(NSDictionary *)extra {}
/// 激励广告视频播放失败
/// - Parameters:
/// - placementID: 广告位ID
/// - error: 错误信息
/// - extra: 额外信息字典
- (void)rewardedVideoDidFailToPlayForPlacementID:(NSString*)placementID error:(NSError *)error extra:(NSDictionary *)extra {
// 预加载
[self loadAd];
}
/// 激励广告已关闭
/// - Parameters:
/// - placementID: 广告位ID
/// - rewarded: 是否已经激励成功,YES表示已经回调了激励成功
/// - extra: 额外信息字典
- (void)rewardedVideoDidCloseForPlacementID:(NSString *)placementID rewarded:(BOOL)rewarded extra:(NSDictionary *)extra {
// 预加载
[self loadAd];
}
/// 激励广告已点击
/// - Parameters:
/// - placementID: 广告位ID
/// - extra: 额外信息字典
- (void)rewardedVideoDidClickForPlacementID:(NSString*)placementID extra:(NSDictionary *)extra {}
/// 激励广告已打开或跳转深链接页面
/// - Parameters:
/// - placementID: 广告位ID
/// - extra: 广告位ID
/// - success: 是否成功
- (void)rewardedVideoDidDeepLinkOrJumpForPlacementID:(NSString *)placementID extra:(NSDictionary *)extra result:(BOOL)success {}
通过注册ATRewardedVideoDelegate中的以下代理方法进行
/// 奖励发放
- (void)rewardedVideoDidRewardSuccessForPlacemenID:(NSString *)placementID extra:(NSDictionary *)extra {
}
类名/文件名 | 简介 |
---|---|
ATAdManager | 广告的基础操作类,包括广告加载、过滤广告、场景统计等功能。 |
ATAdManager (RewardedVideo) | 针对激励视频广告的操作拓展,提供广告展示、检查缓存、检查广告是否就绪、场景统计等功能,其中有激励视频Extra键的定义。 |
ATAdLoadingDelegate | 广告的基础代理回调声明,包括广告位与广告源级别的加载成功或失败回调,以及竞价广告源的竞价结束与竞价失败回调。 |
ATRewardedVideoDelegate | 针对激励视频广告类型的代理回调,包括展示、点击和关闭等。 |
ATSDKGlobalSetting | 通用设置类,提供形如清除广告内存中的缓存、自定义流量分组设置、测试模式、设置第三方广告SDK相关信息等功能,还声明了一些通用的属性。 |