菜单

激励视频

1. 加载广告

激励视频广告适用于用户主动观看以获得奖励的场景,如游戏中获得金币、道具等。

1.1 初始化激励视频广告

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

// 创建激励视频广告实例
SDMRewardedVideoAd *rewardedVideoAd = [[SDMRewardedVideoAd alloc] initAdWithPlacementId:@"placement_id"];

// 设置代理
rewardedVideoAd.loadDelegate = self;
rewardedVideoAd.showDelegate = self;

// 设置展示控制器
rewardedVideoAd.showViewController = self;

// 加载广告
[rewardedVideoAd load];

1.2 设置可选参数

激励视频广告支持以下可选参数配置:

objc 复制代码
// 设置广告源信息(用于数据统计和分析)
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;

1.3 激励视频广告加载代理方法

objc 复制代码
#pragma mark - SDMPublicLoadingDelegate

// 广告加载成功
- (void)onAdLoaded:(SDMBaseAd *)item {
    NSLog(@"激励视频广告加载成功");
}

// 广告加载失败
- (void)onAdLoadFail:(SDMBaseAd *)item error:(NSError *)error {
    NSLog(@"激励视频广告加载失败: %@", error.localizedDescription);
}

1.4 激励视频广告展示代理方法

objc 复制代码
#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 ? @"成功" : @"失败");
}

2. 展示广告

2.1 检查激励视频广告准备就绪状态

objc 复制代码
// 检查激励视频广告是否准备就绪
if ([rewardedVideoAd isReady]) {
    NSLog(@"激励视频广告已准备就绪");
} else {
    NSLog(@"激励视频广告未准备就绪");
}

2.2 展示激励视频广告

objc 复制代码
// 检查广告是否准备就绪
if ([rewardedVideoAd isReady]) {
    // 展示广告
    [rewardedVideoAd showAd];
} else {
    NSLog(@"激励视频广告未准备就绪");
}

3. 释放资源

在不再需要广告实例时,及时释放资源避免内存泄漏。

objc 复制代码
// 销毁激励视频广告
[rewardedVideoAd destroy];
最近修改: 2025-10-11Powered by