如需投放广告并赚取收入,请将 Google Mobile Ads SDK 集成到您的 iOS 应用中。如需准备项目,请在提出广告请求之前导入并初始化 Google Mobile Ads SDK。
如果您在 iOS 应用中添加了 Firebase,请参阅在 iOS 项目中开始使用 AdMob。
本指南介绍了如何导入和初始化 Google Mobile Ads SDK,以及如何选择广告格式。
前提条件
在继续操作之前,确保满足以下条件:
- 使用 Xcode 16.0 或更高版本。
- 以 iOS 13.0 或更高版本为目标平台。
导入 Google Mobile Ads SDK
如需导入 Google Mobile Ads SDK,请完成以下某个部分:
Swift Package Manager
若要向项目添加软件包依赖项,请按照以下步骤操作:
- 打开 Xcode。
- 依次前往 File > Add Package Dependencies…(文件 > 添加软件包依赖项…)。
安装 Google Mobile Ads SDK Swift 软件包。
在出现的提示中,搜索 Google 移动广告 Swift 软件包的 GitHub 代码库:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git选择您要使用的 Google Mobile Ads SDK Swift 软件包版本。对于新项目,我们建议使用 Up to Next Major Version(更新至下一主要版本前的最新版)规则。
CocoaPods
如需使用 CocoaPods,请按照以下步骤操作:
打开项目的 Podfile,并将下面这行代码添加到应用的
targetbuild 配置中:pod 'Google-Mobile-Ads-SDK'
在终端运行:
pod install --repo-update
手动下载
如需手动下载 Google Mobile Ads SDK,请执行以下操作:
- 下载 Google Mobile Ads SDK。
- 解压缩
googlemobileadssdkios.zip软件包。 在 Xcode 项目中,添加以下框架:
GoogleMobileAds.xcframeworkUserMessagingPlatform.xcframework
在目标的 General(常规)设置中,前往 Frameworks, Libraries, and Embedded Content(框架、库和嵌入式内容)。
确认您已将
GoogleMobileAds.xcframework和UserMessagingPlatform.xcframework设置为 Embed & Sign(嵌入并签名)。在项目的 build 设置中,执行以下操作:
- 将
/usr/lib/swift路径添加到 Runpath Search Paths(Runpath 搜索路径)。 - 将
-ObjC链接器标志添加到 Other Linker Flags(其他链接器标志)。
- 将
更新 Info.plist 文件
在应用的 Info.plist 文件中,添加以下键:
一个
GADApplicationIdentifier键,其字符串值为您的 AdMob 应用 ID。如需了解详情,请参阅查找并复制应用 ID 或广告单元 ID 。SKAdNetworkItems键,其包含 Googlecstr6suwn9.skadnetwork和部分第三方买方的SKAdNetworkIdentifier值。
完整示例
<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>wg4vff78zm.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() 方法来初始化 Google Mobile Ads SDK。此方法会在 Google Mobile Ads SDK 和中介适配器完成处理后或 30 秒后调用完成处理程序。
以下示例会初始化 Google Mobile Ads SDK:
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 可能会在调用 startWithCompletionHandler: 方法时预加载广告或初始化第三方 SDK。如果您需要征得欧洲经济区 (EEA)、英国或瑞士用户的同意,请设置特定于请求的标志。如果您需要设置专门用于特定请求的标志,请务必在初始化 Google Mobile Ads SDK 之前设置这些标志。如需了解详情,请参阅定位。
选择一种广告格式
导入 Google Mobile Ads SDK 后,您可以选择要植入的广告格式。
AdMob 提供以下广告格式:
| 广告格式 | 说明 | 文档 |
|---|---|---|
| 横幅 | 在应用布局的某个部分展示矩形广告。此广告会按设定的时间间隔自动刷新。如果用户停留在同一屏幕上,系统会定期向其展示这些广告。 | 设置横幅广告 |
| 插页式广告 | 在应用中展示全屏广告。请将这种广告放置在应用界面中的自然间歇点和过渡点,比如在游戏应用中过关后。 | 插页式广告 |
| 原生 | 支持您在应用中自定义标题和号召性用语等素材资源。自定义广告时,您需要制作与应用视觉设计相符的广告。 | 加载原生广告 |
| 激励广告 | 用户通过玩游戏、参与调查问卷或观看视频来赚取应用内奖励,例如金币或积分。您可以为广告单元设置奖励,并指定用户获得的奖励价值和奖品。 | 激励广告 |
| 插页式激励广告 | 让您可以通过在应用过渡期间展示的广告向用户提供奖励,如金币或额外生命值。 | 插页式激励广告 |
| 开屏广告 | 这种广告会在用户打开或返回您的应用时展示,广告会叠加在加载屏幕上。 | 开屏广告 |