本指南介绍了如何使用 Google 移动广告 SDK 通过中介加载和展示来自 Unity Ads 的广告,其中涵盖了瀑布流集成。如何将 Unity Ads 添加到广告单元的中介配置,以及如何将 Unity Ads SDK 和适配器集成到 Flutter 应用中。
支持的集成和广告格式
Unity Ads 的 AdMob 中介适配器具有以下功能:
集成 | |
---|---|
出价 | 1 |
瀑布 | |
表现形式 | |
横幅 | |
插页式广告 | |
激励广告 |
1 出价集成功能目前处于公开 Beta 版阶段。
要求
- 最新版 Google 移动广告 SDK
- Flutter 3.7.0 或更高版本
- [对于出价]:如需在出价中集成所有受支持的广告格式,请使用 Google 移动广告中介插件(适用于 Unity Ads)1.1.0 或更高版本(建议使用最新版本)
- 如需在 Android 上部署,则要求:
- Android API 级别 23 或更高级别
- 如需在 iOS 上部署,则要求:
- iOS 部署目标版本为 12.0 或更高版本
- 已配置 Google 移动广告 SDK 的 Flutter 项目,该项目应正常运行。如需了解详情,请参阅使用入门。
- 通读中介入门指南
第 1 步:在 Unity Ads 界面中设置配置
创建项目
在 Unity Ads 信息中心内,前往项目,然后点击新建。
填写表单,然后点击创建以添加项目。
前往 Unity Ads 创收,然后点击开始。
在 New Project 模态框中,选择 I will use Mediation 和 Google Admob 作为中介合作伙伴,然后点击 Next。
选择广告设置选项,然后点击下一步。
选择展示位置设置,然后点击下一步。
出价
瀑布
填写表单,然后点击添加项目。
记下游戏 ID。
创建广告单元和展示位置
依次前往 Unity Ads 创收 > 展示位置,然后选择您的项目并点击添加广告单元。
输入广告单元名称,然后选择平台和广告格式。
Android
iOS
出价
为设置选择出价。在展示位置下,输入展示位置名称。
记下展示位置 ID。
瀑布
在设置中选择瀑布流。在展示位置下,输入展示位置名称、地理位置标记和目标。
记下展示位置 ID。
最后,点击添加广告单元以保存广告单元和展示位置。
查找 Unity Ads Reporting API 密钥
出价
出价集成不需要执行此步骤。
瀑布
依次前往 Unity Ads 创收 > API 管理,并记下创收统计信息 API 访问权限中的 API 密钥。
然后,依次前往 Unity Ads 创收 > 组织设置,并记下组织核心 ID。
更新 app-ads.txt
应用授权卖方 (app-ads.txt) 是一项 IAB Tech Lab 计划,有助于确保只通过您认定的授权渠道销售您的应用广告资源。为避免损失大量广告收入,您需要实施 app-ads.txt
文件。
如果您尚未完成此项设置,请为您的应用设置 app-ads.txt 文件。
如需为 Unity Ads 实现 app-ads.txt
,请参阅首次设置 app-ads.txt。
启用测试模式
您可以在 Unity Ads 信息中心内启用测试模式。依次前往 Unity Ads Monetization(Unity 广告创收)> Testing(测试)。
您可以点击每个平台的修改按钮,启用替换客户端测试模式,然后选择强制所有设备进入测试模式(即使用测试广告),从而强制应用进入测试模式。
Android
iOS
或者,您也可以点击添加测试设备,为特定设备启用测试模式。
输入测试设备详细信息,然后点击保存。
第 2 步:在 AdMob 界面中设置 Unity Ads 需求
为广告单元配置中介设置
将 Unity Ads 添加到 GDPR 和美国州级法规广告合作伙伴名单中
请按照欧洲法规设置和美国州级法规设置中的步骤,将 Unity Ads 添加到 AdMob 界面内的欧洲法规和美国州级法规广告合作伙伴名单中。
第 3 步:导入 Unity Ads SDK 和适配器
通过 pub.dev 进行集成
在软件包的 pubspec.yaml
文件中添加以下依赖项,并确保使用的是 Unity Ads SDK 和适配器的最新版本:
dependencies:
gma_mediation_unity: ^
手动集成
下载适用于 Unity Ads 的最新版 Google 移动广告中介插件,提取下载的文件,并将提取的插件文件夹(及其内容)添加到您的 Flutter 项目中。然后,通过添加以下依赖项,在 pubspec.yaml
文件中引用该插件:
dependencies:
gma_mediation_unity:
path: path/to/local/package
第 4 步:在 Unity Ads SDK 上实现隐私设置
欧盟地区意见征求和《一般数据保护条例》(GDPR)
为了遵守 Google 的《欧盟地区用户意见征求政策》,您必须向欧洲经济区 (EEA)、英国和瑞士的用户披露某些信息,并征得他们同意,才能在法律要求的情况下使用 Cookie 或其他本地存储空间,以及收集、分享和使用个人数据以实现广告个性化。此政策反映了欧盟《电子隐私指令》和《一般数据保护条例》(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 指南。
美国州级隐私保护法律
美国各州隐私保护法律要求向用户提供选择拒绝“出售”其“个人信息”(该法律中对这些术语做出了定义)的权利,“出售”方须在首页醒目位置提供“Do Not Sell My Personal Information”(不出售我的个人信息)链接,以供这些用户选择。美国州级隐私保护法律合规性指南可让您为 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 步:测试您的实现
启用测试广告
确保针对 AdMob 注册测试设备,并在 Unity Ads 界面中启用测试模式。
验证测试广告
若要验证您是否能收到来自 Unity Ads 的测试广告,请在广告检查器中启用 single ad source testing(单个广告来源测试),并选择 Unity Ads (Bidding) and Unity Ads (Waterfall)(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 已完成,但处于错误状态。 |
200-204 | UnityAds 横幅广告的特定错误。如需了解详情,请参阅代码。 |
iOS
0-9 | UnityAds SDK 返回了错误。如需了解详情,请参阅 Unity 的文档。 |
101 | AdMob 界面中配置的 UnityAds 服务器参数缺失/无效。 |
102 | 设备不受 UnityAds 支持。 |
103 | UnityAds 已完成展示,但处于错误状态 kUnityAdsFinishStateError 。 |
104 | 在调用 Unity 广告对象的初始化程序后,该对象为 nil。 |
105 | 由于广告未就绪,未能展示 Unity 广告。 |
107 | UnityAds 使用展示位置状态 kUnityAdsPlacementStateDisabled 调用了展示位置更改回调。 |
108 | 此展示位置已加载广告。UnityAds SDK 不支持为同一展示位置加载多个广告。 |
109 | UnityAds 返回的横幅广告与请求的尺寸不符。 |
110 | UnityAds 返回了初始化错误。 |
111 | 广告格式不受支持。 |
Unity Ads Flutter 中介适配器变更日志
版本 1.6.1(正在开发中)
版本 1.6.0
- 现在需要最低 iOS 版本 13.0。
- 支持 Unity Android 适配器版本 4.16.0.0。
- 支持 Unity iOS 适配器版本 4.16.0.0。
- 使用 Google 移动广告 Flutter 插件 6.0.0 版构建和测试。
版本 1.5.1
- 使用 Google 移动广告 Flutter 插件 6.0.0 版构建和测试。
版本 1.5.0
- 使用 Google 移动广告 Flutter 插件 6.0.0 版构建和测试。
版本 1.4.1
- 使用 Google 移动广告 Flutter 插件 6.0.0 版构建和测试。
版本 1.4.0
- 使用 Google 移动广告 Flutter 插件 6.0.0 版构建和测试。
版本 1.3.0
- 使用 Google 移动广告 Flutter 插件 5.3.1 版构建并测试。
版本 1.2.0
- 使用 Google 移动广告 Flutter 插件 5.3.1 版构建并测试。
版本 1.1.0
- 使用 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 版构建和测试。