开始使用

借助 AdMob 中介功能,您可以在您的应用中投放多个来源(包括 AdMob 广告联盟、第三方广告联盟和 AdMob 广告系列)的广告。AdMob 中介会将广告请求发送至多个广告联盟,以确保您找到最合适的广告联盟来投放广告,有助于最大限度提高您的填充率,增加您的收入。案例研究

前提条件

在为广告格式集成中介功能之前,您需要先将该广告格式集成到您的应用中:

刚开始接触中介?请参阅 AdMob 中介概览

对于出价:Google 移动广告 SDK 7.53.1或更高版本。

初始化移动广告 SDK

快速入门指南介绍了如何初始化移动广告 SDK。在初始化调用期间,中介和出价适配器也会初始化。在加载广告之前,请等待初始化完成,以确保每个广告联盟都充分参与第一次广告请求。

以下示例代码展示了如何在发出广告请求之前检查每个适配器的初始化状态。

Swift

import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    let ads = GADMobileAds.sharedInstance()
    ads.start { status in
      // Optional: Log each adapter's initialization latency.
      let adapterStatuses = status.adapterStatusesByClassName
      for adapter in adapterStatuses {
        let adapterStatus = adapter.value
        NSLog("Adapter Name: %@, Description: %@, Latency: %f", adapter.key,
        adapterStatus.description, adapterStatus.latency)
      }

      // Start loading ads here...
    }

    return true
  }

}

Objective-C

@import GoogleMobileAds;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  GADMobileAds *ads = [GADMobileAds sharedInstance];
  [ads startWithCompletionHandler:^(GADInitializationStatus *status) {
    // Optional: Log each adapter's initialization latency.
    NSDictionary *adapterStatuses = [status adapterStatusesByClassName];
    for (NSString *adapter in adapterStatuses) {
      GADAdapterStatus *adapterStatus = adapterStatuses[adapter];
      NSLog(@"Adapter Name: %@, Description: %@, Latency: %f", adapter,
            adapterStatus.description, adapterStatus.latency);
    }

    // Start loading ads here...
  }];
  return YES;
}

@end

了解哪个广告联盟胜出

每个广告格式类都有一个包含 adNetworkClassNameGADResponseInfo 属性,该属性会返回当前广告的广告联盟的类名称。只有在广告成功加载后,adNetworkClassName 才会具有值。下面的代码展示了如何获取横幅广告的上述信息。

Swift

func adViewDidReceiveAd(_ bannerView: GADBannerView) {
  print("Banner adapter class name: \(bannerView.responseInfo.adNetworkClassName)")
}

Objective-C

- (void)adViewDidReceiveAd:(GADBannerView *)bannerView {
  NSLog(@"Banner adapter class name: %@", bannerView.responseInfo.adNetworkClassName);
}

如需了解详情,请参阅检索有关广告响应的信息

请确保在中介服务所用的横幅广告单元的所有第三方广告联盟界面中停用刷新功能。 AdMob 这可防止重复刷新,因为 AdMob 还会根据横幅广告单元的刷新频率触发刷新。

激励广告中介

我们建议您通过在界面中设置奖励值来替换所有默认的奖励值。 AdMob 为此,请选中 应用于中介组中的所有广告联盟 复选框,使奖励在所有广告联盟中保持一致。某些广告联盟根本不提供奖励值或类型。通过替换奖励值,无论由哪个广告联盟投放广告,奖励都保持一致。

如需详细了解如何在 AdMob 界面中设置奖励值,请参阅创建激励广告单元

原生广告中介

以下是实现原生中介时可以考虑的一些最佳做法。

原生广告展示政策
每个广告网络都有自己的政策。使用中介功能时,请务必注意,您的应用仍需要遵守提供广告的参与中介广告联盟的政策。
避免在发出请求时使用 GADMultipleAdsAdLoaderOptions
针对多个原生广告的请求仅会投放 Google 广告。多个原生广告功能不支持中介。

CCPA 和 GDPR

如果您需要遵守《加州消费者隐私法案》(CCPA)《一般数据保护条例》(GDPR),请按照 CCPA 设置GDPR 设置中的步骤操作,将您的中介合作伙伴添加到 AdMob “隐私权和消息”的 CCPA 或 GDPR 广告合作伙伴列表中。否则,可能会导致合作伙伴无法在您的应用中投放广告。

详细了解如何启用 CCPA“受限的数据处理”通过 Google User Messaging Platform (UMP) SDK 征求 GDPR 的同意