为 Ad Exchange 设置直接访问权限

Google 移动广告 SDK 支持使用 Ad Exchange 媒体资源通过应用创收。本指南介绍了如何为 Ad Exchange 支持的所有广告格式配置应用。

前提条件

配置您的应用以访问 Ad Exchange

更新应用的 Info.plist 文件,将 GADApplicationIdentifier 键的字符串值设置为您的 Ad Manager 应用 ID(可在 Ad Manager 界面中找到)。

另请注意,如果未能如上所示在 info.plist 文件中设置 GADApplicationIdentifier 键,会导致崩溃,并显示以下消息:

Terminating app due to uncaught exception 'GADInvalidInitializationException',
reason: 'The Google Mobile Ads SDK was initialized without an application ID.
Google AdMob publishers, follow instructions at
https://goo.gle/admob-ios-update-plist to set a valid
application ID. Google Ad Manager publishers, follow instructions at
https://goo.gle/ad-manager-ios-update-plist.'

接下来,您可以选择要展示的广告格式。本指南的其余部分将实现横幅广告格式,以说明如何从 Ad Exchange 加载广告。同样的步骤适用于 Google 移动广告 SDK 支持的任何广告格式。

从 Ad Exchange 加载广告

您可以在应用中使用带有尾部正斜线的 Ad Exchange 网站媒体资源代码,以替代广告单元 ID。

为了加载和展示横幅广告,GAMBannerView 需要 adUnitID。您可以将此属性设置为 Ad Exchange 网站媒体资源 ID,如下所示:

override func viewDidLoad() {
  super.viewDidLoad()
  ...

  bannerView.adUnitID = "ca-mb-app-pub-5629679302779023/"
  bannerView.rootViewController = self
}

请注意,如果未能如上所示向 Ad Exchange 网站媒体资源代码添加尾部正斜线,将导致广告请求出错,并显示以下消息:

Invalid Request. Cannot determine request type. Is your ad unit id correct?

另请注意,您可以将 Ad Exchange 网站媒体资源代码转换为广告单元。然后,您可以使用 Ad Manager 界面生成 Ad Exchange 代码,并将其复制到您的应用中。生成的代码应包含 Ad Exchange 网站媒体资源代码,后跟不带尾部正斜线的后代广告单元 ID,例如:ca-mb-app-pub-5629679302779023/banner

GAMBannerView 创建完毕并配置其属性后,您可以加载广告,并使用广告事件自定义广告的行为。

大功告成!您的应用现已准备好加载和展示 Ad Exchange 横幅广告了。

此外,您还可以使用 Ad Exchange 网站媒体资源来加载和展示 Ad Exchange 中的其他广告格式,具体方法请参阅相应的指南:

(仅限已获批准的欧洲发布商)添加底价

您可以申请使用“底价”功能

获得批准后,您可以分别使用 pubfpvtf 参数在广告请求中添加公开底价或不公开底价。在以下代码示例中,将“123”替换为以微单位表示的底价和广告联盟的默认货币。微分应用示例:如果您的默认货币为美元,输入“6000000”相当于 6.00 美元。

let extras = GADAdNetworkExtras()
extras.additionalParameters = ["pubf": "123", "pvtf": "123"]

let request = GAMRequest()
request.register(extras)
GADAdNetworkExtras *extras = [[GADAdNetworkExtras alloc] init];
extras.additionalParameters = @{@"pubf": @"123", @"pvtf": @"123"};

GAMRequest *request = [GAMRequest request];
[request registerAdNetworkExtras:extras];