将 Unity Ads 与中介集成

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

支持的集成和广告格式

Unity Ads 的 AdMob 中介适配器具有以下功能:

集成
出价  1
瀑布
表现形式
横幅
插页式广告
已奖励
1 出价集成功能目前处于封闭式 Beta 版测试阶段,如需申请访问权限,请与您的客户经理联系。

要求

  • 最新版 Google 移动广告 SDK
  • Unity 4 或更高版本
  • 在 Android 上部署
    • Android API 级别 21 或更高级别
  • 在 iOS 上部署
    • iOS 部署目标为 12.0 或更高版本
  • 使用 Google 移动广告 SDK 配置的有效 Unity 项目。如需了解详情,请参阅开始使用
  • 看完中介服务入门指南

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

注册或登录 Unity Ads。

创建项目

Unity Ads 信息中心内,前往 Projects(项目),然后点击 Create Project(创建项目)。

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

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

项目设置模态窗口中,选择我打算使用中介,针对中介合作伙伴选择 Google AdMob,然后点击下一步

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

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

记下游戏 ID

创建广告单元

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

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

Android

iOS

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

添加展示位置

出价

如需创建出价展示位置,请与您的 Unity Ads 客户经理联系。

瀑布

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

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

记下展示位置 ID

Android

iOS

找到 Unity Ads Reporting API 密钥

出价

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

瀑布

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

依次前往创收 > 设置 > API 管理,并记下 Monetize Stats API 访问密钥

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

开启测试模式

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

您可以点击每个平台的修改按钮,选中替换客户端测试模式,然后选择为所有设备强制启用测试模式(即使用测试广告),从而为应用强制启用测试模式。

Android

iOS

或者,您也可以点击 Add Test Device 按钮来为特定设备启用测试模式。

填写表单并点击保存

第 2 步:在界面中设置 Unity Ads 需求 AdMob

为广告单元配置中介设置

Android

如需了解相关说明,请参阅 Android 指南中的第 2 步。

iOS

如需了解相关说明,请参阅 iOS 指南中的第 2 步。

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

按照 GDPR 设置美国州级法规设置 中的步骤,将 Unity Ads 添加到 AdMob 界面中的 GDPR 和美国州级法规广告合作伙伴列表中。

第 3 步:导入 Unity Ads SDK 和适配器

通过更新日志中的下载链接下载适用于 Unity Ads 的最新版 Google 移动广告中介插件,然后从 zip 文件中提取 GoogleMobileAdsUnityAdsMediation.unitypackage

在 Unity 项目编辑器中,依次选择 Assets > Import Package > Custom Package,然后选择您下载的 GoogleMobileAdsUnityAdsMediation.unitypackage 文件。确保选择所有文件,然后点击 Import(导入)。

然后,依次选择 Assets > Play Services Resolver > Android Resolver > Force Resolve。Unity Play Services Resolver 库将从头开始执行依赖项解析,并将声明的依赖项复制到 Unity 应用的 Assets/Plugins/Android 目录中。

将 Unity Adapter 与 Unity Ads 服务搭配使用

如果您通过“服务”窗格、Package Manager 或 Asset Store 与 Unity Ads SDK 集成,则应用中已有一个 Unity Ads Android SDK 副本。为避免在针对 Android 进行构建时出现重复符号的问题,您需要移除对 Unity Ads SDK 的引用。

更新 Assets/GoogleMobileAds/Editor/UnityMediationDependencies.xml 文件并移除 Unity Ads SDK 依赖项:

<!-- If using the Unity Ads Service from Unity3D, comment out this dependency to
avoid including the Unity Ads Android SDK twice. -->
<androidPackage spec="com.unity3d.ads:unity-ads:x.y.z">
  <repositories>
    <repository>https://repo.maven.apache.org/maven2/</repository>
  </repositories>
</androidPackage>

第 4 步:在 Unity Ads SDK 上实现隐私设置

根据 Google 欧盟地区用户意见征求政策,您必须确保就设备标识符和个人数据的使用向欧洲经济区 (EEA) 内的用户披露特定信息,并征得其同意。此政策反映了欧盟《电子隐私指令》和《一般数据保护条例》(GDPR) 的要求。在征求用户意见时,您必须指明中介链中可能会收集、接收或使用个人数据的每个广告联盟,并提供有关每个广告联盟使用情况的信息。Google 目前无法将用户意见征求结果自动传递给此类广告联盟。

适用于 Unity Ads 的 Google 移动广告中介插件3.3.0 版包含 UnityAds.SetConsentMetaData() 方法。以下示例代码展示了如何将用户意见征求信息传递给 Unity Ads SDK。如果您选择调用此方法,建议您在通过 Google 移动广告 SDK 请求广告之前进行调用。

using GoogleMobileAds.Api.Mediation.UnityAds;
// ...

UnityAds.SetConsentMetaData("gdpr.consent", true);

如需了解详情以及每种方法中提供的值,请参阅 Unity Ads 的隐私权许可和数据 API遵守 GDPR 指南。

