将 Unity 广告与中介集成

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

支持的集成和广告格式

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

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

要求

  • Android API 级别 21 或更高级别
  • 最新版 Google 移动广告 SDK

  • 完成中介流程 入门指南

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

注册或登录 Unity Ads。

创建项目

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

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

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

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

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

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

记下游戏 ID

创建广告单元

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

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

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

添加展示位置

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

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

记下展示位置 ID

找到 Unity Ads Reporting API 密钥

出价

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

瀑布

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

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

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

开启测试模式

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

您可以通过以下方式为您的应用强制启用测试模式: Google Play 商店 ,勾选替换客户端测试模式,然后选择为所有设备强制启用测试模式(即使用测试广告)

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

填写表单并点击保存

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

为广告单元配置中介设置

登录您的 Ad Manager 帐号

依次转到投放 > 收益组,然后点击新建收益组按钮。

为您的收益组输入一个独一无二的名称,将状态设为有效,选择广告格式,然后将广告资源类型设为移动应用。在定位 > 广告资源部分下,选择广告资源移动应用(您要向其中添加中介)下方的广告单元。

接下来,点击添加收益合作伙伴按钮。

如果您已有Unity Ads的收益合作伙伴,可以选择它。否则,请选择创建新的收益合作伙伴

选择 Unity Ads 作为广告联盟,输入一个具有唯一性的名称并启用中介

开启自动收集数据,然后输入在上一部分中获取的API Key and Organization core ID

选择收益合作伙伴后,选择移动 SDK 中介作为集成类型,选择 Android 作为平台,选择有效作为状态。输入在上一部分获得的Game ID and Placement ID 。然后,输入默认每千次展示费用值。

完成后,点击页面底部的保存

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

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

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

在应用级 build.gradle.kts 文件中,添加以下实现 依赖项和配置使用最新版 Unity Ads SDK 和适配器:

dependencies {
    implementation("com.google.android.gms:play-services-ads:23.3.0")
    implementation("com.unity3d.ads:unity-ads:4.12.1")
    implementation("com.google.ads.mediation:unity:4.12.2.0")
}

手动集成

  1. unity-ads.aar GitHub 代码库 并将其添加到您的项目。

  2. 前往 Unity Ads 适配器工件 。选择最新版本,下载 Unity 广告适配器的 .aar 文件,并将其添加到您的项目。

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

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

在 SDK 2.0.0 版中,Unity Ads 添加了一个 API 来支持隐私设置。通过 以下示例代码展示了如何将此意见征求信息传递给 Unity 广告 SDK。如果您选择将意见征求信息传递给 Unity Ads SDK 因此建议您在请求广告前先调用此代码 Google 移动广告 SDK

Java

import com.unity3d.ads.metadata.MetaData;
// ...

MetaData gdprMetaData = new MetaData(this);
gdprMetaData.set("gdpr.consent", true);
gdprMetaData.commit();

Kotlin

import com.unity3d.ads.metadata.MetaData
// ...

val gdprMetaData = MetaData(this)
gdprMetaData["gdpr.consent"] = true
gdprMetaData.commit()

请参阅 Unity Ads 隐私权同意书和数据 API遵守 GDPR 以及每种方法中提供的值。

美国州级隐私保护法律

美国州级隐私保护法律 要求向用户提供 以拒绝“销售”交易用户自己的“个人信息”(因为法律规定 这些条款),同时在其页面上以醒目方式显示“Do Not Sell My Personal”(不出售我的个人数据) 信息”请点击“销售”链接主页。通过 美国州/省/自治区/直辖市隐私权 法律合规指南提供了一项新功能, 受限的数据处理 用于 Google 广告投放,但 Google 无法将此设置应用于每个广告, 您的中介链中的广告联盟。因此,您必须找出每个广告联盟 可能参与销售个人数据或 并遵循每个广告联盟提供的指导, 合规性。

