将 Unity Ads 与中介集成

本指南介绍了如何使用 Google 移动广告 SDK 使用中介加载和展示 Unity Ads 中的广告,其中涵盖了广告瀑布流集成。其中介绍了如何将 Unity Ads 添加到广告单元的中介配置,以及如何将 Unity Ads SDK 和适配器集成到应用中。 Flutter

支持的集成和广告格式

Ad Manager 适用于 Unity Ads 的中介适配器具有以下功能:

集成
出价  1
瀑布
表现形式
横幅
插页式广告
激励广告

1 出价功能集成目前处于封闭式 Beta 版阶段,请与您的客户经理联系,申请访问权限。

要求

  • 最新版 Google 移动广告 SDK
  • Flutter 3.7.0 或更高版本
  • 如需在 Android 上部署,请执行以下操作:
    • Android API 级别 21 或更高级别
  • 要在 iOS 上部署,需具备以下条件:
    • iOS 部署目标为 12.0 或更高版本
  • 使用 Google 移动广告 SDK 配置的 Flutter 正常运行的项目。如需了解详情,请参阅开始使用
  • 完成中介入门指南

第 1 步:在 Unity Ads 界面中设置配置

注册或登录 Unity Ads。

创建项目

Unity Ads 信息中心中,前往项目,然后点击创建项目

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

依次前往创收 > 开始,然后点击开始

项目设置模态中,选择我计划使用中介,并为中介合作伙伴选择 Google AdMob,然后点击下一步

选择广告设置,然后点击下一步

填写表单,然后点击添加项目

记下游戏 ID

创建广告单元

依次前往创收 > 广告单元,然后点击添加广告单元

输入广告单元名称,然后选择平台广告格式

Android

iOS

最后,点击创建以保存您的广告单元。

添加展示位置

出价

请与您的 Google 客户经理联系,以创建出价展示位置。

瀑布

创建项目后,依次前往创收 > 展示位置。如需创建新的展示位置,请点击广告单元的添加展示位置

填写必要的详细信息,然后点击添加展示位置

记下展示位置 ID

Android

iOS

找到 Unity Ads Reporting API 密钥

出价

出价集成不需要执行此步骤。

瀑布

除了游戏 ID展示位置 ID 之外,您还需要 Unity Ads API 密钥组织核心 ID 才能设置 AdMob 广告单元 ID。

依次前往创收 > 设置 > API 管理,并记下 Monetize Stats API Access Key(创收统计信息 API 访问密钥)。

然后,依次前往创收 > 组织设置,记下组织核心 ID

开启测试模式

您可以通过 Unity Ads 信息中心启用测试模式。在项目的设置下,选择测试标签页。

如需为应用强制启用测试模式,请点击每个平台的“修改”按钮,选中替换客户端测试模式,然后选择为所有设备强制启用测试模式(即使用测试广告)

Android

iOS

或者,您也可以点击添加测试设备按钮,为特定设备启用测试模式。

填写表单并点击保存

第 2 步:在 Ad Manager 界面中设置 Unity Ads 需求来源

为广告单元配置中介设置

Android

如需查看相关说明,请参阅 Android

iOS

如需了解相关说明,请参阅 iOS

将 Unity Ads 添加到 GDPR 和美国州级法规广告合作伙伴名单

请按照 GDPR 设置美国州级法规设置中的步骤,将 Unity Ads 添加到 AdMob 界面中的 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 中实现隐私设置

根据 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 步:测试您的实现

启用测试广告

请务必为 AdMob 注册测试设备,并在 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 版构建和测试。