将 AdColony 与中介集成

本指南介绍了如何使用 Google 移动广告 SDK 通过中介从 AdColony 加载和展示广告,其中包括出价和广告瀑布流集成。它介绍了如何将 AdColony 添加到广告单元的中介配置中,以及如何将 AdColony SDK 和适配器集成到应用中。 Android

支持的集成和广告格式

Ad Manager AdColony 中介适配器具有以下功能:

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

要求

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

  • 完成中介 入门指南

第 1 步:在 AdColony 界面中设置配置

注册登录您的 AdColony 帐号。点击设置新应用按钮,将您的应用添加到 AdColony 发布商信息中心

AdColony 设置新应用

填写表单,然后点击页面底部的 Create(创建),以将您的应用添加到 AdColony。

AdColony 创建应用

创建应用后,您可以依次转到应用的基本应用信息部分下的创收 > 应用来获取应用 ID

AdColony 应用 ID

接下来,在应用页面的广告区域部分点击设置新的广告区域按钮,创建新的广告区域。我们建议您为中介创建一个新的广告区域 Ad Manager (即使您已有广告区域)。

AdColony 设置区域

如需了解有关创建广告展示位置的其他说明,请选择与首选广告格式对应的标签页。

  1. 区域是否有效?设置为
  2. 为您的广告区域输入名称

  3. 选择横幅作为广告区域尺寸

  4. 输入“每日播放上限”的值。

插页式广告

  1. 区域是否有效?设置为
  2. 为您的广告区域输入名称

  3. 选择前贴片广告/插页式广告作为区域类型

  4. 输入“每日播放上限”的值。

已奖励

  1. 区域是否有效?设置为
  2. 为您的广告区域输入名称

  3. 选择值交换/V4VC 作为区域类型

  4. Client Side Only? 设为 Yes,然后输入虚拟货币名称每日最大视频数奖励金额

  5. 输入“每日播放上限”的值。

完成创建广告区域后,点击创建按钮。

创建广告区域后,您可以在广告区域的集成部分下找到区域 ID。该区域 ID 将在下一步中使用。

AdColony 区域 ID

找到您的 AdColony API 密钥

出价

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

瀑布

您需要使用 AdColony API 密钥来设置您的Ad Manager 广告单元 ID。前往 AdColony 发布商信息中心中的帐号设置,找到您的 API 密钥。

AdColony 设置

开启测试模式

如需在 AdColony 上启用测试广告,请转到 AdColony 信息中心,然后依次转到创收 > 应用。在应用的广告区域部分下,选择您要启用测试广告的区域。在开发部分下,选中只显示测试广告?即可启用测试广告。

AdColony 测试

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

登录您的 Ad Manager 帐号

添加 AdColony 公司

出价

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

瀑布

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

选择 AdColony 作为广告联盟,输入一个唯一的名称并启用中介。 开启自动数据收集,然后输入在上一部分中获得的 API Key

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

启用安全信号共享

出价

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

瀑布

广告瀑布流集成不需要执行此步骤。

配置 AdColony 出价

出价

依次前往投放 > 出价方,然后点击 SDK 出价标签页下的新出价方

选择AdColony作为出价方。

开启将此出价方的信号库添加到允许的信号列表中允许与此出价方共享信号。然后,点击继续

点击继续

点击完成

瀑布

广告瀑布流集成不需要执行此步骤。

配置广告单元映射

出价

依次前往投放 > 出价方,然后在 SDK 出价标签页下,为AdColony 选择公司。

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

选择特定广告单元。选择一种广告单元和格式,选择移动应用作为广告资源类型,然后选择移动应用。然后,输入在上一部分中获得的App ID and Zone ID 。最后,点击保存

瀑布

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

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

选择您在上一部分中为 AdColony创建的公司。选择移动 SDK 中介作为集成类型,选择 Android 作为平台,选择活跃作为状态

输入在上一部分获得的 App ID and Zone ID,以及默认 CPM 值。点击保存

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

添加到 GDPR 和美国州级法规的广告合作伙伴列表中 AdColony

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

第 3 步:导入 AdColony SDK 和适配器

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

dependencies {
    implementation("com.google.android.gms:play-services-ads:23.0.0")
    implementation("com.google.ads.mediation:adcolony:4.8.0.2")
}

将项目迁移到 AndroidX

