本指南適用於想要透過 AdMob 透過 iOS 應用程式營利,且不使用 Firebase 的發布商。如果您計劃將 Firebase 納入應用程式 (或您正考慮這麼做),請改為參閱本指南的「搭配 Firebase 使用 AdMob 」版本。
將 Google Mobile Ads SDK 整合至應用程式,是顯示廣告並賺取收益的第一步。整合 SDK 後,您就可以導入一或多種支援的廣告格式。
必要條件
- 使用 Xcode 14.1 以上版本
- 指定 iOS 11.0 以上版本
- 建議:建立 AdMob 帳戶並註冊應用程式。
匯入 Mobile Ads SDK
CocoaPods (建議選項)
將 SDK 匯入 iOS 專案最簡單的方法就是使用 CocoaPods。請開啟專案的 Podfile,並將下面這一行新增至應用程式的目標:
pod 'Google-Mobile-Ads-SDK'
然後,透過指令列執行下列指令:
pod install --repo-update
如果您是第一次使用 CocoaPods,請參閱其官方說明文件,瞭解如何建立和使用 Podfiles。
Swift 套件管理員
從 9.0.0 版開始,Google Mobile Ads SDK 支援 Swift Package Manager。請按照下列步驟匯入 Swift 套件。
在 Xcode 中前往「File」>「Add Packages...」,安裝 Google Mobile Ads Swift 套件。
在隨即顯示的提示中,搜尋 Google 行動廣告 Swift Package GitHub 存放區:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
選取您要使用的 Google 行動廣告 Swift 套裝方案版本。 如果是新專案,建議您使用下一個主要版本。
完成後,Xcode 會開始解析套件依附元件,並在背景下載。如要進一步瞭解如何新增套件依附元件,請參閱 Apple 的文章。
手動下載
直接下載並解壓縮 SDK 架構,然後將下列架構匯入 Xcode 專案:
GoogleAppMeasurement.xcframework
GoogleAppMeasurementIdentitySupport.xcframework
GoogleMobileAds.xcframework
GoogleUtilities.xcframework
nanopb.xcframework
PromisesObjC.xcframework
UserMessagingPlatform.xcframework
在專案建構設定中,將
-ObjC
連結器標記新增至「Other Linker Flags」(其他連結器旗標):
更新 Info.plist
更新應用程式的 Info.plist
檔案,新增兩個金鑰:
具有AdMob app ID found in the AdMob UI字串值的
GADApplicationIdentifier
鍵。具有
SKAdNetworkIdentifier
值的SKAdNetworkItems
鍵,適用於已向 Google 提供這些值的 Google (cstr6suwn9.skadnetwork
) 和特定第三方買家。
完整程式碼片段
<key>GADApplicationIdentifier</key> <string>ca-app-pub-3940256099942544~1458002511</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>4pfyvq9l8r.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>5a6flpkh64.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>v4nxqhlyqp.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>wzmmz9fp6w.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>n6fk4nfna4.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>eh6m2bh4zr.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>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>ecpz2srf59.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>uw77j35x4d.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>pwa73g5rt2.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>mlmmfzh3r3.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>e5fvkxwrpn.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>8c4e2ghe7u.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>zq492l623r.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3rd42ekr43.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qcr597p9d.skadnetwork</string> </dict> </array>
如果您尚未建立 AdMob 帳戶並註冊應用程式,現在正是時候。
初始化 Mobile Ads SDK
載入廣告前,請在 GADMobileAds.sharedInstance
上呼叫 startWithCompletionHandler:
方法,這會初始化 SDK,並在初始化完成後 (或 30 秒逾時後) 呼叫完成處理常式。這項作業只需要執行一次,最好在應用程式啟動時完成。請盡早呼叫 startWithCompletionHandler:
。
以下範例說明如何在 AppDelegate
中呼叫 startWithCompletionHandler:
方法:
AppAgent.m 範例 (摘錄)
Swift
import GoogleMobileAds @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { GADMobileAds.sharedInstance().start(completionHandler: nil) return true } }
Objective-C
@import GoogleMobileAds; @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [GADMobileAds.sharedInstance startWithCompletionHandler:nil]; return YES; } @end
如果您使用中介服務,建議等到呼叫完成處理常式後再載入廣告,因為這可確保所有中介服務轉接程式都已初始化。
選取廣告格式
Mobile Ads SDK 現已匯入並初始化,您隨時可以導入廣告。 AdMob 提供多種不同的廣告格式,方便您選擇最適合應用程式使用者體驗的格式。
橫幅廣告
顯示在裝置螢幕頂端或底部的矩形廣告。橫幅廣告會在使用者與應用程式互動時持續顯示在螢幕上,而且會在一段時間後自動重新整理。如果您是行動廣告新手,可以先從這些地方著手。
插頁式
全螢幕廣告會覆蓋應用程式介面,直到使用者關閉為止。 這類 API 最適合用於應用程式執行作業流程中的自然暫停時間,例如遊戲關卡之間或任務完成後的空檔。
原生
可自訂的廣告能融入應用程式的外觀和風格。您可以在此決定廣告的刊登位置和位置,讓版面配置與應用程式的設計更加一致。
已獲得獎勵
這類廣告會在使用者觀看短片並與可試玩廣告和問卷調查互動時提供獎勵。適合用來透過免費遊戲使用者營利。
導入獎勵廣告 | 導入獎勵廣告 (新 API) |