本指南介绍了如何使用 Google Mobile Ads Flutter Plugin 通过 中介加载和展示来自 Unity Ads 的 广告,其中涵盖了出价集成和瀑布流集成。本指南还介绍了如何将 Unity Ads 添加到广告单元的中介配置中,以及如何将 Unity Ads SDK 和适配器集成到 Flutter 应用中。
支持的集成和广告格式
适用于 Unity Ads 的 Ad Manager 中介适配器具有以下功能:
| 集成 | |
|---|---|
| 出价 | |
| 瀑布流 | 1 |
| 表现形式 | |
| 横幅 | |
| 插页式广告 | |
| 激励广告 | |
要求
- 最新版 Google Mobile Ads Flutter Plugin
- Flutter 3.7.0 或更高版本
- [适用于出价]:如需在出价中集成所有受支持的广告格式,请使用 适用于 Unity Ads 的 Google 移动广告中介插件 1.1.0 或更高版本(建议使用最新版本)
- 如需在 Android 上部署,则要求:
- Android API 级别 23 或更高级别
- 如需在 iOS 上部署,则要求:
- iOS 部署目标版本为 13.0 或更高版本
- 已配置 Google Mobile Ads Flutter Plugin 的正常运行的 Flutter 项目。如需了解详情,请参阅 设置 Google Mobile Ads Flutter Plugin。
- 如何设置中介
第 1 步:在 Unity Ads 界面中设置配置
创建项目
在 Unity Ads 信息中心内,依次前往 Projects 和点击 New。

填写表单,然后点击 Create (创建)以添加项目。

依次前往 Unity Ads Monetization(Unity Ads 创收)和 Get started(开始使用)。

在 New Project (新建项目)模态对话框中,为 Mediation Partner (中介合作伙伴)选择 I will use Mediation (我将使用中介)和 Google Admob ,然后点击 Next (下一步)。

选择广告设置的选项,然后点击 Next (下一步)。

选择展示位置设置,然后点击 Next (下一步)。
出价

瀑布流

填写表单,然后点击 Add project (添加项目)。

记下 Game ID (游戏 ID)。

创建广告单元和展示位置
依次前往 Unity Ads Monetization(Unity Ads 创收)> Placements(展示位置),然后选择您的 项目并点击 Add ad unit(添加广告单元)。

输入 Ad unit name(广告单元名称),然后选择 Platform(平台)和 Ad format(广告格式)。
Android

iOS

依次前往 Monetization(创收)> Placements(展示位置),然后点击 Add Ad Unit(添加广告单元)。

输入 Ad Unit Name(广告单元名称),然后选择 Platform(平台)和 Ad Format(广告格式)。
Android

iOS

为 Setup (设置)选择 Waterfall (瀑布流)。在 Placement(展示位置)下,输入 Placement name(展示位置名称)、GEO Tagging(地理位置标记)和 Target(目标)。

记下 Placement ID (展示位置 ID)。
最后,点击 Add ad unit (添加广告单元)以保存广告单元和展示位置。
找到 Unity Ads Reporting API 密钥
出价
出价集成不需要执行此步骤。
瀑布流
依次前往 Unity Ads Monetization (Unity Ads 创收)> API management (API 管理),然后记下 Monetization Stats API Access (创收统计信息 API 访问权限)中的 API Key (API 密钥)。

然后,依次前往 Unity Ads Monetization (Unity Ads 创收)> Organization Settings (组织设置),并记下 Organization core ID (组织核心 ID)。

更新 app-ads.txt
应用授权卖方 app-ads.txt 是 IAB Tech Lab 推出的一项计划,旨在帮助确保您的应用广告资源仅通过您指定为已获授权的渠道进行销售。为了避免广告收入大幅损失,您需要实现 app-ads.txt 文件。
如果您尚未实现,
请为 Ad Manager 创建 app-ads.txt 文件。
如需为 Unity Ads 实现 app-ads.txt,请参阅
首次设置 app-ads.txt。
启用测试模式
您可以在 Unity Ads 信息中心内启用测试模式。依次前往 Unity Ads Monetization (Unity Ads 创收)> Testing (测试)。
您可以点击每个平台的修改按钮,启用 Override client test mode (替换客户端测试模式),然后选择 Force test mode ON (i.e. use test ads) for all devices (强制所有设备启用测试模式,即使用测试广告),从而强制应用进入测试模式。
Android

iOS

或者,您可以点击 Add Test Device (添加测试设备),为特定设备启用测试模式。

输入测试设备详细信息,然后点击 Save (保存)。

