跳转到主要内容
@interface YourViewController () <CLXRewardedDelegate, CLXAdRevenueDelegate>
@property (nonatomic, strong) CLXRewarded *rewardedAd;
@property (nonatomic, assign) NSInteger retryAttempt;
@end

@implementation YourViewController

- (void)createRewardedAd {
    self.rewardedAd = [[CloudXCore shared] createRewardedWithAdUnitId:@"your-rewarded-ad-unit-id"];
    self.rewardedAd.delegate = self;
    self.rewardedAd.revenueDelegate = self;
    [self.rewardedAd load];
}

- (void)showRewardedAd {
    if (self.rewardedAd.isReady) {
        // 基本展示
        [self.rewardedAd showFromViewController:self];

        // 或使用可选的展示位置和自定义数据进行追踪
        // [self.rewardedAd showFromViewController:self placement:@"bonus_coins" customData:@"level:5,coins:100"];
    } else {
        NSLog(@"激励视频广告尚未准备好");
    }
}

- (void)dealloc {
    [self.rewardedAd destroy];
}

#pragma mark - CLXRewardedDelegate

- (void)didLoadAd:(CLXAd *)ad {
    NSLog(@"激励视频广告从 %@ 加载成功", ad.networkName);
    self.retryAttempt = 0;
}

- (void)didFailToLoadAd:(NSString *)adUnitId error:(CLXError *)error {
    NSLog(@"激励视频广告加载失败: %@", error.localizedDescription);
    self.retryAttempt++;
    NSTimeInterval delay = pow(2.0, MIN(5, self.retryAttempt));
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self.rewardedAd load];
    });
}

- (void)didDisplayAd:(CLXAd *)ad {
    NSLog(@"激励视频广告已展示");
}

- (void)didFailToDisplayAd:(CLXAd *)ad error:(CLXError *)error {
    NSLog(@"激励视频广告展示失败: %@", error.localizedDescription);
    [self.rewardedAd load];
}

- (void)didHideAd:(CLXAd *)ad {
    NSLog(@"激励广告已隐藏");
    [self.rewardedAd load]; // 为下次使用重新加载
}

- (void)didClickAd:(CLXAd *)ad {
    NSLog(@"激励视频广告被点击");
}

- (void)didRewardUserForAd:(CLXAd *)ad withReward:(CLXReward *)reward {
    NSLog(@"用户获得奖励: %ld %@", (long)reward.amount, reward.label);
    // 向用户发放奖励
}

#pragma mark - CLXAdRevenueDelegate

- (void)didPayRevenueForAd:(CLXAd *)ad {
    NSLog(@"激励视频广告收入: %@ 来自 %@", ad.revenue, ad.networkName);
}

@end