本指南适用于将广告元数据与 Google 移动广告 iOS SDK 集成的发布商。
前提条件
提取广告元数据
为了让应用更详细地了解投放的广告,请将广告设置为其自己的 GADAdMetadataDelegate。然后,您可以通过在 GADAdMetadataDelegate 上实现 adMetadataDidChange: 方法来监听广告元数据更改。调用此委托后,检查广告的 adMetadata 属性。
adMetadataDidChange: 会在广告加载后或广告的元数据在加载后异步发生变化时立即调用。无法保证广告元数据在加载时可用,因此建议您等待此回调,然后再访问广告的元数据。
以下代码示例展示了如何检索激励广告的广告元数据:
@interface ViewController () <GADFullScreenContentDelegate, GADAdMetadataDelegate>
@end
@implementation ViewController
- (void)loadRewardedAd {
   *request = [ 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 | 
  数组 | 
    数组中填充的元素从最内层的封装广告(靠近内嵌广告)开始,向外移动到最外层的封装广告。数组中的每个元素都是一个字典,其中包含以下键和值。
    
  |