将 AdColony 与中介集成

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

支持的集成和广告格式

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

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

要求

  • Unity 5.6 或更高版本
  • 最新版 Google 移动广告 SDK
  • [用于出价]:适用于 AdColony 1.0.5 或更高版本的 Google 移动广告中介插件(推荐使用最新版本
  • 在 Android 上部署
    • Android API 级别 19 或更高级别
  • 在 iOS 上部署
    • iOS 部署目标为 12.0 或更高版本
  • 配置了 Google 移动广告 SDK 且处于有效状态的 Unity 项目。如需了解详情,请参阅使用入门
  • 完成中介 入门指南

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

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

AdColony 设置新应用

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

Android

AdColony 创建应用

iOS

AdColony 创建应用

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

Android

AdColony 应用 ID

iOS

AdColony 应用 ID

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

Android

AdColony 设置区域

iOS

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 密钥来设置您的AdMob 广告单元 ID。前往 AdColony 发布商信息中心中的帐号设置,找到您的 API 密钥。

AdColony 设置

开启测试模式

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

AdColony 测试

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

为广告单元配置中介设置

Android

如需了解相关说明,请参阅 Android 指南中的第 2 步。

iOS

如需了解相关说明,请参阅 iOS 指南中的第 2 步。

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

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

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

通过更新日志中的下载链接下载适用于 AdColony 的最新版 Google 移动广告中介插件,然后从 ZIP 文件中提取 GoogleMobileAdsAdColonyMediation.unitypackage

在 Unity 项目编辑器中,依次选择 Assets > Import Package > Custom Package,然后找到您下载的 GoogleMobileAdsAdColonyMediation.unitypackage 文件。确保选择所有文件,然后点击 Import(导入)。

然后,依次选择 Assets > Play Services Resolver > Android Resolver > Force Resolve。External Dependency Manager 库会从头开始执行依赖项解析,并将声明的依赖项复制到 Unity 应用的 Assets/Plugins/Android 目录中。

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

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

适用于 AdColony 2.6.1 版的 Google 移动广告中介插件添加了包含 SetPrivacyFrameworkRequired()SetPrivacyConsentString() 方法的 AdColonyAppOptions 类,以便您将同意情况传递给 AdColony SDK。以下示例代码演示了如何将用户意见征求信息传递给 AdColony 适配器,然后该适配器将在 AdColony 的初始化方法中使用。您必须在初始化 Google 移动广告 SDK 之前设置这些选项,以确保它们能正确转发到 AdColony 的 SDK。

using GoogleMobileAds.Api.Mediation.AdColony;
// ...

AdColonyAppOptions.SetPrivacyFrameworkRequired(AdColonyPrivacyFramework.GDPR, true);
AdColonyAppOptions.SetPrivacyConsentString(AdColonyPrivacyFramework.GDPR, "myPrivacyConsentString");

如需了解详情以及可通过该方法提供的值,请参阅 AdColony 的消费者隐私权文章隐私权法实现指南

美国州级隐私保护法律

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

适用于 AdColony 2.6.1 版的 Google 移动广告中介插件添加了包含 SetPrivacyFrameworkRequired()SetPrivacyConsentString() 方法的 AdColonyAppOptions 类,以便您将同意情况传递给 AdColony SDK。以下示例代码演示了如何将用户意见征求信息传递给 AdColony 适配器,然后该适配器将在 AdColony 的初始化方法中使用。您必须在初始化 Google 移动广告 SDK 之前设置这些选项,以确保它们能正确转发到 AdColony 的 SDK。

using GoogleMobileAds.Api.Mediation.AdColony;
// ...

AdColonyAppOptions.SetPrivacyFrameworkRequired(AdColonyPrivacyFramework.CCPA, true);
AdColonyAppOptions.SetPrivacyConsentString(AdColonyPrivacyFramework.CCPA, "myPrivacyConsentString");

如需了解详情以及可通过该方法提供的值,请参阅 AdColony 的消费者隐私权文章隐私权法实现指南

第 5 步:添加所需的代码

Android

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

iOS

SKAdNetwork 集成

按照 AdColony 文档的说明,将 SKAdNetwork 标识符添加到项目的 Info.plist 文件中。

第 6 步:测试实现效果

启用测试广告

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

验证测试广告

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

可选步骤

Android

权限

为了获得最佳性能,AdColony 建议将以下可选权限添加到位于 Unity 项目的 Assets/Plugins/Android/GoogleMobileAdsPlugin 目录下的 AndroidManifest.xml 文件中。

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

iOS

iOS 集成无需执行额外步骤。

网络特定的参数

AdColony 中介包支持额外的配置和请求参数,您可以使用 AdColonyMediationExtrasAdColonyAppOptions 类将这些参数传递给适配器。

AdColonyMediationExtras 类包含以下方法:

SetShowPrePopup(bool)
设置是否在展示广告之前显示弹出式窗口。如果您不想在广告展示之前显示弹出式窗口,请设置为 false。
SetShowPostPopup(bool)
设置是否在展示广告后显示弹出式窗口。如果您不想在广告展示后显示弹出式窗口,请设置为 false。

AdColonyAppOptions 类包含以下方法:

SetUserId(string)
设置用于为 AdColony 广告服务器提供进一步分析的 AdColony SDK 的用户 ID。
SetTestMode(bool)
设置是否为 AdColony SDK 启用测试模式。

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

// Set app-level configurations
AdColonyAppOptions.SetUserId("myUser");
AdColonyAppOptions.SetTestMode(true);

// Set ad request parameters
AdColonyMediationExtras extras = new AdColonyMediationExtras();
extras.SetShowPrePopup(true);
extras.SetShowPostPopup(true);

AdRequest request = new AdRequest.Builder()
        .AddMediationExtras(extras)
        .Build();

错误代码

如果适配器无法从 AdColony 收到广告,发布商可以使用 ResponseInfo 中的以下类来检查广告响应的根本错误:

Android

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

iOS

GADMAdapterAdColony
GADMediationAdapterAdColony

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

Android

错误代码 原因
100 AdColony SDK 返回了错误。
101 服务器参数无效(例如缺少区域 ID)。
102 已经为同一区域 ID 请求了广告。
103 AdColony SDK 返回了初始化错误。
104 请求的横幅广告尺寸未映射到有效的 AdColony 广告尺寸。
105 由于广告未加载而导致呈现错误。
106 用于初始化 AdColony SDK 的上下文不是 Activity 实例。

iOS

错误代码 原因
0 - 3 个 AdColony SDK 返回了错误。如需了解详情,请参阅文档
101 服务器参数无效(例如缺少区域 ID)。
102 呈现广告的根视图控制器为 nil
103 AdColony SDK 返回了初始化错误。
104 AdColony SDK 不支持在五秒内配置两次。
105 未能展示广告。
106 用于激励广告的区域不是 AdColony 门户上的奖励区域。

AdColony Unity 中介插件更新日志

版本 2.6.3(进行中)

  • 修复了针对 MediationExtras 的重复定义警告。

版本 2.6.2

版本 2.6.1

  • 将 Privacy API 从 AdColonyAppOptions 类更新为以下方法,以支持 GDPR 和 CCPA:
    • SetGDPRRequired(bool) -> SetPrivacyFrameworkRequired(AdColonyPrivacyFramework, bool)
    • IsGDPRRequired() -> GetPrivacyFrameworkRequired(AdColonyPrivacyFramework)
    • SetGDPRConsentString(string)-> SetPrivacyConsentString(AdColonyPrivacyFramework, string)
    • GetGDPRConsentString() -> GetPrivacyConsentString(AdColonyPrivacyFramework)
  • 支持 AdColony Android 适配器版本 4.8.0.1
  • 支持 AdColony iOS 适配器版本 4.9.0.2
  • 使用 Google 移动广告 Unity 插件 7.4.1 版进行构建和测试。

版本 2.6.0

版本 2.5.0

版本 2.4.1

版本 2.4.0

版本 2.3.0

版本 2.2.0

版本 2.1.0

版本 2.0.3

版本 2.0.2

版本 2.0.1

版本 2.0.0

版本 1.0.6

版本 1.0.5

  • 将以下方法从 AdColonyMediationExtras Builder 类移到了 AdColonyAppOptions 类:
    • SetGDPRRequired()
    • SetGDPRConsentString()
    • SetUserId()
    • SetTestMode()
  • AdColonyAppOptions 类添加了以下方法:
    • IsGDPRRequired()
    • GetGDPRConsentString()
    • GetUserId()
    • IsTestMode()
  • AdColonyMediationExtras Builder 类中移除了 SetZoneId() 方法。
  • 支持 AdColony Android 适配器版本 3.3.10.1。
  • 支持 AdColony iOS 适配器版本 3.3.7.2。

版本 1.0.4

  • 更新了插件以支持新的公开 Beta 版 Rewarded API。
  • 支持 AdColony Android 适配器版本 3.3.8.1。
  • 支持 AdColony iOS 适配器版本 3.3.6.1。

版本 1.0.3

  • 支持 AdColony Android 适配器版本 3.3.5.1。
  • 支持 AdColony iOS 适配器版本 3.3.5.0。

版本 1.0.2

  • 支持 AdColony Android SDK 3.3.4 版。
  • 支持 AdColony iOS SDK 3.3.4 版。
  • 对于 Android,现在会忽略 AdColonyMediationExtras Builder 类中的 SetTestMode()。发布商现在可以通过 AdRequest Builder 类中的 AddTestDevice() 指定测试设备,以便从 AdColony for Android 请求测试广告。
  • AdColonyMediationExtras Builder 类添加了以下方法:
    • SetGDPRRequired()
    • SetGDPRConsentString()

版本 1.0.1

  • 支持 AdColony Android SDK 3.3.0-unity。
  • 支持 AdColony iOS SDK 3.3.0 版。

版本 1.0.0

  • 首个版本!
  • 支持 AdColony Android SDK 3.3.0 版。
  • 支持 AdColony iOS SDK 3.3.0 版。