Get started

本指南介绍了如何将中介适配器与您当前的 iOS 应用相集成,以及如何设置额外的请求参数。

前提条件

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

中介功能新手一枚?请阅读:

选择您的中介广告联盟

Google 中介支持 30 多个第三方广告联盟。要集成中介功能,您需要在以下几个地方做出更改:

  1. 第三方广告联盟的界面 - 注册使用第三方广告联盟,并在其前端创建展示位置。
  2. Google Ad Manager 界面 - 修改您的 Ad Manager 收益组,以将该广告联盟添加为收益合作伙伴。此外,我们还建议您为支持自动数据收集的广告联盟设置这一功能。
  3. 应用代码 - 更新您的应用,以添加该第三方广告联盟的 SDK 和适配器库,后者用于在 Google 和该第三方广告联盟之间建立通信,以便请求和投放广告。

在下面选择某个广告联盟即可开始。

广告联盟 横幅广告 插页式广告 激励视频广告 激励视频广告
(新 API)
原生高级广告 ANO 支持 自动数据
收集支持
开源且已标明版本
AdColony 特定国家/地区
AppLovin 特定国家/地区
Chartboost 特定国家/地区
Facebook 特定国家/地区
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 中发布。

支持

在为中介配置多个广告联盟时,您必须设置这些广告联盟各自的每千次展示费用,以指定向它们发送请求的顺序。这可能难以管理,因为广告联盟的效果会随着时间的推移而出现变化。

自动数据收集功能可自动处理中介链订购流程,能让您从中介链上的所有广告联盟中获得最高的每千次展示费用,从而最大程度提升收入。

上面的中介广告联盟表使用了 支持的以下值:

支持 具体含义
Country-specific 系统会自动代表您按国家/地区更新有效每千次展示费用值。此为最佳优化类型。
Global 系统会自动代表您更新单一全局有效每千次展示费用值。
None 您必须手动配置该广告联盟的有效每千次展示费用值。

有关如何为该广告联盟配置 的详情,请点击查阅特定广告联盟的指南。

自定义事件

如果您未在上面的列表中找到某个广告联盟,则可以使用自定义事件自行编写与相应广告联盟集成的代码。如需详细了解如何创建自定义事件,请参阅自定义事件

检查 adNetworkClassName 的值

每个广告格式类在 GADResponseInfo 对象上都具有一个 adNetworkClassName 属性,该属性可返回提取了当前广告的广告联盟的类名称。只有在广告成功加载后,此属性才具有值。

下面是一些示例代码,这些代码记录了每种广告格式的广告联盟类名称。

Swift

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

Objective-C

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

插页式广告

Swift

func interstitialDidReceiveAd(_ interstitial: GAMInterstitial) {
      print("Interstitial adapter class name: \(interstitial.responseInfo.adNetworkClassName)")
    }
    

Objective-C

- (void)interstitialDidReceiveAd:(GAMInterstitial *)interstitial {
      NSLog(@"Interstitial adapter class name: %@", interstitial.responseInfo.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 不会将其转发给中介广告联盟。如需详细了解如何在广告请求中提供位置信息,请参阅定位指南

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

激励广告中介

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

如需了解详情,请参阅设置和投放适合在应用中展示的激励广告

原生广告中介

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

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