将 Unity Ads 与中介集成

本指南介绍了如何使用 GMA Next-Gen SDK 通过中介加载和展示来自 Unity Ads 的展示广告,其中涵盖了出价集成和广告瀑布流集成。本指南还介绍了如何将 Unity Ads 添加到广告单元的中介配置中,以及如何将 Unity Ads SDK 和适配器集成到 Android 应用中。

支持的集成和广告格式

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

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

要求

  • Android API 级别 24 或更高级别
  • [对于出价]:如需在出价中集成所有受支持的广告格式,请使用 Unity 适配器 4.16.0.1 或更高版本(建议使用最新版本
  • GMA Next-Gen SDK”的最新视频

  • 完成中介入门指南阅读。

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

注册登录 Unity Ads。

创建项目

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

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

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

New Project 模态框中,选择 I will use MediationGoogle Admob 作为中介合作伙伴,然后点击 Next

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

选择展示位置设置,然后点击下一步

出价

瀑布

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

记下游戏 ID

创建广告单元和展示位置

依次前往 Unity Ads Monetization(Unity Ads 创收)> Placements(展示位置),然后选择您的项目并点击 Add ad unit(添加广告单元)。

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

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

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

设置选择瀑布流。在展示位置下,输入展示位置名称地理位置标记目标

记下展示位置 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 文件。 如果您尚未完成此项操作,请为 Ad Manager 创建 app-ads.txt 文件

如需为 Unity Ads 实现 app-ads.txt,请参阅首次设置 app-ads.txt

启用测试模式

您可以在 Unity Ads 信息中心内启用测试模式。依次前往 Unity Ads 创收 > 测试

您可以强制为应用启用测试模式,方法是点击 Google Play 商店旁边的修改按钮,启用替换客户端测试模式,然后选择强制为所有设备启用测试模式(即使用测试广告)

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

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

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

登录您的 Ad Manager 账号

在公司中添加 Unity Ads

出价

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

瀑布

依次前往管理 > 公司,然后点击所有公司标签页中的新公司按钮。选择广告资源网

选择 Unity Ads 作为广告联盟,输入唯一的名称,然后启用中介。 开启自动数据收集,然后输入在上一部分中获得的 API 密钥组织核心 ID

您无需输入用户名密码。完成后,点击保存

启用安全信号共享

出价

依次前往管理 > 全局设置。前往 Ad Exchange 账号设置标签页,然后查看并开启安全信号共享。点击保存

瀑布

对于瀑布流集成,则无需执行此步骤。

在出价请求中共享安全信号

出价

依次前往广告资源 > 安全信号。在安全信号下方,搜索 Unity Ads,然后将启用应用集成切换到开启状态。

点击保存

瀑布

对于瀑布流集成,则无需执行此步骤。

允许出于 SDK 出价目的共享安全信号

出价

依次前往投放 > 需求来源渠道设置。在默认设置标签页中,将允许共享安全信号切换到开启状态,以便进行 SDK 出价

点击保存

瀑布

对于瀑布流集成,则无需执行此步骤。

配置 Unity Ads 出价

出价

依次前往投放 > 出价方,然后点击前往“SDK 出价”页面

点击新增出价方

选择 Unity Ads 作为出价方。

点击继续即可为此出价方启用 SDK 出价。

点击完成

瀑布

对于瀑布流集成,则无需执行此步骤。

配置广告单元映射

出价

依次前往投放 > 出价方,然后点击前往“SDK 出价”页面

为 Unity Ads 选择公司。

前往广告单元映射标签页,然后点击新建广告单元映射

选择特定广告单元。选择广告单元和格式,选择移动应用作为广告资源类型,并选择您的移动应用。然后,输入在上一部分获得的游戏 ID展示位置 ID。最后,点击保存

瀑布

依次前往投放 > 收益组,然后点击新建收益组按钮。选择您的移动应用

向下滚动,然后点击添加收益合作伙伴

选择您在上一部分中为 Unity Ads 创建的公司。 选择移动 SDK 中介作为集成类型Android 作为平台有效作为状态

输入在上一部分中获得的游戏 ID展示位置 ID,以及默认每千次展示费用值。点击保存

注意:“自动收集数据”功能需要几天时间来收集数据,然后才能准确计算中介广告联盟的动态 CPM 值。可以计算出 eCPM 后,系统会自动代表您更新此值。

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

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

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

在应用级 Gradle 文件中,添加以下实现依赖项和配置:

Kotlin

dependencies {
    implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.24.0-beta02")
    implementation("com.unity3d.ads:unity-ads:4.16.5")
    implementation("com.google.ads.mediation:unity:4.16.6.0")
}

configurations.configureEach {
    exclude(group = "com.google.android.gms", module = "play-services-ads")
    exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
}

Groovy

dependencies {
    implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.24.0-beta02'
    implementation 'com.unity3d.ads:unity-ads:4.16.5'
    implementation 'com.google.ads.mediation:unity:4.16.6.0'
}

configurations.configureEach {
    exclude group: 'com.google.android.gms', module: 'play-services-ads'
    exclude group: 'com.google.android.gms', module: 'play-services-ads-lite'
}

手动集成

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

  2. 前往 Google 的 Maven 制品库,找到 Unity Ads 适配器制品。选择最新版本,下载 Unity Ads 适配器的 .aar 文件,然后将其添加到您的项目中。

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

为了遵守 Google 的《欧盟地区用户意见征求政策》,您必须向欧洲经济区 (EEA)、英国和瑞士的用户披露某些信息,并征得他们同意才能使用 Cookie 或其他本地存储(如果法律有此要求),以及收集、分享和使用个人数据以实现广告个性化。此政策反映了欧盟《电子隐私指令》和《一般数据保护条例》(GDPR) 的要求。您要负责验证用户意见是否已传播到中介链中的每个广告来源。Google 无法自动将用户意见传递给此类广告资源网。

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

Java

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

Kotlin

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

如需了解详情以及每种方法中可提供的值,请参阅 Unity Ads 的 GDPR 合规性

美国州级隐私保护法律

美国各州隐私保护法律要求向用户提供选择拒绝“出售”其“个人信息”(该法律中对这些术语做出了定义)的权利,“出售”方须在首页醒目位置提供“Do Not Sell My Personal Information”(不出售我的个人信息)链接,以供这些用户选择。美国州级隐私保护法律合规性指南可让您为 Google 广告投放启用受限的数据处理,但 Google 无法将此设置应用于您的中介链中的每个广告联盟。因此,您必须确定中介链中可能参与个人信息出售的每个广告联盟,并遵循这些广告联盟的指南来确保合规性。

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

Java

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

Kotlin

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

如需详细了解每种方法以及可在其中提供的值,请参阅 Unity Ads 的《消费者隐私保护法案》合规性

第 5 步:添加必需的代码

使用 activity 上下文加载广告

加载横幅广告、插页式广告和原生广告格式时,传递 Activity 上下文。 如果没有 activity 上下文,广告加载将会失败。

第 6 步:测试您的实现

启用测试广告

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

验证测试广告

若要验证您是否能收到来自 Unity Ads 的测试广告,请在广告检查器中启用 single ad source testing(单个广告来源测试),并选择 Unity Ads (Bidding) and Unity Ads (Waterfall)(Unity Ads [出价] 和 Unity Ads [瀑布流])作为广告来源。

错误代码

如果适配器未能收到来自 Unity Ads 的广告,发布商可以使用 ResponseInfo.getAdSourceResponses() 来检查广告响应中归属于以下类的底层错误:

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 返回了状态为 DISABLED 的展示位置。
104 UnityAds 尝试展示上下文为 null 的广告。
105 用于初始化、加载和/或展示 Unity Ads 广告的上下文不是 Activity 实例。
106 UnityAds 尝试展示尚无法展示的广告。
107 设备不支持 UnityAds。
108 UnityAds 每次只能为每个展示位置加载 1 个广告。
109 UnityAds 已完成,但处于错误状态。
200-204 UnityAds 横幅广告特有的错误。如需了解详情,请参阅代码