在 SDK 2.0.0 版中,Unity Ads 添加了一个 API 来支持隐私设置。通过 以下示例代码展示了如何将此意见征求信息传递给 Unity 广告 SDK。如果您选择将意见征求信息传递给 Unity Ads SDK 因此建议您在请求广告前先调用此代码 Google 移动广告 SDK

Java

import com.unity3d.ads.metadata.MetaData;
// ...

MetaData ccpaMetaData = new MetaData(this);
ccpaMetaData.set("privacy.consent", true);
ccpaMetaData.commit();

Kotlin

import com.unity3d.ads.metadata.MetaData
// ...

val ccpaMetaData = MetaData(this)
ccpaMetaData["privacy.consent"] = true
ccpaMetaData.commit()

请参阅 Unity Ads 隐私权同意书和数据 API遵守 CCPA 以及每种方法中提供的值。

第 5 步:添加所需的代码

Unity Ads 集成无需其他代码。

第 6 步:测试实现效果

启用测试广告

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

验证测试广告

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

错误代码

如果适配器未能接收来自 Unity Ads 的广告 发布商可以使用 ResponseInfo.getAdapterResponses() 分为以下类:

com.google.ads.mediation.unity.UnityAdapter
com.google.ads.mediation.unity.UnityMediationAdapter

以下是 UnityAds 适配器在以下情况下抛出的代码及其附带消息: 广告加载失败:

错误代码 原因
0-10 UnityAds SDK 返回了错误。请参阅代码 了解详情。
101 界面中配置的 UnityAds 服务器参数缺失/无效。 Ad Manager
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 横幅广告相关的错误。请参阅代码 了解详情。

Unity Ads Android 中介适配器更新日志

4.12.2.0 版

  • 已验证与 Unity Ads SDK 4.12.2 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 23.2.0 版。
  • Unity Ads SDK 4.12.2 版。

4.12.1.0 版

  • 已验证与 Unity Ads SDK 4.12.1 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 23.2.0 版。
  • Unity Ads SDK 4.12.1 版。

4.12.0.0 版

  • 已验证与 Unity Ads SDK 4.12.0 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 23.1.0 版。
  • Unity Ads SDK 4.12.0 版。

4.11.3.0 版

  • 新增了对横幅广告、插页式广告和激励广告格式的出价支持。
  • 已验证与 Unity Ads SDK 4.11.3 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 23.1.0 版。
  • Unity Ads SDK 4.11.3 版。

4.11.2.0 版

  • 已验证与 Unity Ads SDK 4.11.2 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 版本 23.0.0。
  • Unity Ads SDK 4.11.2 版。

4.10.0.0 版

  • 将所需的最低 Google 移动广告 SDK 版本更新为 23.0.0。
  • 已验证与 Unity Ads SDK 4.10.0 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 版本 23.0.0。
  • Unity Ads SDK 4.10.0 版。

4.9.3.0 版

  • 已验证与 Unity Ads SDK 4.9.3 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 22.6.0 版。
  • Unity Ads SDK 4.9.3 版。

4.9.2.0 版

  • 已验证与 Unity Ads SDK 4.9.2 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 22.3.0 版。
  • Unity Ads SDK 4.9.2 版。

4.9.1.0 版

  • 将所需的最低 Google 移动广告 SDK 版本更新为 22.3.0。
  • 已验证与 Unity Ads SDK 4.9.1 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 22.3.0 版。
  • Unity Ads SDK 4.9.1 版。

4.8.0.0 版

  • 在 Unity Ads SDK 调用其新的 onBannerShown() 时报告广告展示次数 回调方法。
  • 已验证与 Unity Ads SDK 4.8.0 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 22.2.0 版。
  • Unity Ads SDK 4.8.0 版。

4.7.1.0 版

  • 已验证与 Unity Ads SDK 4.7.1 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 22.1.0 版。
  • Unity Ads SDK 4.7.1 版。

4.7.0.0 版

  • 已验证与 Unity Ads SDK 4.7.0 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 22.0.0 版。
  • Unity Ads SDK 4.7.0 版。

