请输入
菜单

激励视频广告

💡Tips

  • Smart Cache 自动管理多广告位并行加载与缓存比价,无需手动管理多个 MCRewardedAd 实例
  • MCRewardAdManager 为普通实例类,建议作为属性长期持有
  • 请通过 smartCacheDidRewardUserForAd:withReward: 回调确认奖励发放,这是激励发放的唯一可靠时机

1. 加载广告

objective-c 复制代码
#import <MCSDK/MCSDK.h>

@interface SmartCacheRewardedVC () <MCSmartCacheDelegate>

@property (nonatomic, strong) MCRewardAdManager *rewardManager;

@end

@implementation SmartCacheRewardedVC

#pragma mark - Load Ad
- (void)loadAd {
    if (!self.rewardManager) {
        self.rewardManager = [[MCRewardAdManager alloc] init];
    }
    // 建议在首次 loadAd 前设置代理
    self.rewardManager.delegate = self;
    [self.rewardManager loadAd];
}

#pragma mark - MCSmartCacheDelegate
// 缓存池中至少一条广告就绪
- (void)smartCacheDidLoadAd:(MCAdInfo *)ad {

}

// 首轮所有广告位均加载失败(与 smartCacheDidLoadAd: 互斥)
- (void)smartCacheDidFailToLoadAdWithError:(MCError *)error {

}

// 本轮加载流程结束
- (void)smartCacheDidAdLoadFinished {

}

// 广告展示成功
- (void)smartCacheDidDisplayAd:(MCAdInfo *)ad {

}

// 广告关闭,SDK 自动补量
- (void)smartCacheDidHideAd:(MCAdInfo *)ad {

}

// 广告点击
- (void)smartCacheDidClickAd:(MCAdInfo *)ad {

}

// 广告展示失败
- (void)smartCacheDidFailToDisplayAd:(MCAdInfo *)ad withError:(MCError *)error {

}

// 收益回调
- (void)smartCacheDidPayRevenueForAd:(MCAdInfo *)ad {

}

// 用户达成激励条件(奖励发放的唯一可靠时机)
- (void)smartCacheDidRewardUserForAd:(MCAdInfo *)ad withReward:(MCReward *)reward {

}

// 视频开始播放
- (void)smartCacheDidAdVideoStarted:(MCAdInfo *)ad {

}

// 视频播放完成
- (void)smartCacheDidAdVideoCompleted:(MCAdInfo *)ad {

}

2. 展示广告

objective-c 复制代码
if ([self.rewardManager isReady]) {
    [self.rewardManager showAdWithViewController:self];
}

如需传入场景 ID 等扩展参数:

objective-c 复制代码
if ([self.rewardManager isReady]) {
    [self.rewardManager showAdWithViewController:self
                                       withExtra:@{kMCAPIPlacementScenarioIDKey: @"场景id"}];
}

3. 下发奖励

通过 MCSmartCacheDelegate 中的以下回调确认激励发放:

objective-c 复制代码
// 用户达成激励条件
- (void)smartCacheDidRewardUserForAd:(MCAdInfo *)ad withReward:(MCReward *)reward {
    // 在此处发放奖励
}

激励视频相关的辅助回调:

objective-c 复制代码
// 视频开始播放
- (void)smartCacheDidAdVideoStarted:(MCAdInfo *)ad { }

// 视频播放完成
- (void)smartCacheDidAdVideoCompleted:(MCAdInfo *)ad { }

4. 释放资源

objective-c 复制代码
[self.rewardManager destroyAd];

页面或模块销毁时应调用 destroyAd 释放缓存池资源,避免内存泄漏。释放后需重新 loadAd 才能继续使用。


5. 设置自定义参数

objective-c 复制代码
- (void)loadAd {
    if (!self.rewardManager) {
        self.rewardManager = [[MCRewardAdManager alloc] init];
    }
    self.rewardManager.delegate = self;

    // 设置加载时的额外参数,loadAd 前调用
    [self.rewardManager setLoadExtraParameter:@{
        @"userID": @"test_userId",
        @"userData": @"test_userData"
    }];

    // 设置聚合扩展参数,loadAd 前调用
    [self.rewardManager setExtraParameter:@{
        @"test_extra_key": @"test_extra_value"
    }];

    [self.rewardManager loadAd];
}
上一个
插屏广告
下一个
政策合规
最近修改: 2026-04-03Powered by