将 Unity 广告与中介集成

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

本指南介绍了如何使用 Google 移动广告 SDK 通过中介功能加载和展示来自 Unity Ads 的广告。其中介绍了如何将 Unity Ads 添加到广告单元的中介配置、如何设置广告来源优化、,以及如何将 Unity Ads SDK 和适配器集成到Android 应用中。

支持的集成和广告格式

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

集成
出价
瀑布
格式
横幅
插页式广告
已奖励
原生

要求

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

第 1 步:设置 Unity 广告

注册或登录 Unity Ads。

Unity 广告信息中心内,转到项目标签页,然后点击新建项目按钮。

填写表单,然后点击页面底部的添加项目,将您的项目添加到 Unity 信息中心。

创建项目后,请转到项目的创收和展示位置标签页,并记下游戏 ID

若要创建新展示位置,请点击添加展示位置按钮。

有关创建广告展示位置的更多说明,请选择与您的首选广告格式对应的标签页。

输入所需的展示位置 ID,选择横幅作为广告格式,然后点击创建展示位置

插页式广告

输入所需的展示位置 ID,选择插页式视频广告作为广告格式,然后点击创建展示位置

已奖励

输入所需的展示位置 ID,选择激励视频广告作为广告格式,然后点击创建展示位置

除了 Game IDPlacement ID 之外,您还需要使用 Unity Ads API 密钥组织核心 ID 来设置AdMob 广告单元 ID。

转到 Unity 广告信息中心广告数据导出和 API 访问权限标签页,然后记下 创收统计信息 API 访问密钥

然后,转到 Unity 广告信息中心设置标签页,并记下组织核心 ID

第 2 步:为广告单元 AdMob 配置中介设置

您需要将 Unity 广告添加到广告单元的中介配置中。首先,登录您的 AdMob 帐号

接下来,转到中介标签页。如果您已有要修改的中介组,请点击该中介组的名称进行修改,然后跳至将 Unity 广告添加为广告来源

要创建新的中介组,请选择创建中介组

AdMob Beta 中介标签页

输入广告格式和平台,然后点击继续

为中介组命名,然后选择要定位到的地理位置。接下来,将中介组状态设置为已启用。然后点击添加广告单元,这会打开广告单元选择叠加层。

新中介组 2

将此中介组与现有 AdMob 广告单元相关联。然后点击完成

现在,您应该会看到填充了所选广告单元的广告单元卡片。

中介组广告单元

添加 Unity 广告作为广告来源

广告来源卡片中,选择添加广告联盟。然后选择 Unity 广告

启用优化开关。输入在上一部分中获取的 API 密钥组织核心 ID,以便为 Unity 广告设置广告来源优化。然后输入 Unity 广告的有效每千次展示费用值,并点击继续

接下来,输入在上一部分获得的游戏 ID展示位置 ID。然后点击完成

最后,点击保存

激励广告

在激励广告单元的设置中,提供奖励金额和奖励类型的值。然后,为了确保向用户提供相同的奖励,无论投放哪个广告联盟,都请选中应用于中介组中的所有广告联盟复选框。

如果您不应用此设置,Unity 适配器默认采用 ""(空字符串)类型的奖励,其值为 1。Unity Ads SDK 不会为其激励广告提供特定的奖励值。

如需详细了解如何为 AdMob 广告单元设置奖励值,请参阅创建广告单元

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

在应用级 build.gradle 文件中添加以下 Gradle 依赖项以及最新版本的 Unity Ads SDK 和适配器:

repositories {
    google()
    mavenCentral()
}

// ...
dependencies {
    implementation 'com.google.android.gms:play-services-ads:21.2.0'
    implementation 'com.unity3d.ads:unity-ads:4.4.0'
    implementation 'com.google.ads.mediation:unity:4.4.0.0'
}
// ...

手动集成

  1. 从其 GitHub 代码库下载最新的 Unity Ads SDK (unity-ads.aar),并将其添加到您的项目。

  2. 导航到 Google 的 Maven 代码库中的 Unity Ads 适配器工件。选择最新版本,下载 Unity Ads 适配器的 .aar 文件,并将其添加到您的项目。

第 4 步:需要额外的代码

Unity 广告集成不需要其他代码。

第 5 步:测试您的实现

您可以通过两种方式从 Unity 广告信息中心启用测试广告:

如果要为所有设备启用测试广告,请转到项目的 Settings > Project Settings 标签页。在测试模式部分下,修改未覆盖的客户端测试模式部分,选中覆盖客户端测试模式复选框,选择强制启用测试模式,然后点击保存

如果您只想为特定设备启用测试广告,请导航至广告数据导出 &gt 测试设备标签页。在 Test Devices 部分下,点击 Add New Device 按钮,并填写生成的表单。

可选步骤

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

在 SDK 版本 2.0.0 中,Unity 广告添加了支持隐私设置的 API。以下示例代码展示了如何将此用户意见征求信息传递给 Unity Ads 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'Privacy Consent and data API遵守 GDPR 指南。

将 Unity Ads 添加到 GDPR 广告合作伙伴列表

按照GDPR 设置中的步骤将 Unity 广告添加到AdMob UI 中的 GDPR 广告合作伙伴列表中。

CCPA

《加州消费者隐私法案》(CCPA) 要求赋予加利福尼亚州居民选择不通过醒目的“出售”链接提供“不出售个人信息”链接所表示的“出售”个人信息(根据相关法律所定义条款)。CCPA 准备工作指南提供了为 Google 广告投放启用受限的数据处理的功能,但 Google 无法为中介链中的每个广告联盟应用此设置。因此,您必须在中介链中标识可能参与个人信息销售的各个广告联盟,并遵循各个广告联盟的指导意见,以确保符合《加州消费者隐私法案》(CCPA) 的规定。

在 SDK 版本 2.0.0 中,Unity 广告添加了支持隐私设置的 API。以下示例代码展示了如何将此用户意见征求信息传递给 Unity Ads 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'Privacy Consent and Data API遵守 CCPA 指南,了解更多详情和每种方法可以提供的值。

错误代码

如果适配器无法从 Unity Ads 接收广告,发布商可以使用以下类下的ResponseInfo.getAdapterResponse() 检查广告响应中的潜在错误:

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

当广告加载失败时,UnityAds 适配器抛出的代码和附带消息如下:

错误代码 原因
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 横幅广告特定错误。如需了解详情,请参阅代码
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 Android 中介适配器变更日志

版本 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 进行中介时可以选择使用 Unity Ads 服务,以避免冲突的依赖项问题。
    • 发布商可以选择通过在其应用级 build.gradle 文件中添加 com.google.ads.mediation:unity-adapter-only:x.y.z.p 依赖项来使用此 API。

构建和测试所用代码:

  • 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

  • 修复了在调用 UnityAds.initialize() 之前调用 loadAd() 时发生 Null 指针异常崩溃的问题。
  • 将 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”的错误。

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

  • 修复了导致插页式视频广告在首次加载时无法加载的 bug。

版本 2.0.2.0

  • 将版本命名系统更改为了 [Unity Ads SDK 版本。适配器补丁程序版本]。
  • 将所需的最低 Unity Ads SDK 更新至 v2.0.2。
  • 将 Google 移动广告 SDK 所需的最低版本更新为 v9.0.0。
  • 应用不再需要调用 UnityAds.changeActivity(this)。

版本 1.0.0

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