借助 Google 移动广告 Unity 插件,Unity 开发者无需编写 Java 或 Objective-C 代码,即可在 Android 和 iOS 应用中投放 Google 移动广告。该插件提供了一个用于请求广告的 C# 接口,供 Unity 项目中的 C# 脚本使用。
本指南面向希望通过 Unity 应用进行创收的发布商。
前提条件
- 使用 Unity 编辑器 2019.4 或更高版本
- 如需在 iOS 上部署,需满足以下要求
- Xcode 16.0 或更高版本
- 以 iOS 12.0 或更高版本为目标平台
- CocoaPods
- 如需在 Android 上部署,需满足以下要求
- 最低 Android API 级别为 23 或更高级别
- 以 Android API 级别 34 或更高级别为目标平台
Android API 级别在 Project Settings(项目设置)> Player(可执行游戏文件)> Android > Other Settings(其他设置)> Other Settings(其他设置)中设置。
导入移动广告 Unity 插件
OpenUPM-CLI
如果您已安装 OpenUPM CLI,则可以使用以下命令安装 OpenUPM 注册表:
openupm add com.google.ads.mobile
移除 .unitypackage
插件资源
如果要从使用 .unitypackage
改为使用 OpenUPM,您必须手动卸载旧位置中的资源。移除从 .unitypackage
导入的以下目录:
- Assets/ExternalDependencyManager
- Assets/GoogleMobileAds
- Assets/Plugins/Android/googlemobileads-unity.aar
- Assets/Plugins/Android/GoogleMobileAdsPlugin
- Assets/Plugins/iOS/GADUAdNetworkExtras
- Assets/Plugins/iOS/unity-plugin-library.a
OpenUPM
- 依次选择 Unity 菜单选项 Edit(修改)> Project Settings(项目设置)> Package Manager(资源包管理器),打开资源包管理器设置。
在资源包管理器窗口中,将 OpenUPM 添加为限定范围的注册表:
Name: OpenUPM URL: https://package.openupm.com Scopes: com.google
依次选择 Unity 菜单选项 Window(窗口)> Package Manager(资源包管理器),打开资源包管理器菜单。
在管理器范围下拉菜单中,选择 My Registries(我的注册表)。
从资源包列表中选择 Google Mobile Ads for Unity(适用于 Unity 的 Google 移动广告)资源包,然后按 Install(安装)。
移除 .unitypackage
插件资源
如果要从使用 .unitypackage
改为使用 OpenUPM,您必须手动卸载旧位置中的资源。移除从 .unitypackage
导入的以下目录:
- Assets/ExternalDependencyManager
- Assets/GoogleMobileAds
- Assets/Plugins/Android/googlemobileads-unity.aar
- Assets/Plugins/Android/GoogleMobileAdsPlugin
- Assets/Plugins/iOS/GADUAdNetworkExtras
- Assets/Plugins/iOS/unity-plugin-library.a
从 GitHub 导入
- 从 GitHub 下载最新的
.unitypackage
版本。 - 导入
.unitypackage
文件,方法是依次选择 Unity 菜单选项 Assets(资源)> Import package(导入资源包)> Custom Package(自定义资源包),然后导入所有项目。
纳入外部依赖项
Google 移动广告 Unity 插件在发布时随附了 Unity Play 服务解析器库。此库旨在供需要访问 Android 专用库(例如 AAR)或 iOS CocoaPods 的所有 Unity 插件使用。有了此库,Unity 插件就能够声明依赖项,然后依赖项就会被自动解析并复制到您的 Unity 项目中。
请按照以下步骤操作,确保您的项目包含所有依赖项:
Android
依次前往 Project Settings(项目设置)> Player(可执行游戏文件)> Android > Publishing Settings(发布设置)> Build(构建),然后选择:
- Custom Main Gradle Template(自定义主 Gradle 模板)
- Custom Gradle Properties Template(自定义 Gradle 属性模板)
在 Unity 编辑器中,依次选择 Assets(资源)> External Dependency Manager(外部依赖项管理器)> Android Resolver(Android 解析器)> Resolve(解析),让 Unity 外部依赖项管理器库将声明的依赖项复制到 Unity 应用的 Assets/Plugins/Android
目录中。
iOS
适用于 iOS 的 Unity 使用 CocoaPods 来标识和管理依赖项。如需了解与 iOS 依赖项相关的具体要求或问题排查步骤,请参阅 CocoaPods 文档。
Google 移动广告 Unity 插件依赖项在 Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml
中列出。
设置您的 AdMob 应用 ID
在 Unity 编辑器中,从菜单中依次选择 Assets(资源)> Google Mobile Ads(Google 移动广告)> Settings(设置)。
在相应字段中分别输入您的 Android 和 iOS AdMob 应用 ID。
初始化 SDK
加载广告之前,请先调用 MobileAds.Initialize()
,以便让应用初始化 Google 移动广告 SDK。此操作仅需执行一次,最好是在应用启动时执行。
以下示例展示了如何调用 MobileAds.Initialize()
:
MobileAds.Initialize((InitializationStatus initstatus) =>
{
if (initstatus == null)
{
Debug.LogError("Google Mobile Ads initialization failed.");
return;
}
Debug.Log("Google Mobile Ads initialization complete.");
// Google Mobile Ads events are raised off the Unity Main thread. If you need to
// access UnityEngine objects after initialization,
// use MobileAdsEventExecutor.ExecuteInUpdate(). For more information, see:
// https://developers.google.com/admob/unity/global-settings#raise_ad_events_on_the_unity_main_thread
});
如果您使用的是中介功能,请等到回调发生后再加载广告,以确保初始化所有的中介适配器。
选择一种广告格式
现在,部署到 Android 或 iOS 平台上时,您的 Unity 应用中会包含 Google 移动广告 SDK。您现在可以植入广告了。AdMob 提供了多种不同的广告格式,因此您可以选择能带来最佳用户体验的格式。
横幅广告
横幅广告单元将展示占用应用部分版面的矩形广告。这种广告可在设定好的一段时间后自动刷新。也就是说,即使用户停留在应用中的同一个屏幕上,他们也会每隔一段时间就看到新广告。此种广告格式也是最容易植入的。
插页式广告
插页式广告单元用于在您的应用中展示全屏广告。请将这些广告单元放置在应用界面中的自然间歇点和过渡点,比如在游戏应用中过关后。
原生广告
原生广告支持自定义素材资源(如标题和号召性用语)在应用中的呈现方式。通过自行设置广告样式,您可以呈现出自然且毫不突兀的广告展示效果,进而使用户体验更加丰富。
激励广告
激励广告单元让用户能够通过玩游戏、填写调查问卷或观看视频来获得金币、额外生命或积分等应用内奖励。您可以针对不同广告单元设置不同的奖励,并指定用户获得的奖励价值和奖品。
插页式激励广告
插页式激励广告是一种激励用户的新型广告格式,采用这种格式时,您可以通过在应用中的自然过渡点自动展示的广告向用户提供奖励,如金币或额外生命。
与激励广告不同,用户无需自行选择即可观看插页式激励广告。
与激励广告中提供选择观看提示不同,插页式激励广告需要提供一个介绍画面来告知用户提供何种奖励,并让用户可以自主选择退出广告。
开屏广告
开屏广告会在用户打开或切换回您的应用时展示。这种广告会叠加在加载屏幕上。