AdColony SDK 依赖于 Android 支持库,但最新的 Google 移动广告 SDK 使用 Jetpack 库。

为确保 AdColony SDK 和 Google 移动广告 SDK 兼容,请在项目的顶层创建一个 gradle.properties 文件,并添加以下代码:

android.useAndroidX=true
android.enableJetifier=true

这将重写 AdColony SDK 二进制文件以使用 Jetpack 库。如需详细了解这些设置,请参阅 AndroidX 迁移指南

手动集成

  • 下载 AdColony Android SDK,然后解压 Library 文件夹下的 adcolony.jar 并将其添加到您的项目。
  • AdColony SDK 依赖于注解支持库。如需详细了解如何将注解支持库添加到项目中,请参阅使用注解改进代码检查
  • 转到 Google Maven 制品库中的 AdColony 适配器工件。选择最新版本,下载 AdColony 适配器的 .aar 文件,并将其添加到您的项目。

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

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

AdColony 适配器提供 AdColonyMediationAdapter.getAppOptions() 方法,可自定义要发送到 AdColony SDK 的参数。关于这些选项,与 GDPR 相关的两个方法是 setPrivacyFrameworkRequired()setPrivacyConsentString()。以下示例代码演示了如何将用户意见征求信息传递给 AdColony 适配器,然后该适配器将在 AdColony 的初始化方法中使用。您必须在初始化 Google 移动广告 SDK 之前设置这些选项,以确保它们能正确转发到 AdColony 的 SDK。

Java

import com.google.ads.mediation.adcolony.AdColonyMediationAdapter;
//...

AdColonyAppOptions appOptions = AdColonyMediationAdapter.getAppOptions();
appOptions.setPrivacyFrameworkRequired(AdColonyAppOptions.GDPR, true);
appOptions.setPrivacyConsentString(AdColonyAppOptions.GDPR, "1");

Kotlin

import com.google.ads.mediation.adcolony.AdColonyMediationAdapter
//...

val appOptions = AdColonyMediationAdapter.getAppOptions()
appOptions.setPrivacyFrameworkRequired(AdColonyAppOptions.GDPR, true)
appOptions.setPrivacyConsentString(AdColonyAppOptions.GDPR, "1")

如需详细了解这些方法中可以提供哪些值,请参阅 AdColony 的 GDPR 实现详情

美国州级隐私保护法律

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

AdColony 适配器提供 AdColonyMediationAdapter.getAppOptions() 方法,可自定义要发送到 AdColony SDK 的参数。关于这些选项的两个与 CCPA 相关的方法是 setPrivacyFrameworkRequired()setPrivacyConsentString()。以下示例代码演示了如何将用户意见征求信息传递给 AdColony 适配器,然后该适配器将在 AdColony 的初始化方法中使用。您必须在初始化 Google 移动广告 SDK 之前设置这些选项,以确保它们能正确转发到 AdColony 的 SDK。

Java

import com.google.ads.mediation.adcolony.AdColonyMediationAdapter;
//...

AdColonyAppOptions appOptions = AdColonyMediationAdapter.getAppOptions();
appOptions.setPrivacyFrameworkRequired(AdColonyAppOptions.CCPA, true);
appOptions.setPrivacyConsentString(AdColonyAppOptions.CCPA, "1");

Kotlin

import com.google.ads.mediation.adcolony.AdColonyMediationAdapter
//...

val appOptions = AdColonyMediationAdapter.getAppOptions()
appOptions.setPrivacyFrameworkRequired(AdColonyAppOptions.CCPA, true)
appOptions.setPrivacyConsentString(AdColonyAppOptions.CCPA, "1")

如需详细了解这些方法中可以提供哪些值,请参阅 AdColony 的 CCPA 实现详情

第 5 步:添加所需的代码

AdColony 集成不需要额外的代码。

第 6 步:测试实现效果

启用测试广告

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

验证测试广告

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

可选步骤

权限

为了获得最佳性能,AdColony 建议将以下可选权限添加到应用的 AndroidManifest.xml 文件中:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />

使用插页式广告和激励广告

网络特定的参数

AdColony 适配器支持额外的请求参数,您可以使用 AdColonyBundleBuilder 类将这些参数传递给适配器。AdColonyBundleBuilder 包含以下方法:

  • setShowPrePopup(boolean):设置是否在展示广告之前显示弹出式窗口。如果设置为 false,则表示在广告展示之前没有弹出式广告。
  • setShowPostPopup(boolean):设置是否在展示广告后显示弹出式窗口。如果广告结束后没有弹出式窗口,则设为 false。

