通过 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
了解哪些广告网络胜出
每个广告格式类都有一个 GADResponseInfo
属性,其中包含 adNetworkClassName
,该属性会返回当前广告的广告联盟的类名称。只有当广告成功加载后,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 用户同意。