本指南適用對象:有意透過 AdMob 利用 iOS 應用程式營利,但未使用 Firebase 的發布商。如果現在打算 (或日後可能) 在應用程式中導入 Firebase,請參閱本指南的 AdMob with Firebase 版本。
在應用程式中整合 Google Mobile Ads SDK,是顯示廣告來賺取收益的第一步。整合完畢後,您就能導入一或多種支援的廣告格式。
必備條件
- 使用 Xcode 16.0 以上版本
- 指定 iOS 12.0 以上版本
- 建議步驟:建立 AdMob 帳戶,並註冊應用程式。
匯入 Google Mobile Ads SDK
請使用下列任一方法匯入 Google Mobile Ads SDK。
Swift Package Manager
請按照下列步驟,在專案中新增套件依附元件:
在 Xcode 中,依序前往「File」(檔案) >「Add Package Dependencies…」(新增套件依附元件…),然後安裝 Google Mobile Ads Swift Package。
使用畫面顯示的提示詞框,搜尋「Google Mobile Ads Swift Package GitHub repository」:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
選取要使用的 Google Mobile Ads Swift Package 版本。如果是新專案,建議選用「Up to Next Major Version」(升級至下一個主要版本)。
CocoaPods
繼續操作前,請先參閱「Using CocoaPods」(使用 CocoaPods) 說明文件,瞭解如何建立及使用 Podfile。
請按照下列步驟使用 CocoaPods:
開啟專案的 Podfile,將下列程式碼加進應用程式的
target
建構設定:pod 'Google-Mobile-Ads-SDK'
在終端機中執行:
pod install --repo-update
手動下載
下載 Google Mobile Ads SDK,然後用
Embed & Sign
指令,將下列框架加進 Xcode 專案:GoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
在專案的建構設定中:
- 將
/usr/lib/swift
路徑加進 Runpath Search Paths。 - 將
-ObjC
連接器標記加進 Other Linker Flags。
- 將
更新 Info.plist
更新應用程式的 Info.plist
檔案,新增以下兩個鍵:
GADApplicationIdentifier
鍵 (字串值是 AdMob 營利應用程式 ID,可在 AdMob 使用者介面找到)。SKAdNetworkItems
鍵,其SKAdNetworkIdentifier
值包含 Google (cstr6suwn9.skadnetwork
),以及向 Google 提供這類值的特定第三方買家。
完整程式碼片段
<key>GADApplicationIdentifier</key> <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~1458002511 --> <string>SAMPLE_APP_ID</string> <key>SKAdNetworkItems</key> <array> <dict> <key>SKAdNetworkIdentifier</key> <string>cstr6suwn9.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4fzdc2evr5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>2fnua5tdw4.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ydx93a7ass.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>p78axxw29g.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v72qych5uu.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ludvb6z3bs.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>cp8zw746q7.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3sh42y64q3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>c6k4g5qg8m.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>s39g8k73mm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qy4746246.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>f38h382jlk.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>hs6bdukanm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>mlmmfzh3r3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v4nxqhlyqp.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>wzmmz9fp6w.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>su67r6k2v3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>yclnxrl5pm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>t38b2kh725.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>7ug5zh24hu.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>gta9lk7p23.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>vutu7akeur.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>y5ghdn5j9k.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v9wttpbfk9.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>n38lu8286q.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>47vhws6wlr.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>kbd757ywx3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>9t245vhmpl.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>a2p9lx4jpn.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>22mmun2rn5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>44jx6755aq.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>k674qkevps.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4468km3ulz.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>2u9pt9hc89.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>8s468mfl3y.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>klf5c3l5u5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ppxm28t8ap.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>kbmxgpxpgc.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>uw77j35x4d.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>578prtvx9j.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4dzt52r2t5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>tl55sbb4fm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>c3frkrj4fj.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>e5fvkxwrpn.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>8c4e2ghe7u.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3rd42ekr43.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>97r2b46745.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qcr597p9d.skadnetwork</string> </dict> </array>
將 SAMPLE_APP_ID 替換為 AdMob 營利應用程式 ID。測試時,請使用前一個實例中的範例應用程式 ID。
如果您尚未建立 AdMob 帳戶及註冊應用程式,建議現在完成。
初始化 Google Mobile Ads SDK
載入廣告前,請呼叫 GADMobileAds.sharedInstance
的 start()
方法,這樣 SDK 就會初始化,並在完成或 30 秒逾時後,對完成處理常式發出回呼。建議盡早呼叫 start()
。
Swift
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
SwiftUI
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
Objective-C
// Initialize the Google Mobile Ads SDK.
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
選取廣告格式
成功匯入並初始化 Google Mobile Ads SDK 後,就可以導入廣告了。AdMob 提供多種廣告格式,請根據應用程式的使用者體驗,選擇最適合的格式。
橫幅廣告
橫幅廣告單元會占用應用程式的部分版面來顯示矩形廣告,且會固定在一段時間後自動重新整理。也就是說,即便使用者停留在應用程式的同一個畫面,每隔一段時間還是會看見新的廣告。這也是最容易導入的廣告格式。
插頁式廣告
您可以將插頁式廣告單元安插至使用者操作應用程式的空檔或轉換點 (例如通過遊戲應用程式關卡後),在應用程式介面上顯示全版廣告。
原生廣告
您可利用原生廣告,自訂應用程式中顯示廣告標題、行動號召等素材資源的方式。藉由自行設定廣告樣式,您就能以自然、不突兀的方式呈現廣告,打造豐富的使用者體驗。
獎勵廣告
啟用獎勵廣告單元,使用者就能透過玩遊戲、參加問卷調查或觀看影片等方式,贏得應用程式內獎勵,例如金幣、額外生命值或積分。您可以為不同的廣告單元設定不同的獎勵,並指定使用者獲得的獎勵價值和道具。
插頁式獎勵廣告
插頁式獎勵廣告是全新的獎勵廣告格式,您可以在應用程式自然轉換時自動顯示這類廣告,向使用者發放錢幣或額外生命等獎勵。
與獎勵廣告不同的是,插頁式獎勵廣告不需等使用者選擇觀看即可放送。
獎勵廣告會顯示選擇觀看的提示,插頁式獎勵廣告則是顯示獎勵簡介畫面,使用者可選擇不觀看廣告。
應用程式開啟頁面廣告
「應用程式開啟頁面廣告」這種格式會在使用者開啟或切換回應用程式時顯示。廣告會疊在載入畫面上。