開始使用

將 Google Mobile Ads SDK 整合到應用程式中, 來顯示廣告及賺取收益整合 SDK 後 繼續導入一或多個 支援的廣告格式

必要條件

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

匯入 Mobile Ads SDK

請使用下列其中一種方法匯入 Google Mobile Ads SDK。

CocoaPods (建議)

要將 SDK 匯入 iOS 專案,最簡單的方法是使用 CocoaPods:未解決 並將以下這一行新增至應用程式的目標中:

pod 'Google-Mobile-Ads-SDK'

接著,從指令列執行下列指令:

pod install --repo-update

如果是 CocoaPods 新手,請參閱 詳情請參閱官方文件。 說明如何建立及使用 Podfiles

Swift 套件管理工具

Google Mobile Ads SDK 支援 Swift 套件 Manager (自版本 9.0.0 起)。請按照這些 匯入 Swift 套件的步驟:

  1. 在 Xcode 中,前往以下網址安裝 Google 行動廣告 Swift 套件: 檔案 >新增套件...

  2. 在隨即顯示的提示中,搜尋「Google 行動廣告 Swift Package」 GitHub 存放區:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. 選取您想要使用的 Google 行動廣告 Swift 套件版本。 如要建立新專案,建議您使用直到下一個主要版本

完成後,Xcode 就會開始解析套件依附元件 並在背景下載及下載進一步瞭解如何新增套件 請參閱 Apple 文章

手動下載

  1. 下載 Google Mobile Ads SDK 並Embed & Sign將下列架構導入 Xcode 專案:

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  2. -ObjC 連結器標記加入您專案的「Other Linker Flags」中 版本設定:

更新 Info.plist

更新應用程式的 Info.plist 檔案,加入兩個金鑰:

  1. GADApplicationIdentifier鍵,其中包含 Ad Manager app ID found in the Ad Manager UI and of the form ca-app-pub-################~##########

  2. 包含 SKAdNetworkIdentifier 值的 SKAdNetworkItems 鍵,用於 Google (cstr6suwn9.skadnetwork) 和 特定第三方買方 向 Google 提供這些值

完整程式碼片段

<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>

為了讓初始化效能達到最佳狀態,請務必與您的收益建立關聯 群組,以及他們所使用的特定應用程式。收益群組設定 凡是指定 iOS 且未與任何特定應用程式建立關聯,都會傳送給所有 iOS 可能會增加初始化所需的時間。

在實際應用程式中,請將範例應用程式 ID 換成實際 Ad Manager 應用程式 ID。如果下列情況,您可以使用範例 ID 您只是在 Hello World 應用程式中用 SDK 進行實驗。

初始化 Mobile Ads SDK

載入廣告前,請先對startWithCompletionHandler: GADMobileAds.sharedInstance, 初始化 SDK 並呼叫完成處理常式一次 完成初始化 (或超過 30 秒逾時後)。您只需要 最好在啟動應用程式時進行此操作您應呼叫 startWithCompletionHandler: 越早越好

以下範例說明如何在startWithCompletionHandler: 您的 AppDelegate

AppDelegate 範例 (摘錄)

Swift

import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    GADMobileAds.sharedInstance().start(completionHandler: nil)

    return true
  }
}

SwiftUI

import GoogleMobileAds

class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    GADMobileAds.sharedInstance().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 現已匯入和初始化完成,您隨時可以開始 導入廣告。 Ad Manager 提供多種 因此您能根據應用程式使用者的需求,選擇最合適的廣告格式 無須專人管理

如果您是 SwiftUI 開發人員,請遵守我們的 SwiftUI 指南

橫幅廣告單元會佔用應用程式的部分區域來顯示矩形廣告 版面配置。而且會經過一段時間後自動重新整理。也就是說 使用者每隔一段時間就會看見新廣告 套用適當工具這種廣告格式的導入方式最簡單。

導入橫幅廣告

插頁式

插頁式廣告單元會在您應用程式中顯示全頁廣告。自然地展示 例如應用程式介面的破關和轉場效果 看看如何製作新的遊戲廣告

導入插頁式廣告

原生

原生廣告可讓您自訂素材資源,例如廣告標題 行動號召會顯示在您的應用程式中。自行設定廣告樣式 製作不會突兀的自然廣告簡報,並加入內容豐富的使用者 無須專人管理

Google Ad Manager 提供兩種導入原生廣告的方式:原生樣式和 放送標準原生廣告

原生樣式旨在簡化原生廣告的導入流程 對格式還不熟悉的使用者來說 這也是個好方法一直以來,自訂顯示功能 ,讓您在建立簡報時享有最大的自由。

導入原生樣式 導入原生廣告 (自訂顯示)

已獲得獎勵

獎勵廣告單元可讓使用者玩遊戲、參加問卷調查或觀看影片 獲得應用程式內獎勵,例如金幣、額外生命或點數。您可以設定 為不同的廣告單元提供不同的獎勵,並指定獎勵價值 使用者收到的項目

導入獎勵廣告

插頁式獎勵廣告

插頁式獎勵廣告是一種全新的獎勵廣告格式 透過自動顯示的廣告提供獎勵,例如金幣或額外生命 在應用程式自然轉換點中運作時

與獎勵廣告不同的是,使用者不需要選擇觀看獎勵廣告 插頁式廣告。

在獎勵廣告中不會顯示選擇觀看提示,插頁式獎勵廣告並不會顯示 說明獎勵的簡介畫面,並讓使用者選擇是否要 自己想要做的事

導入插頁式獎勵廣告

應用程式開啟頁面廣告

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

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