第 2 步:在 Ad Manager 界面中设置 Unity Ads 需求
为广告单元配置中介设置
将 Unity Ads 添加到 GDPR 和美国州级法规广告合作伙伴名单中
请按照 欧洲法规设置 和 美国州级法规设置 中的步骤,将 Unity Ads 添加到 Ad Manager 界面内的欧洲法规和美国州级法规广告合作伙伴名单中。
第 3 步:导入 Unity Ads SDK 和适配器
通过 pub.dev 进行集成
在软件包的 pubspec.yaml 文件中添加以下依赖项,并确保使用的是 Unity Ads SDK 和适配器的最新版本:
dependencies:
gma_mediation_unity: ^1.6.5
手动集成
下载最新版适用于
Unity Ads的 Google 移动广告中介插件,
提取下载的文件,并将提取的插件文件夹
(及其内容)添加到您的 Flutter 项目中。然后,通过添加以下依赖项在 pubspec.yaml 文件中引用该插件:
dependencies:
gma_mediation_unity:
path: path/to/local/package
第 4 步:在 Unity Ads SDK 上实现隐私设置
欧盟地区意见征求和《一般数据保护条例》(GDPR)
为了遵守 Google 的《欧盟地区用户意见征求政策》,您必须:向位于欧洲经济区 (EEA)、英国和瑞士境内的 用户披露相关信息;如果法律 要求在使用 Cookie 或存储在本地的其他 ID 之前必须先征得用户同意,您必须照做;如果需要收集、分享和使用个人数据来实现广告 个性化,也必须征得 他们的同意。此政策反映了欧盟《电子隐私指令》和《一般数据保护条例》(GDPR) 的要求。您要负责验证用户意见是否已传播到中介链中的每个广告来源。 Google 无法自动将用户的意见选择传递给此类广告联盟。
适用于 Unity Ads 的 Google 移动广告中介插件
包含
GmaMediationUnity.setGDPRConsent()
方法。以下示例代码展示了如何将用户意见信息传递给 Unity Ads SDK。如果您选择调用此方法,建议您在通过 Google Mobile Ads Flutter Plugin 请求广告之前执行此操作。
import 'package:gma_mediation_unity/gma_mediation_unity.dart';
// ...
GmaMediationUnity.setGDPRConsent(true);
如需了解详情以及可在每种方法中提供的值,请参阅 Unity Ads' 隐私权意见征求和数据 API 以及 《消费者隐私权法案》合规性 指南。
美国州级隐私保护法律
美国各州隐私保护法律要求向用户提供选择拒绝“出售”其“个人信息”(该法律中对这些术语做出了定义)的权利,“出售”方须在首页醒目位置提供“Do Not Sell My Personal Information”(不出售我的个人信息)链接,以供这些用户选择。美国州级隐私保护法律合规性指南可让您为 Google 广告投放启用受限的数据处理,但 Google 无法将此设置应用于您的中介链中的每个广告联盟。因此,您必须确定中介链中可能参与个人信息出售的每个广告联盟,并遵循这些广告联盟的指南来确保合规性。
适用于 Unity Ads 的 Google 移动广告中介插件
包含
GmaMediationUnity.setCCPAConsent()
方法。以下示例代码展示了如何将用户意见信息传递给 Unity Ads SDK。如果您选择调用此方法,建议您在通过 Google Mobile Ads Flutter Plugin 请求广告之前执行此操作。
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 的测试广告,请在广告检查器中启用 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 以 ERROR 状态结束。 |
| 200-204 | UnityAds 横幅广告出现特定错误。如需了解详情,请参阅代码 。 |
iOS
| 0-9 | UnityAds SDK 返回了错误。如需了解详情,请参阅 Unity 的 文档 。 |
| 101 | Ad Manager 界面中配置的 UnityAds 服务器参数缺失/无效。 |
| 102 | UnityAds 不支持该设备。 |
| 103 | UnityAds 以错误状态 kUnityAdsFinishStateError 结束展示。 |
| 104 | 调用 Unity 广告对象的初始化程序后,该对象为 nil。 |
| 105 | 由于广告未准备就绪,无法展示 Unity Ads。 |
| 107 | UnityAds 调用了展示位置更改回调,展示位置状态为 kUnityAdsPlacementStateDisabled。 |
| 108 | 此展示位置已加载广告。UnityAds SDK 不支持为同一展示位置加载多个广告。 |
| 109 | UnityAds 返回的横幅广告与请求的尺寸不符。 |
| 110 | UnityAds 返回了初始化错误。 |
| 111 | 不支持的广告格式。 |
Unity Ads Flutter 中介适配器变更日志
版本 1.6.5
- 使用 Google 移动广告 Flutter 插件版本 6.0.0 构建和测试。
版本 1.6.4
- 将最低 Flutter 版本更新为 3.35.1
- 更新为支持 Google 移动广告 Flutter 插件版本 7.0.0
- 支持 Unity Android 适配器版本 4.16.5.0。
- 支持 Unity iOS 适配器版本 4.16.5.0。
版本 1.6.3
- 使用 Google 移动广告 Flutter 插件版本 6.0.0 构建和测试。
版本 1.6.2
- 使用 Google 移动广告 Flutter 插件版本 6.0.0 构建和测试。
版本 1.6.1
- 使用 Google 移动广告 Flutter 插件版本 6.0.0 构建和测试。
版本 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 构建和测试。