将 Unity Ads 与中介集成

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

支持的集成和广告格式

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

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

1 出价集成功能目前处于公开 Beta 版阶段。

要求

  • 最新的 Google 移动广告 SDK
  • Unity 4 或更高版本
  • [对于出价]:如需在出价中集成所有受支持的广告格式,请使用 Google 移动广告中介插件(适用于 Unity Ads)3.11.1 或更高版本(建议使用最新版本
  • 如需在 Android 上部署,请执行以下操作
    • Android API 级别 23 或更高级别
  • 如需在 iOS 上部署,请执行以下操作
    • iOS 部署目标版本为 12.0 或更高版本
  • 已配置 Google 移动广告 SDK 的正常运行的 Unity 项目。如需了解详情,请参阅使用入门
  • 完成中介入门指南

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

注册登录 Unity Ads。

创建项目

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

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

前往 Unity Ads 创收,然后点击开始

New Project 模态框中,选择 I will use MediationGoogle 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 创收 > 测试

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

Android

iOS

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

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

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

为广告单元配置中介设置

Android

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

iOS

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

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

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

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

OpenUPM-CLI

如果您已安装 OpenUPM-CLI,则可以运行以下命令,将 Google 移动广告 Unity Ads 中介插件安装到您的项目中:

openupm add com.google.ads.mobile.mediation.unityads

OpenUPM

在 Unity 项目编辑器中,依次选择 Edit > Project Settings > Package Manager,打开 Unity Package Manager Settings

Scoped Registries 标签页下,添加 OpenUPM 作为范围注册表,并提供以下详细信息:

  • 名称:OpenUPM
  • URL:https://package.openupm.com
  • 范围:com.google

OpenUPM 详细信息

然后,依次前往 Window > Package Manager 以打开 Unity Package Manager,并从下拉菜单中选择 My Registries

Unity 注册表

选择 Google Mobile Ads UnityAds 中介软件包,然后点击 Install

从 OpenUPM 安装

Unity 软件包

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

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

从 Unity 导入

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

强制解决

第 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 指南。

美国州级隐私保护法律

美国各州隐私权法律要求向用户提供选择拒绝“出售”其“个人信息”(该法律中对这些术语做出了定义)的权利,“出售”方须在首页醒目位置提供“Do Not Sell My Personal Information”(不出售我的个人信息)链接,以供这些用户选择。美国州级隐私保护法律合规性指南可让您为 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(出价)和 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 广告。
107 UnityAds 使用展示位置状态 kUnityAdsPlacementStateDisabled 调用了展示位置更改回调。
108 此展示位置已加载广告。UnityAds SDK 不支持为同一展示位置加载多个广告。
109 UnityAds 返回的横幅广告与请求的尺寸不符。
110 UnityAds 返回了初始化错误。
111 广告格式不受支持。

Unity Ads Unity 中介插件变更日志

版本 3.15.1

版本 3.15.0

版本 3.14.4

版本 3.14.3

版本 3.14.2

版本 3.14.1

版本 3.14.0

版本 3.13.0

版本 3.12.6

版本 3.12.5

版本 3.12.4

版本 3.12.3

版本 3.12.2

版本 3.12.1

版本 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 版 Rewarded 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。