以下代码示例展示了如何设置这些广告请求参数:

Java

AdColonyBundleBuilder.setShowPrePopup(true);
AdColonyBundleBuilder.setShowPostPopup(true);

AdManagerAdRequest request = new AdManagerAdRequest.Builder()
  .addNetworkExtrasBundle(AdColonyAdapter.class, AdColonyBundleBuilder.build())
  .build();
rewardedInterstitialAd.loadAd(request);

Kotlin

AdColonyBundleBuilder.setShowPrePopup(true)
AdColonyBundleBuilder.setShowPostPopup(true)

val request = AdManagerAdRequest.Builder()
  .addNetworkExtrasBundle(AdColonyAdapter::class.java, AdColonyBundleBuilder.build())
  .build()
rewardedInterstitialAd.loadAd(request)

验证您的适配器和 SDK 版本

如需记录适配器和 SDK 版本,请使用以下代码段:

AdColonyMediationAdapter adapter = new AdColonyMediationAdapter();
VersionInfo adapterVersion = adapter.getVersionInfo();
VersionInfo sdkVersion = adapter.getSDKVersionInfo();
// Log the adapter patch version to 3 digits to represent the x.x.x.x versioning
// used by adapters.
Log.d("TAG", String.format(
    "Adapter version: %d.%d.%03d",
    adapterVersion.getMajorVersion(),
    adapterVersion.getMinorVersion(),
    adapterVersion.getMicroVersion()));
Log.d("TAG", String.format(
    "SDK version: %d.%d.%d",
    sdkVersion.getMajorVersion(),
    sdkVersion.getMinorVersion(),
    sdkVersion.getMicroVersion()));

错误代码

如果适配器无法从 AdColony 收到广告,发布商可以通过以下类下的 ResponseInfo.getAdapterResponse() 检查广告响应的根本错误:

com.jirbo.adcolony.AdColonyAdapter
com.google.ads.mediation.adcolony.AdColonyMediationAdapter

以下是广告加载失败时 AdColony 适配器抛出的代码及相应消息:

错误代码 原因
100 AdColony SDK 返回了错误。
101 服务器参数无效(例如缺少区域 ID)。
102 已经为同一区域 ID 请求了广告。
103 AdColony SDK 返回了初始化错误。
104 请求的横幅广告尺寸未映射到有效的 AdColony 广告尺寸。
105 由于广告未加载而导致呈现错误。
106 用于初始化 AdColony SDK 的上下文不是 Activity 实例。
0 - 3 个 AdColony SDK 返回了错误。如需了解详情,请参阅文档
101 服务器参数无效(例如缺少区域 ID)。
102 呈现广告的根视图控制器为 nil
103 AdColony SDK 返回了初始化错误。
104 AdColony SDK 不支持在五秒内配置两次。
105 未能展示广告。
106 用于激励广告的区域不是 AdColony 门户上的奖励区域。

AdColony Android 中介适配器更新日志

下一版本

  • 将 Google 移动广告 SDK 的最低版本更新为 22.4.0。

版本 4.8.0.2

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

构建和测试方式:

  • Google 移动广告 SDK 22.0.0 版
  • AdColony SDK 4.8.0 版。

版本 4.8.0.1

  • 新增了对向 AdColony SDK 转发 COPPA 信息的支持。
  • 将 Google 移动广告 SDK 的最低版本更新为 21.5.0。

构建和测试方式:

  • Google 移动广告 SDK 21.5.0 版
  • AdColony SDK 4.8.0 版。

版本 4.8.0.0

  • 已验证与 AdColony SDK 4.8.0 版兼容。

构建和测试方式:

  • Google 移动广告 SDK 21.0.0 版
  • AdColony SDK 4.8.0 版。

版本 4.7.1.1

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

构建和测试方式:

  • Google 移动广告 SDK 21.0.0 版
  • AdColony SDK 4.7.1 版。

版本 4.7.1.0

  • 已验证与 AdColony SDK 版本 4.7.1 的兼容性。

构建和测试方式:

  • Google 移动广告 SDK 20.6.0 版
  • AdColony SDK 4.7.1 版。

