如何在 Objective-C 中的激励视频广告 AdMob 回传中获取广告单元 ID



我们正在用objective-C开发一个iOS应用,我们决定在我们的应用中添加Firebase。我们还决定添加随附的GoogleMobileAds框架,以便制作激励视频广告。

我已经按照官方指南中的详细说明实施了AdMob,但我不知道如何在每个回传中获取广告单元ID。 我唯一的参数是GADRewardBasedVideoAd类型,它似乎没有任何提供广告ID的可访问数据。

这是其中一个回调:

- (void)rewardBasedVideoAdDidOpen:(GADRewardBasedVideoAd *)rewardBasedVideoAd
{
NSLog(@"Opened reward based video ad.");
}

我需要广告ID,因为我们在应用中使用了多个广告,我需要知道哪个广告已准备就绪/已打开/已完成/失败/等。

我尝试使用rewardBasedVideoAd.adMetadata[@"AdId"],但它返回nil。

任何帮助将不胜感激。 谢谢

在这里:

@implementation GameViewController{
GADRewardedAd *gameOverRewardedAd, *extraCoinsRewardedAd;
}
-(void)viewDidLoad{
gameOverRewardedAd = [self createAndLoadRewardedAdForAdUnit:@"ca-app-pub-YOURID"];
extraCoinsRewardedAd = [self createAndLoadRewardedAdForAdUnit:@"ca-app-pub-YOURID"];
}

-(GADRewardedAd *)createAndLoadRewardedAdForAdUnit:(NSString *) adUnitId {
GADRewardedAd *rewardedAd = [[GADRewardedAd alloc] initWithAdUnitID:adUnitId];
GADRequest *request = [GADRequest request];
[rewardedAd loadRequest:request completionHandler:^(GADRequestError * _Nullable error) {
if (error) {
// Handle ad failed to load case.
} else {
// Ad successfully loaded.
}
}];
return rewardedAd;
}

然后:

#pragma mark admob reward Ad delegate
- (void)rewardedAdDidDismiss:(GADRewardedAd *)rewardedAd {
//NSLog(@"rewardedAdDidDismiss:");
if (rewardedAd == gameOverRewardedAd) {
//do your things here
}else if (rewardedAd == extraCoinsRewardedAd){
}
}

希望这有帮助。

最新更新