開始使用

選取平台: Android iOS Unity Flutter

本指南適用於想要透過 AdMob 在 iOS 應用程式中營利,但未使用 Firebase 的發布商。如果您打算 (或正在考慮) 在應用程式中加入 Firebase,請改為參閱這份指南的AdMob 搭配 Firebase 版本。

在應用程式中整合 Google Mobile Ads SDK 是顯示廣告及賺取收益的第一步。整合 SDK 後,您就可以繼續導入一或多種支援的廣告格式

必要條件

  • 使用 Xcode 16.0 以上版本
  • 指定 iOS 12.0 以上版本

匯入 Mobile Ads SDK

請使用下列任一方法匯入 Google Mobile Ads SDK。

Swift Package Manager

如要在專案中新增套件依附元件,請按照下列步驟操作:

  1. 在 Xcode 中,依序點選「File」>「Add Package Dependencies...」,安裝 Google 行動廣告 Swift Package。

  2. 在出現的提示中,搜尋 Google Mobile Ads Swift Package GitHub 存放區:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. 選取要使用的 Google Mobile Ads Swift 套件版本。對於新專案,建議您使用升級至下一個主要版本

CocoaPods

繼續操作前,請先參閱「使用 CocoaPods」一文,瞭解如何建立及使用 Podfile。

如要使用 CocoaPods,請按照下列步驟操作:

  1. 開啟專案的 Podfile,然後將這行程式碼新增至應用程式的 target 建構設定:

    pod 'Google-Mobile-Ads-SDK'
  2. 在終端機中執行以下指令:

    pod install --repo-update

手動下載

  1. 下載 Google Mobile Ads SDK,並將下列框架 Embed & Sign 下載至 Xcode 專案:

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  2. 在專案的建構設定中:

    • /usr/lib/swift 路徑新增至「Runpath Search Paths」
    • -ObjC 連結器旗標新增至「Other Linker Flags」

更新 Info.plist

更新應用程式的 Info.plist 檔案,新增兩個鍵:

  1. GADApplicationIdentifier 鍵,字串值為 AdMob UI 中找到的 AdMob 應用程式 ID。

  2. 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 提供多種廣告格式,方便您選擇最適合應用程式使用者體驗的格式。

橫幅廣告單元會占用應用程式的部分版面來顯示矩形廣告。且會固定在一段時間後自動重新整理。也就是說,即使使用者一直停留在應用程式的同一個畫面,每隔一段時間還是能看見新的廣告。這也是導入方式最簡單的廣告格式。

導入橫幅廣告

插頁式

您可以將插頁式廣告單元安插至使用者操作應用程式的空檔或轉換點 (例如通過遊戲應用程式關卡後),在應用程式介面上顯示全版廣告。

導入插頁式廣告

原生

原生廣告可讓您自訂應用程式中廣告標題和行動號召等素材資源的呈現方式。您可以自行設定廣告樣式,打造自然不顯眼的廣告呈現方式,為使用者帶來更豐富的體驗。

導入原生廣告

已獲得獎勵

獎勵廣告單元可讓使用者透過玩遊戲、參加問卷調查或觀看影片等方式,贏得應用程式內獎勵,例如金幣、額外生命數或積分。您可以為不同的廣告單元設定不同的獎勵,並指定使用者可獲得的獎勵價值和道具。

導入獎勵廣告

插頁式獎勵廣告

插頁式獎勵廣告是一種全新的獎勵廣告格式,您可在應用程式自然轉換時自動顯示這類廣告,向使用者提供獎勵,例如錢幣或額外生命。

與獎勵廣告不同的是,插頁式獎勵廣告不需要等使用者確定選擇觀看即可放送。

獎勵廣告會顯示選擇觀看的提示,插頁式獎勵廣告則是顯示獎勵簡介畫面,使用者可選擇不觀看廣告。

導入插頁式獎勵廣告

應用程式開啟

應用程式開啟頁面廣告格式會在使用者開啟或切換回應用程式時顯示,並疊加在載入畫面上。

導入應用程式開啟頁面廣告