如何在 Objective-C 的激励视频 AdMob 回调中获取广告单元 ID
How to get the Ad Unit ID in Rewarded Video AdMob callbacks in Objective-C
我们正在 objective-C 开发一个 iOS 应用程序,我们决定在我们的应用程序中添加 Firebase。我们还决定添加它附带的 GoogleMobileAds 框架,以便获得奖励视频广告。
我已经按照官方指南中的详细说明实施了 AdMob,但我不知道如何在每个回调中获取广告单元 ID。
我拥有的唯一参数是 GADRewardBasedVideoAd 类型,它似乎没有提供广告 ID 的任何可访问数据。
这是回调之一:
- (void)rewardBasedVideoAdDidOpen:(GADRewardBasedVideoAd *)rewardBasedVideoAd
{
NSLog(@"Opened reward based video ad.");
}
我需要广告 ID,因为我们在应用中使用了多个广告,我需要知道哪个是 ready/opened/completed/failed/etc。
我尝试使用 rewardBasedVideoAd.adMetadata[@"AdId"] 但它 returns 没有。
如有任何帮助,我们将不胜感激。
谢谢
此处:
@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){
}
}
希望对您有所帮助。
我们正在 objective-C 开发一个 iOS 应用程序,我们决定在我们的应用程序中添加 Firebase。我们还决定添加它附带的 GoogleMobileAds 框架,以便获得奖励视频广告。
我已经按照官方指南中的详细说明实施了 AdMob,但我不知道如何在每个回调中获取广告单元 ID。 我拥有的唯一参数是 GADRewardBasedVideoAd 类型,它似乎没有提供广告 ID 的任何可访问数据。
这是回调之一:
- (void)rewardBasedVideoAdDidOpen:(GADRewardBasedVideoAd *)rewardBasedVideoAd
{
NSLog(@"Opened reward based video ad.");
}
我需要广告 ID,因为我们在应用中使用了多个广告,我需要知道哪个是 ready/opened/completed/failed/etc。
我尝试使用 rewardBasedVideoAd.adMetadata[@"AdId"] 但它 returns 没有。
如有任何帮助,我们将不胜感激。 谢谢
此处:
@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){
}
}
希望对您有所帮助。