4.6.1.1 版

  • 更新了适配器,以使用新的 VersionInfo 类。
  • 将所需的最低 Google 移动广告 SDK 版本更新为 22.0.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 22.0.0 版。
  • Unity Ads SDK 4.6.1 版。

4.6.1.0 版

  • 已验证与 Unity Ads SDK 4.6.1 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 版本 21.5.0
  • Unity Ads SDK 4.6.1 版。

4.6.0.0 版

  • 新增了对将 COPPA 信息转发到 Unity Ads SDK 的支持。
  • 已验证与 Unity Ads SDK 4.6.0 的兼容性。
  • 将所需的最低 Google 移动广告 SDK 版本更新为 21.5.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 版本 21.5.0
  • Unity Ads SDK 4.6.0 版。

4.5.0.0 版

  • 已验证与 Unity Ads SDK 4.5.0 的兼容性。
  • 将所需的最低 Google 移动广告 SDK 版本更新为 21.4.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 版本 21.4.0
  • Unity Ads SDK 4.5.0 版。

4.4.1.0 版

  • 已验证与 Unity Ads SDK 4.4.1 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 版本 21.2.0
  • Unity Ads SDK 4.4.1 版。

4.4.0.0 版

  • 已验证与 Unity Ads SDK 4.4.0 的兼容性。
  • 将所需的最低 Google 移动广告 SDK 版本更新为 21.2.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 版本 21.2.0
  • Unity Ads SDK 4.4.0 版。

4.3.0.0 版

  • 已验证与 Unity Ads SDK 4.3.0 的兼容性。
  • 现在,当插页式广告和激励广告开始播放时,系统会转发 onAdOpened() 回调。

构建和测试时所用平台:

  • Google 移动广告 SDK 版本 21.1.0
  • Unity Ads SDK 4.3.0 版。

4.2.1.1 版

  • compileSdkVersiontargetSdkVersion 更新到了 API 31。
  • 将所需的最低 Google 移动广告 SDK 版本更新为 21.0.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 21.0.0 版。
  • Unity Ads SDK 4.2.1 版。

4.2.1.0 版

  • 已验证与 Unity Ads SDK 4.2.1 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 20.6.0 版。
  • Unity Ads SDK 4.2.1 版。

4.1.0.0 版

  • 已验证与 Unity Ads SDK 4.1.0 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 20.6.0 版。
  • Unity Ads SDK 4.1.0 版。

4.0.1.0 版

  • 已验证与 Unity Ads SDK 4.0.1 的兼容性。
  • 将所需的最低 Google 移动广告 SDK 版本更新为 20.6.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 20.6.0 版。
  • Unity Ads SDK 4.0.1 版。

4.0.0.0 版

  • 已验证与 Unity Ads SDK 4.0.0 的兼容性。
  • 将所需的最低 Google 移动广告 SDK 版本更新为 20.5.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 20.5.0 版。
  • Unity Ads SDK 4.0.0 版。

版本 3.7.5.0

  • 已验证与 Unity Ads SDK 3.7.5 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 20.2.0 版。
  • Unity Ads SDK 3.7.5 版。

版本 3.7.4.0

  • 已验证与 Unity Ads SDK 3.7.4 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 20.2.0 版。
  • Unity Ads SDK 3.7.4 版。

版本 3.7.2.0

  • 已验证与 Unity Ads SDK 3.7.2 的兼容性。
  • 将所需的最低 Google 移动广告 SDK 版本更新为 20.2.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 20.2.0 版。
  • Unity Ads SDK 3.7.2 版。

版本 3.7.1.0

  • 已验证与 Unity Ads SDK 3.7.1 的兼容性。
  • 将所需的最低 Google 移动广告 SDK 版本更新为 20.1.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 20.1.0 版。
  • Unity Ads SDK 3.7.1 版。

