要展示广告并赚取收入,第一步是将 Google 移动广告 SDK 集成到应用中。集成该 SDK 后,您就可以进而实施一种或多种支持的广告格式。
前提条件
- 使用 Xcode 13.2.1 或更高版本
- 定位到 iOS 10.0 或更高版本
导入移动广告 SDK
CocoaPods(首选)
要将该 SDK 导入 iOS 项目,最简便的方法就是使用 CocoaPods。请打开项目的 Podfile 并将下面这行代码添加到应用的目标中:
pod 'Google-Mobile-Ads-SDK'
然后使用命令行运行:
pod install --repo-update
如果您刚开始接触 CocoaPods,请参阅其官方文档,了解如何创建和使用 Podfile。
Swift Package Manager
Google 移动广告 SDK 支持 9.0.0 及更高版本的 Swift Package Manager。请按照以下步骤导入 Swift 软件包。
在 Xcode 中,依次转到“File”(文件)>“Add Packages…”(添加软件包…),安装 Google 移动广告 Swift 软件包。
在显示的提示中,搜索 Google 移动广告 Swift 软件包的 GitHub 代码库:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
选择您要使用的 Google 移动广告 Swift 软件包版本。 对于新项目,我们建议使用 Up to Next Major Version。
完成之后,Xcode 将开始解析您的软件包依赖项,并在后台下载它们。如需详细了解如何添加软件包依赖项,请参阅 Apple 的文章。
手动下载
请直接下载并解压缩 SDK 框架,然后将以下框架导入您的 Xcode 项目中:
GoogleAppMeasurement.xcframework
GoogleAppMeasurementIdentitySupport.xcframework
GoogleMobileAds.xcframework
GoogleUtilities.xcframework
nanopb.xcframework
PromisesObjC.xcframework
UserMessagingPlatform.xcframework
将
-ObjC
链接器标记添加到项目的 Build Settings 下的 Other Linker Flags 中:
更新您的 Info.plist
请更新应用的 Info.plist
文件以添加以下两个键:
- 一个字符串值为您的 Ad Manager 应用 ID 的
GADApplicationIdentifier
键(在 Ad Manager 界面中标识)。 - 一个
SKAdNetworkIdentifier
值为 Google(cstr6suwn9.skadnetwork
),并选择向 Google 提供了这些值的其他买家的SKAdNetworkItems
键。
<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>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>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>3sh42y64q3.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>prcb7njmu6.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>9rd848q2bz.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>n6fk4nfna4.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>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>av6w8kgt66.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>424m5254lk.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>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>3qcr597p9d.skadnetwork</string> </dict> </array>
为获得最佳初始化性能,请务必将您的收益组与使用这些收益组的特定应用关联起来。凡是定位到 iOS 且未与任何特定应用关联的收益组配置,都会发送到您帐号中的所有 iOS 应用中,因而可能会延长初始化所需的时间。
初始化移动广告 SDK
加载广告之前,请先调用 GADMobileAds.sharedInstance
的 startWithCompletionHandler:
方法,该方法将初始化相应 SDK,并在初始化完成后或 30 秒超时后回调完成处理程序。此操作只需执行一次,最好是在应用启动时执行。您应该尽早调用 startWithCompletionHandler:
。
以下示例展示了如何在 AppDelegate
中调用 startWithCompletionHandler:
方法:
示例 AppDelegate.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
如果您使用的是中介功能,可能需要等到调用完成处理程序后再加载广告,因为这可确保初始化所有的中介适配器。
选择一种广告格式
移动广告 SDK 现已导入并初始化,您随时可以植入广告了。Ad Manager 提供了许多不同的广告格式,您可以根据您应用的用户体验选择最契合的一款。
横幅广告
横幅广告是在设备屏幕的顶部或底部展示的矩形广告。用户与应用互动时,横幅广告会停留在屏幕上,并且可在一段时间后自动刷新。如果您刚开始接触移动广告,建议从横幅广告着手。
插页式广告
插页式广告是全屏广告,它会覆盖整个应用界面,直到用户将其关闭。在应用执行流程的自然停顿点,例如游戏的不同关卡之间,或一项任务完成后,最适合投放这类广告。
原生广告
原生广告是一种与您应用的外观和风格融为一体的定制广告。您可以决定这类广告的投放方式和位置,从而让版式与应用的设计风格更为统一。
Google Ad Manager 提供了两种植入原生广告的方法:原生样式和自定义呈现。
原生样式旨在尽可能地简化原生广告的植入过程。如果您刚接触原生广告,那么此方法是不错的选择。自定义呈现旨在为您提供尽可能大的自由发挥空间来呈现广告展示效果。
植入原生样式 | 植入自定义呈现 |
激励广告
向观看短视频和与试玩广告及问卷调查互动的用户予以奖励的广告。适合用来从那些只愿意免费玩游戏的用户身上创收。
植入激励广告 | 植入激励广告(新 API) |