美国州级隐私保护法律

美国州级隐私保护法律 规定,用户有权选择不“出售”其“个人信息”(该法律对这些术语进行了定义),“出售”方首页上醒目的“请勿出售我的个人信息”链接提供该拒绝选项。根据美国州级隐私保护法律合规性指南,您可以为 Google 广告投放启用受限的数据处理,但 Google 无法将此设置应用于中介链中的每个广告联盟。因此,您必须找出中介链中可能参与出售个人信息的每个广告联盟,并按照每个广告联盟的指导来确保遵守该政策。

适用于 Unity Ads 的 Google 移动广告中介插件3.3.0 版包含 UnityAds.SetConsentMetaData() 方法。以下示例代码展示了如何将用户意见征求信息传递给 Unity Ads SDK。如果您选择调用此方法,建议您在通过 Google 移动广告 SDK 请求广告之前进行调用。

using GoogleMobileAds.Api.Mediation.UnityAds;
// ...

UnityAds.SetConsentMetaData("privacy.consent", true);

如需了解详情以及每种方法中提供的值,请参阅 Unity Ads 的隐私权许可和数据 API遵守 CCPA 指南。

第 5 步:添加所需的代码

Android

Unity Ads Android 集成无需额外代码。

iOS

SKAdNetwork 集成

按照 Unity Ads 文档中的说明,将 SKAdNetwork 标识符添加到项目的 Info.plist 文件中。

编译错误

对于 Unity Ads 适配器 3.4.0 或更高版本,您必须按照 Unity 文档中的集成步骤操作。

第 6 步:测试实现效果

启用测试广告

请务必为AdMob 注册您的测试设备,并在 Unity Ads 界面中启用测试模式

验证测试广告

如需验证您收到的是来自Unity Ads的测试广告,请使用相应广告来源在广告检查器中启用单一广告来源测试Unity Ads (Waterfall)

错误代码

如果适配器未能接收来自 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 返回了状态为“已停用”的展示位置。
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 Unity 中介插件更新日志

版本 3.12.0

版本 3.11.1

版本 3.11.0

版本 3.10.0

版本 3.9.1

版本 3.9.0

版本 3.8.0

版本 3.7.1

版本 3.7.0

版本 3.6.1

版本 3.6.0

版本 3.5.0

版本 3.4.1

版本 3.4.0

版本 3.3.0

版本 3.2.1

版本 3.2.0

版本 3.1.0

版本 3.0.1

版本 3.0.0

版本 2.7.2

版本 2.7.1

版本 2.7.0

版本 2.6.0

版本 2.5.1

版本 2.5.0

版本 2.4.7

版本 2.4.6

版本 2.4.5

版本 2.4.4

版本 2.4.3

版本 2.4.2

版本 2.4.1

版本 2.4.0

版本 2.3.0

版本 2.2.0

版本 2.1.0

  • 支持 Unity Ads Android 适配器版本 3.1.0.0。
  • 支持 Unity Ads iOS 适配器版本 3.1.0.0。

版本 2.0.3

  • 更新了插件,以支持新的开放式 Beta 版激励广告 API。
  • 添加对横幅广告的支持。
  • 支持 Unity Ads Android 适配器版本 3.0.0.2。
  • 支持 Unity Ads iOS 适配器版本 3.0.0.3。

版本 2.0.2

  • 支持 Unity Ads Android 适配器版本 3.0.0.0。
  • 支持 Unity Ads iOS 适配器版本 3.0.0.1。

版本 2.0.1

  • 修复了在针对 iOS 进行构建时会引发问题的“类型不兼容”错误。

版本 2.0.0

  • 支持 Unity Ads Android 适配器版本 3.0.0.0。
  • 支持 Unity Ads iOS 适配器版本 3.0.0.0。

版本 1.2.0

  • 支持 Unity Ads Android 适配器版本 2.3.0.0。
  • 支持 Unity Ads iOS 适配器版本 2.3.0.0。

版本 1.1.3

  • 支持 Unity Ads Android 适配器版本 2.2.1.0。
  • 支持 Unity Ads iOS 适配器版本 2.2.1.0。

版本 1.1.2

  • 支持 Unity Ads Android SDK 2.2.0 版。
  • 支持 Unity Ads iOS SDK 2.2.0 版。
  • 添加了 UnityAds.SetGdprConsentMetaData() 方法,用于手动请求用户选择投放有针对性的广告。

版本 1.1.1

  • 支持 Unity Ads Android SDK 2.2.0 版。
  • 支持 Unity Ads iOS SDK 2.2.1 版。

版本 1.1.0

  • 支持 Unity Ads Android SDK 2.2.0 版。
  • 支持 Unity Ads iOS SDK 2.2.0 版。

版本 1.0.0

  • 第一个版本!
  • 支持 Unity Ads Android SDK 2.1.2 版。
  • 支持 Unity Ads iOS SDK 2.1.2 版。