通过 AdMob 中介功能,您可以在您的应用中投放多个来源(包括 AdMob 广告联盟、第三方广告联盟和 AdMob 广告系列)的广告。AdMob 中介会将广告请求发送至多个广告联盟,以确保您找到最合适的广告联盟来投放广告,有助于最大限度提高您的填充率,增加您的收入。案例研究。
本指南就将中介功能集成到 AdMob 应用提供了一站式指导。
前提条件
在为广告格式集成中介功能之前,您需要将相应广告格式集成到自己的应用中:
中介功能新手一枚?请阅读:
选择您的中介广告联盟
Google 中介支持 30 多个第三方广告联盟。要集成中介功能,您需要在以下几个地方做出更改:
- 第三方广告联盟的界面 - 注册使用第三方广告联盟,并在其前端创建展示位置。
- AdMob 界面 - 更新广告单元的中介设置以添加该广告联盟。此外,我们还建议您为支持广告联盟优化的广告联盟设置这一功能。
- 应用代码 - 更新您的应用,以添加该第三方广告联盟的 SDK 和适配器库,后者用于在 Google 和该第三方广告联盟之间建立通信,以便请求和投放广告。
在下面选择某个广告联盟即可开始。
广告联盟 | 横幅广告 | 插页式广告 | 激励视频广告 | 激励视频广告 (新 API) |
原生高级广告 | ANO 支持 | 自动数据 收集支持 |
---|---|---|---|---|---|---|---|
开源且已标明版本 | |||||||
AdColony | 特定国家/地区 | ||||||
AppLovin | 特定国家/地区 | ||||||
Chartboost | 特定国家/地区 | ||||||
特定国家/地区 | |||||||
Fyber Marketplace | 特定国家/地区 | ||||||
i-mobile | 特定国家/地区 | ||||||
InMobi | 特定国家/地区 | ||||||
ironSource | 特定国家/地区 | ||||||
maio | 全局 | ||||||
MoPub | 特定国家/地区 | ||||||
myTarget | 特定国家/地区 | ||||||
Nend | 全局 | ||||||
Tapjoy | 特定国家/地区 | ||||||
Unity Ads | 特定国家/地区 | ||||||
Verizon Media | 特定国家/地区 | ||||||
Vungle | 特定国家/地区 | ||||||
非开源 | |||||||
AdFalcon | 特定国家/地区 | ||||||
Flurry | 特定国家/地区 | ||||||
Leadbolt | 特定国家/地区 | ||||||
LG U+AD | 无 | ||||||
MobFox | 全局 | ||||||
Tencent GDT | 无 | ||||||
Vpon | 无 | ||||||
Zucks | 特定国家/地区 |
开源且已标明版本的适配器
在上表中,如果适配器标有“开源且已标明版本”,则表示该适配器源代码会在 Google 的 GitHub 代码库中开源发布,方便您在需要时自行调试相关问题。
这也意味着,Google 的 Bintray 代码库中会有已标明版本的、针对第三方广告联盟特定版本 SDK 构建的适配器版本。只需对应用的 Podfile 做一行更改,您还可以将这些适配器集成到应用中。有关详情,请点击查阅特定广告联盟的指南。
适配器版本控制
对于已标明版本的适配器,其适配器版本控制策略为 <third-party
SDK version>.<adapter patch version>
。例如,如果广告联盟发布新的 SDK 版本 1.2.3
,那么在针对该新版 SDK 进行测试后,它将向 Bintray 发布新的适配器版本 1.2.3.0
。
如果需要在第三方 SDK 版本的生命周期之外进行适配器更新,则补丁程序版本号会增加。比如,适配器版本 1.2.3.0
的问题修复将在版本 1.2.3.1
中发布。
ANO 支持
在为中介配置多个广告联盟时,您必须设置这些广告联盟各自的每千次展示费用,以指定向它们发送请求的顺序。这可能难以管理,因为广告联盟的效果会随着时间的推移而出现变化。
广告联盟优化 (ANO) 功能可自动处理中介链订购流程,能让您从中介链上的所有广告联盟中获得最高的每千次展示费用,从而最大程度提升收入。上面的中介广告联盟表使用了 ANO 支持的以下值:
ANO 支持 | 具体含义 |
---|---|
Country-specific |
系统会自动代表您按国家/地区更新有效每千次展示费用值。此为最佳优化类型。 |
Global |
系统会自动代表您更新单一全局有效每千次展示费用值。 |
None |
您必须手动配置该广告联盟的有效每千次展示费用值。 |
有关如何为该广告联盟配置 ANO 的详情,请点击查阅特定广告联盟的指南。
自定义事件
如果您未在上面的列表中找到某个广告联盟,则可以使用自定义事件自行编写与相应广告联盟集成的代码。如需详细了解如何创建自定义事件,请参阅自定义事件。
检查 adNetworkClassName 的值
每个广告格式类在 GADResponseInfo
对象上都具有一个 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);
}
插页式广告
Swift
func interstitialDidReceiveAd(_ interstitial: GADInterstitial) {
print("Interstitial adapter class name: \(interstitial.responseInfo.adNetworkClassName)")
}
Objective-C
- (void)interstitialDidReceiveAd:(GADInterstitial *)interstitial {
NSLog(@"Interstitial adapter class name: %@", interstitial.responseInfo.adNetworkClassName);
}
激励视频广告
Swift
func rewardBasedVideoAdDidReceive(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
print("Rewarded video adapter class name: \(rewardBasedVideoAd.adNetworkClassName)")
}
Objective-C
-(void)rewardBasedVideoAdDidReceiveAd:(GADRewardBasedVideoAd *)rewardBasedVideoAd {
NSLog(@"Rewarded video adapter class name: %@", rewardBasedVideoAd.adNetworkClassName);
}
原生广告
Swift
func adLoader(_ adLoader: GADAdLoader,
didReceive nativeAd: GADUnifiedNativeAd) {
print("Native adapter class name: \(nativeAd.responseInfo.adNetworkClassName)")
}
Objective-C
-(void)adLoader:(GADAdLoader *)adLoader
didReceiveUnifiedNativeAd:(GADUnifiedNativeAd *)nativeAd {
NSLog(@"Native adapter class name: %@", nativeAd.responseInfo.adNetworkClassName);
}
有关详情,请参阅检索有关广告响应的信息。
将位置信息传递给中介广告联盟
除非您在广告请求中明确提供位置信息,否则 Google 移动广告 SDK 不会将其转发给中介广告联盟。如需详细了解如何在广告请求中提供位置信息,请参阅定位指南。
横幅广告中介
对于 AdMob 中介里所使用的横幅广告单元,请确保停用所有第三方广告联盟界面中的刷新功能。这可防止重复刷新,因为 AdMob 还会根据横幅广告单元的刷新频率触发刷新。
激励广告中介
我们建议您通过在 AdMob 界面中设置奖励值来替换所有默认的奖励值。为此,请选中应用于中介组中的所有广告联盟复选框,使奖励在所有广告联盟中保持一致。某些广告联盟根本不提供奖励值或类型。通过替换奖励值,无论由哪个广告联盟投放广告,奖励均保持一致。

如需详细了解如何在 AdMob 界面中设置奖励值,请参阅制作激励广告单元。
原生广告中介
以下是实现原生中介时可以考虑的一些最佳做法。
- 原生广告展示政策
- 每个广告联盟都有自己的政策。请注意,使用中介功能时,您的应用仍需遵守提供相应广告的中介广告联盟的政策。
- 在发出请求时避免使用
GADMultipleAdsAdLoaderOptions
类 - 涉及多个原生广告的请求仅会投放 Google 广告。多个原生广告功能不支持中介。