将 AdColony 与中介集成

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

支持的集成和广告格式

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

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

要求

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

  • 完成中介 入门指南

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

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

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

第 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 步:测试实现效果

可选步骤

权限

为了获得最佳性能,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。

早期版本

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