版本 4.7.0.0

  • 已验证与 AdColony SDK 版本 4.7.0 的兼容性。
  • 将 Google 移动广告 SDK 的最低版本更新为 20.6.0。

构建和测试方式:

  • Google 移动广告 SDK 20.6.0 版
  • AdColony SDK 4.7.0 版。

版本 4.6.5.0

  • 已验证与 AdColony SDK 版本 4.6.5 的兼容性。

构建和测试方式:

  • Google 移动广告 SDK 20.4.0 版
  • AdColony SDK 4.6.5 版。

版本 4.6.4.0

  • 已验证与 AdColony SDK 版本 4.6.4 的兼容性。

构建和测试方式:

  • Google 移动广告 SDK 20.4.0 版
  • AdColony SDK 4.6.4 版。

版本 4.6.3.0

  • 已验证与 AdColony SDK 版本 4.6.3 的兼容性。
  • 将 Google 移动广告 SDK 的最低版本更新为 20.4.0。

构建和测试方式:

  • Google 移动广告 SDK 20.4.0 版
  • AdColony SDK 4.6.3 版。

版本 4.6.2.0

  • 已验证与 AdColony SDK 版本 4.6.2 的兼容性。

构建和测试方式:

  • Google 移动广告 SDK 20.3.0 版
  • AdColony SDK 4.6.2 版。

版本 4.6.0.0

  • 已验证与 AdColony SDK 版本 4.6.0 的兼容性。
  • 将 Google 移动广告 SDK 最低版本更新为 20.3.0。

构建和测试方式:

  • Google 移动广告 SDK 20.3.0 版
  • AdColony SDK 4.6.0 版。

版本 4.5.0.0

  • 新增了对横幅广告高级出价的支持。
  • 已验证与 AdColony SDK 版本 4.5.0 的兼容性。
  • 将 Google 移动广告 SDK 的最低版本更新为 20.0.0。

构建和测试方式:

  • Google 移动广告 SDK 版本 20.0.0.
  • AdColony SDK 4.5.0 版。

版本 4.4.1.0

  • 已验证与 AdColony SDK 版本 4.4.1 的兼容性。

构建和测试方式:

  • Google 移动广告 SDK 19.7.0 版。
  • AdColony SDK 4.4.1 版。

版本 4.4.0.0

  • 已验证与 AdColony SDK 版本 4.4.0 的兼容性。
  • 添加了对 AdColony 的 collectSignals() 方法用于出价的支持。
  • 将 Google 移动广告 SDK 的最低版本更新为 19.7.0。

构建和测试方式:

  • Google 移动广告 SDK 19.7.0 版。
  • AdColony SDK 4.4.0 版。

版本 4.3.0.0

  • 已验证与 AdColony SDK 版本 4.3.0 的兼容性。
  • 将 Google 移动广告 SDK 的最低版本更新为 19.5.0。

构建和测试方式:

  • Google 移动广告 SDK 19.5.0 版。
  • AdColony SDK 4.3.0 版。

版本 4.2.4.0

  • 修复了无法为激励广告转发 onUserEarnedReward() 的 bug。
  • 添加了针对 AdColony SDK 初始化错误的其他错误代码。
  • 将 Google 移动广告 SDK 的最低版本更新为 19.4.0。

构建和测试方式:

  • Google 移动广告 SDK 19.4.0 版
  • AdColony SDK 4.2.4 版。

版本 4.2.0.0

  • 已验证与 AdColony SDK 版本 4.2.0 的兼容性。
  • 更新了适配器,以支持内嵌自适应横幅广告请求。
  • 将 Google 移动广告 SDK 的最低版本更新为 19.2.0。

构建和测试方式:

  • Google 移动广告 SDK 19.2.0 版。
  • AdColony SDK 4.2.0 版。

版本 4.1.4.1

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

构建和测试方式:

  • Google 移动广告 SDK 19.0.1 版。
  • AdColony SDK 4.1.4 版。

版本 4.1.4.0

  • 已验证与 AdColony SDK 版本 4.1.4 的兼容性。

构建和测试方式:

  • Google 移动广告 SDK 18.3.0 版
  • AdColony SDK 4.1.4 版。

版本 4.1.3.1

  • 修复了适配器无法转发 onRewardedAdLoaded() 回调的问题。

构建和测试方式:

  • Google 移动广告 SDK 18.3.0 版
  • AdColony SDK 4.1.3 版。