版本 3.6.2.0

  • 已验证与 Unity Ads SDK 3.6.2 的兼容性。
  • 修复了激励广告无法转发点击回调的问题。
  • UnityAds SDK 已从捆绑的适配器 build 中移除。 发布商现在必须手动将 UnityAds SDK 添加为额外的依赖项。
  • 将所需的最低 Google 移动广告 SDK 版本更新为 19.8.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 19.8.0 版。
  • Unity Ads SDK 3.6.2 版。

版本 3.6.0.0

  • 已验证与 Unity Ads SDK 3.6.0 的兼容性。
  • 将要求的最低 Google 移动广告 SDK 版本更新为 19.6.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 19.6.0 版。
  • Unity Ads SDK 3.6.0 版。

版本 3.5.1.1

  • 修复了尝试请求多个插页式广告和激励广告的问题。

构建和测试时所用平台:

  • Google 移动广告 SDK 19.5.0 版。
  • Unity Ads SDK 3.5.1 版。

版本 3.5.1.0

  • 已验证与 Unity Ads SDK 3.5.1 的兼容性。
  • 修复了导致智能横幅广告请求失败的问题。

构建和测试时所用平台:

  • Google 移动广告 SDK 19.5.0 版。
  • Unity Ads SDK 3.5.1 版。

版本 3.5.0.0

  • 已验证与 Unity Ads SDK 3.5.0 的兼容性。
  • 添加了自适应横幅广告支持。
  • 将要求的最低 Google 移动广告 SDK 版本更新为 19.5.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 19.5.0 版。
  • Unity Ads SDK 3.5.0 版。

版本 3.4.8.0

  • 修复了横幅广告销毁时发生的 NullPointerException 错误。
  • 将要求的最低 Google 移动广告 SDK 版本更新为 19.3.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 19.3.0 版。
  • Unity Ads SDK 3.4.8 版。

版本 3.4.6.1

  • 创建了一个不包含捆绑的 Unity Ads SDK 的适配器 build。 这样,发布商在进行中介时可以选择使用 Unity Ads 服务, Unity 以避免依赖项冲突问题。
    • 发布商可以添加 com.google.ads.mediation:unity-adapter-only:x.y.z.p 依赖项 应用级 build.gradle 文件。

构建和测试时所用平台:

  • Google 移动广告 SDK 19.1.0 版。
  • Unity Ads SDK 3.4.6 版。

版本 3.4.6.0

  • 已验证与 Unity Ads SDK 3.4.6 的兼容性。
  • 现在,当点击横幅广告时,适配器会转发 onAdOpened() 回调。

构建和测试时所用平台:

  • Google 移动广告 SDK 19.1.0 版。
  • Unity Ads SDK 3.4.6 版。

版本 3.4.2.3

  • 添加了描述性错误代码和适配器加载/显示失败的原因。
  • 将要求的最低 Google 移动广告 SDK 版本更新为 19.1.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 19.1.0 版。
  • Unity Ads SDK 3.4.2 版。

版本 3.4.2.2

  • 修复了 Unity Ads 返回错误时发生的 ConcurrentModificationException 崩溃问题。

构建和测试时所用平台:

  • Google 移动广告 SDK 19.0.1 版。
  • Unity Ads SDK 3.4.2 版。

版本 3.4.2.1

  • 改进了 Unity 错误的转发功能,以便更早地识别初始化和广告加载故障,并减少超时。
  • 将所需的最低 Google 移动广告 SDK 版本更新为 19.0.1。

构建和测试时所用平台:

  • Google 移动广告 SDK 19.0.1 版。
  • Unity Ads SDK 3.4.2 版。

版本 3.4.2.0

  • 已验证与 Unity Ads SDK 3.4.2 的兼容性。
  • 将所需的最低 Google 移动广告 SDK 版本更新为 18.3.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 18.3.0 版。
  • Unity Ads SDK 3.4.2 版。

版本 3.4.0.0

  • 已验证与 Unity Ads SDK 3.4.0 的兼容性。
  • 将所需的最低 Google 移动广告 SDK 版本更新为 18.3.0。

