本指南適用於想要透過 AdMob 在 iOS 應用程式中營利,但未使用 Firebase 的發布商。如果您打算 (或正在考慮) 在應用程式中加入 Firebase,請改為參閱這份指南的AdMob 搭配 Firebase 版本。
在應用程式中整合 Google Mobile Ads SDK 是顯示廣告及賺取收益的第一步。整合 SDK 後,您就可以繼續導入一或多種支援的廣告格式。
必要條件
- 使用 Xcode 16.0 以上版本
- 指定 iOS 12.0 以上版本
- 建議做法:建立 AdMob 帳戶並註冊應用程式。
匯入 Mobile Ads SDK
請使用下列任一方法匯入 Google Mobile Ads SDK。
Swift Package Manager
如要在專案中新增套件依附元件,請按照下列步驟操作:
在 Xcode 中,依序點選「File」>「Add Package Dependencies...」,安裝 Google 行動廣告 Swift Package。
在出現的提示中,搜尋 Google Mobile Ads Swift Package GitHub 存放區:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
選取要使用的 Google Mobile Ads Swift 套件版本。對於新專案,建議您使用升級至下一個主要版本。
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 UI 中找到的 AdMob 應用程式 ID。SKAdNetworkItems
鍵,其中包含 Google (cstr6suwn9.skadnetwork
) 和選定第三方買家的SKAdNetworkIdentifier
值,這些買家已將這些值提供給 Google。
完整程式碼片段
>GADApplicationIdentifier SAMPLE_APP_ID SKAdNetworkItems SKAdNetworkIdentifier cstr6suwn9.skadnetwork SKAdNetworkIdentifier 4fzdc2evr5.skadnetwork SKAdNetworkIdentifier 2fnua5tdw4.skadnetwork SKAdNetworkIdentifier ydx93a7ass.skadnetwork SKAdNetworkIdentifier p78axxw29g.skadnetwork SKAdNetworkIdentifier v72qych5uu.skadnetwork SKAdNetworkIdentifier ludvb6z3bs.skadnetwork SKAdNetworkIdentifier cp8zw746q7.skadnetwork SKAdNetworkIdentifier 3sh42y64q3.skadnetwork SKAdNetworkIdentifier c6k4g5qg8m.skadnetwork SKAdNetworkIdentifier s39g8k73mm.skadnetwork SKAdNetworkIdentifier 3qy4746246.skadnetwork SKAdNetworkIdentifier f38h382jlk.skadnetwork SKAdNetworkIdentifier hs6bdukanm.skadnetwork SKAdNetworkIdentifier mlmmfzh3r3.skadnetwork SKAdNetworkIdentifier v4nxqhlyqp.skadnetwork SKAdNetworkIdentifier wzmmz9fp6w.skadnetwork SKAdNetworkIdentifier su67r6k2v3.skadnetwork SKAdNetworkIdentifier yclnxrl5pm.skadnetwork SKAdNetworkIdentifier t38b2kh725.skadnetwork SKAdNetworkIdentifier 7ug5zh24hu.skadnetwork SKAdNetworkIdentifier gta9lk7p23.skadnetwork SKAdNetworkIdentifier vutu7akeur.skadnetwork SKAdNetworkIdentifier y5ghdn5j9k.skadnetwork SKAdNetworkIdentifier v9wttpbfk9.skadnetwork SKAdNetworkIdentifier n38lu8286q.skadnetwork SKAdNetworkIdentifier 47vhws6wlr.skadnetwork SKAdNetworkIdentifier kbd757ywx3.skadnetwork SKAdNetworkIdentifier 9t245vhmpl.skadnetwork SKAdNetworkIdentifier a2p9lx4jpn.skadnetwork SKAdNetworkIdentifier 22mmun2rn5.skadnetwork SKAdNetworkIdentifier 44jx6755aq.skadnetwork SKAdNetworkIdentifier k674qkevps.skadnetwork SKAdNetworkIdentifier 4468km3ulz.skadnetwork SKAdNetworkIdentifier 2u9pt9hc89.skadnetwork SKAdNetworkIdentifier 8s468mfl3y.skadnetwork SKAdNetworkIdentifier klf5c3l5u5.skadnetwork SKAdNetworkIdentifier ppxm28t8ap.skadnetwork SKAdNetworkIdentifier kbmxgpxpgc.skadnetwork SKAdNetworkIdentifier uw77j35x4d.skadnetwork SKAdNetworkIdentifier 578prtvx9j.skadnetwork SKAdNetworkIdentifier 4dzt52r2t5.skadnetwork SKAdNetworkIdentifier tl55sbb4fm.skadnetwork SKAdNetworkIdentifier c3frkrj4fj.skadnetwork SKAdNetworkIdentifier e5fvkxwrpn.skadnetwork SKAdNetworkIdentifier 8c4e2ghe7u.skadnetwork SKAdNetworkIdentifier 3rd42ekr43.skadnetwork SKAdNetworkIdentifier 97r2b46745.skadnetwork SKAdNetworkIdentifier 3qcr597p9d.skadnetwork
將 SAMPLE_APP_ID 替換為 AdMob 應用程式 ID。測試時,請使用前述範例中的應用程式 ID。
如果您尚未建立 AdMob 帳戶並註冊應用程式,現在正是時候進行這些操作。
初始化 Mobile Ads SDK
在載入廣告之前,請對 GADMobileAds.sharedInstance
呼叫 startWithCompletionHandler:
方法,這樣系統就會在初始化完成後 (或 30 秒逾時後) 初始化 SDK,並回呼完成處理程序。這項作業只需執行一次,最好是在應用程式啟動時執行。您應盡早呼叫 startWithCompletionHandler:
。
以下範例說明如何在 AppDelegate
中呼叫 startWithCompletionHandler:
方法:
AppDelegate 範例 (節錄)
Swift
import GoogleMobileAds
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
MobileAds.shared.start(completionHandler: nil)
return true
}
}
SwiftUI
import GoogleMobileAds
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
MobileAds.shared.start(completionHandler: nil)
return true
}
}
@main
struct YourApp: App {
// To handle app delegate callbacks in an app that uses the SwiftUI lifecycle,
// you must create an application delegate and attach it to your `App` struct
// using `UIApplicationDelegateAdaptor`.
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
NavigationView {
ContentView()
}
}
}
}
Objective-C
@import GoogleMobileAds;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
return YES;
}
@end
選取廣告格式
Mobile Ads SDK 現已匯入及初始化,您可以開始導入廣告了。AdMob 提供多種廣告格式,方便您選擇最適合應用程式使用者體驗的格式。
橫幅廣告
橫幅廣告單元會占用應用程式的部分版面來顯示矩形廣告。且會固定在一段時間後自動重新整理。也就是說,即使使用者一直停留在應用程式的同一個畫面,每隔一段時間還是能看見新的廣告。這也是導入方式最簡單的廣告格式。
插頁式
您可以將插頁式廣告單元安插至使用者操作應用程式的空檔或轉換點 (例如通過遊戲應用程式關卡後),在應用程式介面上顯示全版廣告。
原生
原生廣告可讓您自訂應用程式中廣告標題和行動號召等素材資源的呈現方式。您可以自行設定廣告樣式,打造自然不顯眼的廣告呈現方式,為使用者帶來更豐富的體驗。
已獲得獎勵
獎勵廣告單元可讓使用者透過玩遊戲、參加問卷調查或觀看影片等方式,贏得應用程式內獎勵,例如金幣、額外生命數或積分。您可以為不同的廣告單元設定不同的獎勵,並指定使用者可獲得的獎勵價值和道具。
插頁式獎勵廣告
插頁式獎勵廣告是一種全新的獎勵廣告格式,您可在應用程式自然轉換時自動顯示這類廣告,向使用者提供獎勵,例如錢幣或額外生命。
與獎勵廣告不同的是,插頁式獎勵廣告不需要等使用者確定選擇觀看即可放送。
獎勵廣告會顯示選擇觀看的提示,插頁式獎勵廣告則是顯示獎勵簡介畫面,使用者可選擇不觀看廣告。
應用程式開啟
應用程式開啟頁面廣告格式會在使用者開啟或切換回應用程式時顯示,並疊加在載入畫面上。