版本 4.1.3.0

  • 已验证与 AdColony SDK 版本 4.1.3 的兼容性。

构建和测试方式:

  • Google 移动广告 SDK 18.3.0 版
  • AdColony SDK 4.1.3 版。

版本 4.1.2.0

  • 已验证与 AdColony SDK 版本 4.1.2 的兼容性。
  • 将 Google 移动广告 SDK 的最低版本更新为 18.3.0。

构建和测试方式:

  • Google 移动广告 SDK 18.3.0 版
  • AdColony SDK 4.1.2 版。

版本 4.1.0.0

  • 已验证与 AdColony SDK 版本 4.1.0 的兼容性。
  • 添加了对横幅广告的支持。
  • 将 Google 移动广告 SDK 的最低版本更新为 18.2.0。

构建和测试方式:

  • Google 移动广告 SDK 18.2.0 版.
  • AdColony SDK 4.1.0 版。

版本 3.3.11.0

  • 已验证与 AdColony SDK 版本 3.3.11 的兼容性。
  • 将 Google 移动广告 SDK 的最低版本更新为 18.1.1。

版本 3.3.10.1

  • 向适配器添加了针对插页式广告和激励广告的出价功能。

版本 3.3.10.0

  • 已验证与 AdColony SDK 版本 3.3.10 的兼容性。

版本 3.3.9.0

  • 已验证与 AdColony SDK 3.3.9 版兼容性。
  • 移除了 AdColonyBundleBuildersetGdprRequired()setGdprConsentString() 方法。
  • 添加了 AdColonyMediationAdapter.getAppOptions() 方法。现在,发布商必须通过这些选项将 GDPR 信息传递给 AdColony 的 SDK。如需了解详情,请参阅开发者文档

版本 3.3.8.1

  • 更新了适配器,以支持新的公开 Beta 版 Rewarded API。
  • 将 Google 移动广告 SDK 的最低版本更新为 17.2.0。

版本 3.3.8.0

  • 已验证与 AdColony SDK 版本 3.3.8 的兼容性。

版本 3.3.7.0

  • 已验证与 AdColony SDK 版本 3.3.7 的兼容性。

版本 3.3.6.0

  • 已验证与 AdColony SDK 3.3.6 版兼容。

版本 3.3.5.1

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

版本 3.3.5.0

  • 已验证与 AdColony SDK 版本 3.3.5 的兼容性。

版本 3.3.4.0

  • 已验证与 AdColony SDK 3.3.4 版兼容。
  • 根据 GDPR 更新了适配器。

版本 3.3.3.0

  • 已验证与 AdColony SDK 3.3.3 版兼容。
  • 从 Bundle 构建器类中移除了 setTestModeEnabled 方法。现在,发布商可以通过 AdRequest 构建器类中的 addTestDevice() 方法指定测试设备,以便从 AdColony 请求测试广告。

版本 3.3.2.0

  • 已验证与 AdColony SDK 3.3.2 版兼容性。

版本 3.3.0.1

  • 修复了重新初始化适配器后适配器无法填充的问题。
  • 修复了奖励回调发送不正确的问题。

版本 3.3.0.0

  • 已验证与 AdColony SDK 版本 3.3.0 的兼容性。
  • 更新了适用于 Android Studio 3.0 的 Adapter 项目。

版本 3.2.1.1

  • 向 Bundle 构建器类添加了 setTestModeEnabled 方法。发布商可以使用此方法将 AdColony 请求标记为测试请求。

版本 3.2.1.0

  • 已验证与 AdColony SDK 3.2.1 版兼容。

版本 3.2.0.0

  • 已验证与 AdColony SDK 3.2.0 版兼容。

版本 3.1.2.0

  • 修复了可能的 NullPointerExceptions。
  • 已验证与 AdColony SDK 版本 3.1.2 的兼容性。

版本 3.1.1.0

  • 已验证与 AdColony SDK 版本 3.1.1 的兼容性。

版本 3.1.0.0

  • 已验证与 AdColony SDK 版本 3.1.0 的兼容性。

版本 3.0.6.0

  • 将版本命名系统更改为了 [AdColony SDK version].[adapter patch version]。
  • 将所需的最低 AdColony SDK 版本更新为 v3.0.6。

早期版本

  • 支持激励视频广告和插页式广告。