本指南介绍了如何使用 Google 移动广告 SDK 使用中介从 Unity Ads 加载和展示广告,涵盖广告瀑布流集成。其中介绍了如何将 Unity Ads 添加到广告单元的中介配置,以及如何将 Unity Ads SDK 和适配器集成到 Flutter 应用中。
支持的集成和广告格式
适用于 Unity Ads 的 Ad Manager 中介适配器具有以下功能:
集成 | |
---|---|
出价 | 1 |
瀑布 | |
表现形式 | |
横幅 | |
插页式广告 | |
激励广告 |
1 出价功能集成目前处于封闭式 Beta 版阶段,请与您的客户经理联系,申请访问权限。
要求
- 最新版 Google 移动广告 SDK
- Flutter 3.7.0 或更高版本
- [出价]:如需在出价中集成所有受支持的广告格式,请使用适用于 Unity Ads 3.11.1 或更高版本的 Google 移动广告中介插件(建议使用最新版本)
- 如需在 Android 上部署,请执行以下操作:
- Android API 级别 21 或更高级别
- 要在 iOS 上部署,需具备以下条件:
- iOS 部署目标为 12.0 或更高版本
- 使用 Google 移动广告 SDK 配置的正常运行的 Flutter 项目。如需了解详情,请参阅开始使用。
- 完成中介入门指南
第 1 步:在 Unity Ads 界面中设置配置
注册或登录 Unity Ads。
创建项目
在 Unity Ads 信息中心中,前往项目,然后点击创建项目。
填写表单,然后点击创建项目以添加项目。
依次前往创收 > 开始,然后点击开始。
在项目设置模态中,选择我计划使用中介,并为中介合作伙伴选择 Google AdMob,然后点击下一步。
选择广告设置,然后点击下一步。
填写表单,然后点击添加项目。
记下游戏 ID。
创建广告单元
依次前往创收 > 广告单元,然后点击添加广告单元。
输入广告单元名称,然后选择平台和广告格式。
Android
iOS
最后,点击创建以保存广告单元。
添加展示位置
创建项目后,依次前往创收 > 展示位置。如需创建新的展示位置,请点击广告单元的添加展示位置。
填写必要的详细信息,然后点击添加展示位置。
记下展示位置 ID。
找到 Unity Ads Reporting API 密钥
出价
出价集成不需要执行此步骤。
瀑布
除了游戏 ID 和展示位置 ID 之外,您还需要 Unity Ads API 密钥和组织核心 ID 才能设置 Ad Manager 广告单元 ID。
依次前往创收 > 设置 > API 管理,并记下 Monetize Stats API Access Key(创收统计信息 API 访问密钥)。
然后,依次前往创收 > 组织设置,记下组织核心 ID。
开启测试模式
您可以通过 Unity Ads 信息中心启用测试模式。在项目的设置下,选择测试标签页。
如需为应用强制启用测试模式,请点击每个平台的“修改”按钮,选中替换客户端测试模式,然后选择为所有设备强制启用测试模式(即使用测试广告)。
Android
iOS
或者,您也可以点击添加测试设备按钮,为特定设备启用测试模式。
填写表单并点击保存。
第 2 步:在 Ad Manager 界面中设置 Unity Ads 需求来源
为广告单元配置中介设置
将 Unity Ads 添加到 GDPR 和美国州级法规广告合作伙伴名单
请按照 GDPR 设置和 美国州级法规设置中的步骤,将 Unity Ads 添加到 Ad Manager 界面中的 GDPR 和美国州级法规广告合作伙伴名单中。
第 3 步:导入 Unity Ads SDK 和适配器
通过 pub.dev 集成
在软件包的 pubspec.yaml
文件中添加以下依赖项,其中包含最新版本的 Unity Ads SDK 和适配器:
dependencies:
gma_mediation_unity: ^1.0.0
手动集成
下载适用于 Unity Ads 的最新版 Google 移动广告中介插件,解压缩下载的文件,然后将解压缩的插件文件夹及其内容添加到您的 Flutter 项目中。然后,通过添加以下依赖项在 pubspec.yaml
文件中引用该插件:
dependencies:
gma_mediation_unity:
path: path/to/local/package
第 4 步:在 Unity Ads SDK 中实现隐私设置
欧盟地区意见征求和 GDPR
根据 Google 《欧盟地区用户意见征求政策》,您必须确保向位于欧洲经济区 (EEA) 的用户披露相关信息并征得他们的同意,以便使用设备标识符和个人数据。此政策反映了欧盟《电子隐私指令》和《一般数据保护条例》(GDPR) 的要求。在征求用户意见时,您必须指明中介链中可能会收集、接收或使用个人数据的每个广告联盟,并提供有关每个广告联盟使用情况的信息。Google 目前无法自动将用户的意见征求选择传递给此类广告联盟。
适用于 Unity Ads 的 Google 移动广告中介插件包含 GmaMediationUnity.setGDPRConsent()
方法。以下示例代码展示了如何将意见征求信息传递给 Unity Ads SDK。如果您选择调用此方法,建议您先调用此方法,然后再通过 Google 移动广告 SDK 请求广告。
import 'package:gma_mediation_unity/gma_mediation_unity.dart';
// ...
GmaMediationUnity.setGDPRConsent(true);
如需了解详情以及可在每种方法中提供的值,请参阅 Unity Ads 的隐私权意见征求和数据 API 和遵守 GDPR 指南。
美国州级隐私保护法律
根据美国各州隐私权法的规定,用户有权选择拒绝出售其“个人信息”(该法律对这些术语进行了定义)。“出售”方须在首页醒目位置提供“不出售我的个人信息”链接,以供这些用户选择。美国州级隐私保护法律合规指南提供了为 Google 广告投放启用受限的数据处理的功能,但 Google 无法将此设置应用于中介链中的每个广告网络。因此,您必须找出中介链中可能参与销售个人信息的每个广告联盟,并遵循每个广告联盟的指南,以确保合规。
适用于 Unity Ads 的 Google 移动广告中介插件包含 GmaMediationUnity.setCCPAConsent()
方法。以下示例代码展示了如何将意见征求信息传递给 Unity Ads SDK。如果您选择调用此方法,建议您先调用此方法,然后再通过 Google 移动广告 SDK 请求广告。
import 'package:gma_mediation_unity/gma_mediation_unity.dart';
// ...
GmaMediationUnity.setCCPAConsent(true);
第 5 步:添加所需代码
Android
无需额外代码即可进行 Unity Ads Android 集成。
iOS
SKAdNetwork 集成
按照 Unity Ads 文档中的说明,将 SKAdNetwork 标识符添加到项目的 Info.plist
文件中。
第 6 步:测试您的实现
启用测试广告
确保您已为 Ad Manager 注册测试设备,并在 Unity Ads 界面中启用测试模式。
验证测试广告
如需验证您是否从 Unity Ads 收到测试广告,请在广告检查器中使用 Unity Ads(出价)和 Unity Ads(广告瀑布流)广告来源启用单一广告来源测试。
错误代码
如果适配器未能从 Unity Ads 收到广告,发布商可以使用以下类下的 ResponseInfo
检查广告响应的根本错误:
Android
com.google.ads.mediation.unity.UnityAdapter
com.google.ads.mediation.unity.UnityMediationAdapter
iOS
GADMAdapterUnity
GADMediationAdapterUnity
以下是 UnityAds 适配器在广告加载失败时抛出的代码和随附消息:
Android
错误代码 | 原因 |
---|---|
0-10 | UnityAds SDK 返回了一个错误。如需了解详情,请参阅代码。 |
101 | 在 Admob 界面中配置的 UnityAds 服务器参数缺失/无效。 |
102 | UnityAds 返回了状态为 NO_FILL 的展示位置。 |
103 | UnityAds 返回了处于 DISABLED 状态的展示位置。 |
104 | UnityAds 尝试展示上下文为 null 的广告。 |
105 | 用于初始化、加载和/或展示 Unity Ads 广告的上下文不是 activity 实例。 |
106 | UnityAds 尝试展示尚未准备好展示的广告。 |
107 | 设备不支持 UnityAds。 |
108 | UnityAds 一次只能为每个展示位置加载 1 个广告。 |
109 | UnityAds 以 ERROR 状态结束。 |
200-204 | UnityAds 横幅出现特定错误。如需了解详情,请参阅代码。 |
iOS
0-9 | UnityAds SDK 返回了一个错误。如需了解详情,请参阅 Unity 的文档。 |
101 | 在 Admob 界面中配置的 UnityAds 服务器参数缺失/无效。 |
102 | 设备不受 UnityAds 支持。 |
103 | UnityAds 以错误状态 kUnityAdsFinishStateError 完成了呈现。 |
104 | 调用其初始化程序后,Unity 广告对象为 nil。 |
105 | 由于广告未准备就绪,未能展示 Unity 广告。 |
106 | UnityAds 调用了展示位置更改回调,展示位置状态为 kUnityAdsPlacementStateNoFill。 |
107 | UnityAds 调用了展示位置更改回调,展示位置状态为 kUnityAdsPlacementStateDisabled。 |
108 | 此展示位置已加载广告。UnityAds SDK 不支持为同一展示位置加载多个广告。 |
Unity Ads Flutter 中介适配器更新日志
版本 1.1.0
- 已验证与 Unity Android 适配器版本 4.12.3.0 的兼容性
- 已验证与 Unity iOS 适配器版本 4.12.3.1 的兼容性
- 使用 Google 移动广告 Flutter 插件 5.2.0 版构建和测试。
版本 1.0.0
- 初始版本。
- 已验证与 Unity Android 适配器版本 4.10.0.0 的兼容性
- 已验证与 Unity iOS 适配器版本 4.10.0.0 的兼容性
- 使用 Google 移动广告 Flutter 插件 5.0.0 版构建和测试。