Google Mobile Ads 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 Mobile Ads SDK 支援的所有廣告格式,都適用相同的步驟。
從 Ad Exchange 載入廣告
您可以搭配使用 Ad Exchange 網站資源代碼和尾端斜線,取代廣告單元 ID。例如 ca-mb-app-pub-5629679302779023/
。
如要載入及顯示橫幅廣告,GAMBannerView
需要 adUnitID
。您可以將這項屬性設為 Ad Exchange 網站資源 ID,如下所示:
override func viewDidLoad() {
super.viewDidLoad()
...
bannerView.adUnitID = "ca-mb-app-pub-5629679302779023/"
bannerView.rootViewController = self
}
GAMBannerView
就位並設定屬性後,您就可以載入廣告,並使用廣告事件自訂廣告行為。
請注意,如果未在 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
。
大功告成!您的應用程式現在可以載入及顯示 Ad Exchange 橫幅廣告。
此外,您也可以按照下列指南,使用 Ad Exchange 網站資源載入及顯示 Ad Exchange 的其他廣告格式:
(僅適用於已獲得核准的歐洲發布商) 新增底價
您可以申請使用「底價」功能。
獲得核准後,您可以使用 pubf
和 pvtf
參數,在廣告請求中加入公開底價或私人底價。在下列程式碼範例中,將「123」替換成以微元為單位的底價,以及聯播網的預設幣別。微元的使用範例:如果預設貨幣為美元,輸入「6000000」相當於 $6.00 美元。
Swift
let extras = AdNetworkExtras()
extras.additionalParameters = ["pubf": "123", "pvtf": "123"]
let request = AdManagerRequest
request.register(extras)
Objective-C
GADAdNetworkExtras *extras = [[GADAdNetworkExtras alloc] init];
extras.additionalParameters = @{@"pubf": @"123", @"pvtf": @"123"};
GAMRequest *request = [GAMRequest request];
[request registerAdNetworkExtras:extras];