构建和测试时所用平台:

  • Google 移动广告 SDK 18.3.0 版。
  • Unity Ads SDK 3.4.0 版。

版本 3.3.0.0

  • 已验证与 Unity Ads SDK 3.3.0 的兼容性。

构建和测试时所用平台:

  • Google 移动广告 SDK 18.2.0 版。
  • Unity Ads SDK 3.3.0 版。

版本 3.2.0.1

  • 修复了调用 loadAd() 时发生的 null 指针异常崩溃问题 然后再调用 UnityAds.initialize()
  • 将所需的最低 Google 移动广告 SDK 版本更新为 18.2.0。

版本 3.2.0.0

  • 修复了导致横幅广告请求失败的问题。
  • 已验证与 Unity Ads SDK 3.2.0 的兼容性。
  • 将适配器迁移到了 AndroidX。
  • 将要求的最低 Google 移动广告 SDK 版本更新为 18.1.1。

版本 3.1.0.0

  • 新增了对灵活横幅广告尺寸的支持。
  • 如果请求的尺寸不兼容,适配器就会使广告请求失败 支持任何 Unity Ads 横幅广告尺寸
  • 已验证与 Unity Ads SDK 3.1.0 的兼容性。

版本 3.0.1.0

  • 已验证与 Unity Ads SDK 3.0.1 的兼容性。
  • 修复了导致“NPE”的 bug。

版本 3.0.0.2

  • 更新了适配器,以支持新的开放式 Beta 版激励广告 API。
  • 将所需的最低 Google 移动广告 SDK 版本更新为 17.2.0。

版本 3.0.0.1

  • 添加了对 Unity Ads 横幅广告的支持。

版本 3.0.0.0

  • 已验证与 Unity Ads SDK 3.0.0 的兼容性。

版本 2.3.0.0

  • 已验证与 Unity Ads SDK 2.3.0 的兼容性。

版本 2.2.1.1

  • 更新了适配器,以调用 onRewardedVideoComplete() 广告事件。

版本 2.2.1.0

  • 已验证与 Unity Ads SDK 2.2.1 的兼容性。

版本 2.2.0.0

  • 已验证与 Unity Ads SDK 2.2.0 的兼容性。

版本 2.1.2.0

  • 已验证与 Unity Ads SDK 2.1.2 的兼容性。

版本 2.1.1.0

  • 已验证与 Unity Ads SDK 2.1.1 的兼容性。

版本 2.1.0.0

  • 更新了适配器,使其与 Unity Ads SDK 2.1.0 兼容。

版本 2.0.8.0

  • 已验证与 Unity Ads SDK 2.0.8 的兼容性。

版本 2.0.7.0

  • 使用 Unity Ads 的点击报告(AdMob 和 Unity Ads 点击统计信息 匹配)。
  • 添加了 onAdLeftApplication 回调支持。

版本 2.0.6.0

  • 已验证与 Unity Ads SDK 2.0.6 的兼容性。

版本 2.0.5.0

  • 现在,可以通过添加以下代码,将适配器添加为编译依赖项 添加到 build.gradle 文件的依赖项标记中: compile 'com.google.ads.mediation:unity:2.0.5.0'
  • 改为以 aar(而非 jar 文件)的形式分发适配器 (有关其他说明,请参见自述文件)。

版本 2.0.4.0

  • 修复了导致激励视频广告在加载 插页式广告最先加载。

版本 2.0.2.0

  • 已将版本命名系统更改为 [Unity Ads SDK version].[adapter patch version]。
  • 将要求的最低 Unity Ads SDK 版本更新为 v2.0.2。
  • 将要求的最低 Google 移动广告 SDK 更新到了 v9.0.0。
  • 应用不再需要调用 UnityAds.changeActivity(this)。

版本 1.0.0

  • 初始版本。支持基于奖励的视频广告和插页式广告。