激励视频广告适用于用户主动观看以获得奖励的场景,如游戏中获得金币、道具等。
#import <SmartdigimktSDK/SDMRewardedVideoAd.h>
// 创建激励视频广告实例
SDMRewardedVideoAd *rewardedVideoAd = [[SDMRewardedVideoAd alloc] initAdWithPlacementId:@"placement_id"];
// 设置代理
rewardedVideoAd.loadDelegate = self;
rewardedVideoAd.showDelegate = self;
// 设置展示控制器
rewardedVideoAd.showViewController = self;
// 加载广告
[rewardedVideoAd load];
激励视频广告支持以下可选参数配置:
// 设置广告源信息(用于数据统计和分析)
NSMutableDictionary *adSourceExtra = [@{} mutableCopy];
[adSourceExtra setValue:@"value1" forKey:@"key1"];
[adSourceExtra setValue:@"value2" forKey:@"key2"];
rewardedVideoAd.adSourceExtra = adSourceExtra;
// 设置展示控制器
rewardedVideoAd.showViewController = self;
// 设置自定义参数(即将废弃,建议使用adSourceExtra)
NSMutableDictionary *extraDic = [@{} mutableCopy];
[extraDic setValue:@"sdm--1" forKey:@"adLoad"];
rewardedVideoAd.extra = extraDic;
#pragma mark - SDMPublicLoadingDelegate
// 广告加载成功
- (void)onAdLoaded:(SDMBaseAd *)item {
NSLog(@"激励视频广告加载成功");
}
// 广告加载失败
- (void)onAdLoadFail:(SDMBaseAd *)item error:(NSError *)error {
NSLog(@"激励视频广告加载失败: %@", error.localizedDescription);
}
#pragma mark - SDMPubRewardedVideoDelegate
// 视频开始播放
- (void)onAdPlayStart:(SDMRewardedVideoAd *)item {
NSLog(@"激励视频广告开始播放");
}
// 视频播放结束
- (void)onAdPlayEnd:(SDMRewardedVideoAd *)item {
NSLog(@"激励视频广告播放结束");
}
// 广告点击
- (void)onAdClick:(SDMRewardedVideoAd *)item extra:(nullable NSDictionary *)extra {
NSLog(@"激励视频广告点击");
}
// 广告关闭
- (void)onAdClose:(SDMRewardedVideoAd *)item rewarded:(BOOL)rewarded {
NSLog(@"激励视频广告关闭,是否获得奖励: %@", rewarded ? @"是" : @"否");
}
// 发放奖励
- (void)onAdReward:(SDMRewardedVideoAd *)item {
NSLog(@"激励视频广告奖励发放");
}
// 视频播放失败
- (void)onAdPlayFailed:(SDMRewardedVideoAd *)item error:(NSError *)error {
NSLog(@"激励视频广告播放失败: %@", error.localizedDescription);
}
// 是否以Deeplink形式跳转
- (void)onDeeplinkCallback:(SDMRewardedVideoAd *)item result:(BOOL)success {
NSLog(@"激励视频广告Deeplink跳转: %@", success ? @"成功" : @"失败");
}
// 检查激励视频广告是否准备就绪
if ([rewardedVideoAd isReady]) {
NSLog(@"激励视频广告已准备就绪");
} else {
NSLog(@"激励视频广告未准备就绪");
}
// 检查广告是否准备就绪
if ([rewardedVideoAd isReady]) {
// 展示广告
[rewardedVideoAd showAd];
} else {
NSLog(@"激励视频广告未准备就绪");
}
在不再需要广告实例时,及时释放资源避免内存泄漏。
// 销毁激励视频广告
[rewardedVideoAd destroy];