本指南将向您介绍如何使用 Google 移动广告 SDK,利用中介功能从 Unity Ads 加载和展示广告,其中包括广告瀑布流集成。它介绍了如何将 Unity Ads 添加到广告单元的中介配置,以及如何将 Unity Ads SDK 和适配器集成到 Android 应用中。
支持的集成和广告格式
适用于 Unity Ads 的 Ad Manager 中介适配器具有以下功能:
集成 | |
---|---|
出价 | |
瀑布 | |
表现形式 | |
横幅 | |
插页式广告 | |
已奖励 | |
原生 |
要求
- Android API 级别 19 或更高级别
最新版 Google 移动广告 SDK
完成中介 入门指南
第 1 步:在 Unity Ads 界面中设置配置
注册或登录 Unity Ads。
创建项目
在 Unity Ads 信息中心内,前往 Projects,然后点击 Create Project。
填写表单,然后点击 Create Project(创建项目)以添加项目。
依次前往创收 > 开始,然后点击开始。
在项目设置模态窗口中,选择我打算使用中介,并针对中介合作伙伴选择 Google AdMob,然后点击下一步。
选择您的广告设置,然后点击下一步。
填写表单,然后点击添加项目。
记下游戏 ID。
创建广告单元
依次前往创收 > 广告单元,然后点击添加广告单元。
输入广告单元名称,然后选择平台和广告格式。
最后,点击创建,保存您的广告单元。
添加展示位置
创建项目后,依次前往创收 > 展示位置。如需创建新的展示位置,请为您的广告单元点击添加展示位置。
填写必要的详细信息,然后点击添加展示位置。
记下展示位置 ID。
检索凭据
除了游戏 ID 和展示位置 ID 之外,您还需要 Unity Ads API 密钥和组织核心 ID 来设置Ad Manager 广告单元 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 。然后,输入默认每千次展示费用值。
完成后,点击页面底部的保存。
添加到 GDPR 和美国州级法规的广告合作伙伴列表中 Unity Ads
按照 GDPR 设置 和 美国州级法规设置 中的步骤,将 Unity Ads 添加到 Ad Manager 界面中的 GDPR 和美国州级法规广告合作伙伴列表中。
第 3 步:导入 Unity Ads SDK 和适配器
Android Studio 集成(推荐)
在应用级 build.gradle.kts
文件中,添加以下实现依赖项和配置。使用最新版本的 Unity Ads SDK 和适配器:
dependencies {
implementation("com.google.android.gms:play-services-ads:23.0.0")
implementation("com.unity3d.ads:unity-ads:4.9.3")
implementation("com.google.ads.mediation:unity:4.9.3.0")
}
手动集成
从其 GitHub 代码库下载最新的 Unity Ads SDK (
unity-ads.aar
),并将其添加到您的项目。转到 Google Maven 制品库中的 Unity Ads 适配器工件。选择最新版本,下载 Unity Ads 适配器的
.aar
文件,并将其添加到您的项目。
第 4 步:在 Unity Ads SDK 上实现隐私设置
欧盟地区用户意见征求和 GDPR
根据 Google 欧盟地区用户意见征求政策,您必须确保就设备标识符和个人数据的使用向欧洲经济区 (EEA) 用户披露特定披露信息,并征得其同意。此政策反映了欧盟《电子隐私指令》和《一般数据保护条例》(GDPR) 的要求。在征求用户意见时,您必须指明中介链中可能会收集、接收或使用个人数据的各个广告联盟,并提供有关每个广告联盟使用情况的信息。Google 目前无法自动将用户的同意情况传送给此类广告联盟。
在 SDK 版本 2.0.0 中,Unity Ads 添加了一个 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 指南。
美国州级隐私保护法律
美国州级隐私保护法 规定,必须让用户有权选择不“出售”其“个人信息”(该法律对这些术语进行了定义)。“出售”方须在首页醒目位置提供“请勿出售我的个人信息”链接,以供用户选择。美国州级隐私保护法律合规性指南让您可以为 Google 广告投放启用受限的数据处理,但 Google 无法将此设置应用于中介链中的每个广告联盟。因此,您必须确定中介链中可能参与个人信息出售的每个广告网络,并遵循每个广告网络的指导以确保合规性。
在 SDK 版本 2.0.0 中,Unity Ads 添加了一个 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 。
第 5 步:添加所需的代码
Unity Ads 集成无需额外的代码。
第 6 步:测试实现效果
启用测试广告
请务必为Ad Manager 注册您的测试设备,并在 Unity Ads 界面中启用测试模式。
验证测试广告
如需验证您收到的是来自Unity Ads的测试广告,请使用相应广告来源在广告检查器中启用单一广告来源测试。 Unity Ads (Waterfall)
错误代码
如果适配器无法从 Unity Ads 接收广告,发布商可以通过以下类下的
ResponseInfo.getAdapterResponse()
检查广告响应中的底层错误:
com.google.ads.mediation.unity.UnityAdapter
com.google.ads.mediation.unity.UnityMediationAdapter
以下是广告加载失败时 UnityAds 适配器抛出的代码及相应消息:
错误代码 | 原因 |
---|---|
0-10 | UnityAds SDK 返回错误。如需了解详情,请参阅代码。 |
101 | 界面中配置的 Ad Manager 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 横幅广告相关的错误。如需了解详情,请参阅代码。 |
0-9 | UnityAds SDK 返回错误。如需了解详情,请参阅 Unity 的文档。 |
101 | 界面中配置的 Ad Manager UnityAds 服务器参数缺失/无效。 |
102 | UnityAds 不支持此设备。 |
103 | UnityAds 已完成展示,错误状态为 kUnityAdsFinishStateError。 |
104 | Unity 广告对象在调用其初始化程序后为 nil。 |
105 | 由于广告未就绪,未能展示 Unity 广告。 |
106 | UnityAds 调用了展示位置已更改回调,展示位置状态为 kUnityAdsPlacementStateNoFill。 |
107 | UnityAds 调用了展示位置已更改回调,展示位置状态为 kUnityAdsPlacementStateDisabled。 |
108 | 此展示位置已加载过广告。UnityAds SDK 不支持为同一展示位置加载多个广告。 |
Unity Ads Android 中介适配器更新日志
版本 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
- 将
compileSdkVersion
和targetSdkVersion
更新为了 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 广告服务,以避免冲突的依赖项问题。
- 发布商可以选择通过向其应用级
build.gradle
文件添加com.google.ads.mediation:unity-adapter-only:x.y.z.p
依赖项,来使用此库。
- 发布商可以选择通过向其应用级
构建和测试方式:
- 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”的 bug。
版本 3.0.0.2
- 更新了适配器,以支持新的公开 Beta 版 Rewarded 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 版本].[adapter patch version]。
- 将所需的最低 Unity Ads SDK 版本更新为 v2.0.2。
- 将 Google 移动广告 SDK 要求的最低版本更新为 v9.0.0。
- 应用不再需要调用 UnityAds.changeActivity(this)。
版本 1.0.0
- 初始版本。支持基于奖励的视频广告和插页式广告。