广告元数据

请选择平台 Android 新 Android iOS

本指南适用于将广告元数据与 Google Mobile Ads SDK for iOS 集成的发布商。

前提条件

提取广告元数据

如需让应用详细了解投放的广告,请将广告设置为其自己的 GADAdMetadataDelegate。然后,您可以通过在 GADAdMetadataDelegate 上实现 adMetadataDidChange: 方法来监听广告元数据的变化。调用此委托后,请检查广告的 adMetadata 属性。

adMetadataDidChange: 会在广告加载后立即调用,或者在广告加载后异步更改广告的元数据时调用。无法保证广告元数据在加载时可用,因此我们建议您等待此回调,然后再访问广告的元数据。

以下代码示例展示了如何检索激励广告的广告元数据:

@interface ViewController () <GADFullScreenContentDelegate, GADAdMetadataDelegate>

@end

@implementation ViewController
- (void)loadRewardedAd {
   *request = [GAMRequest request];
  [GADRewardedAd
       loadWithAdUnitID:@"ca-app-pub-3940256099942544/4806952744"
                request:request
      completionHandler:^(GADRewardedAd *ad, NSError *error) {
        if (error) {
          NSLog(@"Rewarded ad failed to load with error: %@", [error localizedDescription]);
          return;
        }
        self.rewardedAd = ad;
        self.rewardedAd.fullScreenContentDelegate = self;

        /// Set the ad to be the delegate of its ad metadata.
        self.rewardedAd.adMetadataDelegate = self;

        NSLog(@"Rewarded ad loaded.");
      }];
}

/#pragma mark GADAdMetadataDelegate implementation

- (void)adMetadataDidChange:(id<GADAdMetadataProvider>)ad {
  NSDictionary<NSString*, id> *adMetadata = _rewardedAd.adMetadata;
  NSString *adId = adMetadata[@"AdId"];
}

检索元数据后,您可以检查 Bundle 中您关心的键。不同类型的广告可能会有不同的广告元数据键。VAST 视频广告具有以下键:

类型 说明
AdId 字符串 广告的 ID;如果不可用,则为空字符串。
AdTitle 字符串 标题;如果未指定,则为空。
CreativeDurationMs 整数 所选广告素材的时长(以毫秒为单位);如果是非线性广告,则为 -1
TraffickingParameters 字符串 流量变现参数;如果不可用,则为空字符串。
DealId 字符串 当前广告的封装容器链中第一个广告交易 ID(从顶部开始);如果此信息不可用,则为空字符串。
AdSystem 字符串 广告的来源广告服务器;如果不可用,则为空。
CreativeId 字符串 广告的所选广告素材的 ID;如果不可用,则为空。
MediaURL 字符串 所选媒体的网址。
Wrappers 数组 该数组填充的元素从最内层的封装容器广告 (靠近内嵌广告)开始,向外移动到最外层的封装容器广告。数组中的每个 元素都是一个字典,其中包含以下键和 值。
AdId
字符串。用于封装容器广告的广告 ID;如果不可用,则为空。
AdSystem
字符串。用于封装容器广告的广告系统;如果不可用,则为空。
CreativeId
字符串。用于封装容器广告的广告素材 ID;如果不可用,则为空。