设置对 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://googlemobileadssdk.page.link/admob-ios-update-plist to set a valid
application ID. Google Ad Manager publishers, follow instructions at
https://googlemobileadssdk.page.link/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。

Swift

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

let request = GAMRequest()
request.register(extras)

Objective-C

GADAdNetworkExtras *extras = [[GADAdNetworkExtras alloc] init];
extras.additionalParameters = @{@"pubf": @"123", @"pvtf": @"123"};

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