Integrate InMobi with Mediation

本指南介绍了如何使用 Google 移动广告 SDK 通过中介功能加载和展示 InMobi 中的广告(涵盖了瀑布流集成)。其中介绍了如何将 InMobi 添加到广告单元的中介配置中,以及如何将 InMobi SDK 和适配器集成到Android 应用中。

支持的集成和广告格式

适用于 InMobi 的 Google AdMob 中介适配器具有以下功能:

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

要求

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

第 1 步:设置 InMobi

注册登录您的 InMobi 帐号。

添加应用

如需将应用添加到 InMobi 信息中心,请依次点击 Inventory > Inventory Settings

点击添加广告资源,然后从下拉菜单中选择移动应用渠道。

开始在搜索栏中输入已发布的应用商店网址,然后从自动填充的结果中选择该应用。点击继续

如果您的应用尚未发布,请点击手动关联,然后输入所需详细信息。点击继续

检查应用和网站合规性设置,然后点击保存并创建展示位置

展示位置

设置完广告资源后,系统会将您重定向到展示位置创建工作流程。

选择横幅作为类型,然后点击添加展示位置。然后,输入展示位置名称。完成后,点击创建展示位置按钮。

插页式广告

选择插页式作为类型,然后点击添加展示位置。然后,输入展示位置名称。完成后,点击创建展示位置按钮。

已奖励

选择激励作为类型,然后点击添加展示位置。然后,输入展示位置名称。完成后,点击创建展示位置按钮。

原生

选择原生作为类型,然后点击添加展示位置。然后,输入展示位置名称。完成后,点击创建展示位置按钮。

创建展示位置后,系统会显示其详细信息。请记下展示位置 ID,此 ID 将用于设置您的AdMob 广告单元。

帐号 ID

您可以依次点击 Finance > Payment Settings > Payment Information,找到您的 InMobi 帐号 ID。

API 密钥

转到我的帐号 > 帐号设置。导航到 API 密钥标签页,然后点击生成 API 密钥

选择需要获得密钥的用户的电子邮件地址,然后点击生成 API 密钥。系统将生成一个包含 API 密钥和用户名/登录名的文件。

只有帐号的发布商管理员才能为所有用户生成 API 密钥。如果您忘记了之前生成的 API 密钥,请通过在 API 密钥标签页上将光标悬停在邮件上来重置 API 密钥。

第 2 步:为您的广告单元 AdMob 配置中介设置

您需要将 InMobi 添加到广告单元的中介配置中。首先,登录您的 AdMob 帐号

转到“中介”标签页。如果您有要修改的现有中介组,请点击该中介组的名称进行修改,然后跳至将 inMobi 添加为广告来源

要创建新的中介组,请选择创建中介组

选择广告格式和平台,然后点击继续

为中介组命名,并选择要定位到的地理位置。接下来,将中介组状态设置为已启用。然后点击添加广告单元

将此中介组与您的一个或多个现有 AdMob 广告单元相关联。然后,点击完成

现在,您应该可以看到广告单元卡片中填充了您选择的广告单元,如下所示:

将 InMobi 添加为广告来源

广告来源卡片中,选择添加广告联盟

选择 InMobi 并启用优化开关。输入您的登录名API 密钥,并提供在上一部分中获取的用户名和 API 密钥字段,以便为 InMobi 设置广告来源优化。然后,为 Inmobi 输入 eCPM 值,并点击 Continue

输入在上一部分获得的帐号 ID展示位置 ID

使用激励广告

在激励广告单元的设置中,提供奖励金额和奖励类型的值。然后,为了确保无论投放哪个广告联盟,您都能向用户提供相同的奖励,请勾选应用于中介组中的所有广告联盟复选框。

如果您未应用此设置,InMobi 适配器会在创建展示位置时回传 InMobi 信息中心中指定的奖励。 如需详细了解如何为 AdMob 广告单元设置奖励值,请参阅创建广告单元

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

在应用级 build.gradle 文件中,添加以下带有最新版 InMobi SDK 和适配器的实现依赖项:

repositories {
    google()
    mavenCentral()
}

...
dependencies {
    implementation 'com.google.android.gms:play-services-ads:21.5.0'
    implementation 'com.google.ads.mediation:inmobi:10.1.2.1'
}
...

手动集成

  1. 下载 InMobi Android SDK 并提取 libs 文件夹下的 InMobiSDK.aar 文件,并将其添加到您的项目。

  2. 转到 Google Maven 代码库中的 InMobi 适配器工件。选择最新版本,下载 InMobi 适配器的 .aar 文件,并将其添加到您的项目。

  3. InMobi 还需要包含其他依赖项。如需了解更多详情,请参阅 InMobi 的文档

第 4 步:需要其他代码

InMobi 集成无需额外的代码。

第 5 步:测试您的实现

为所有实际展示或仅在某些测试设备上为您的展示位置启用测试模式

可选步骤

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

在 7.1.0.0 版本中,InMobi 适配器添加了 InMobiConsent 类,可让您将用户意见征求信息传递给 InMobi。以下示例代码对 InMobiConsent 类调用 updateGDPRConsent()。如果您选择调用此方法,建议您在通过 Google 移动广告 SDK 请求广告之前执行此操作。

Java

import com.inmobi.sdk.InMobiSdk;
import com.google.ads.mediation.inmobi.InMobiConsent;
// ...

JSONObject consentObject = new JSONObject();
try {
  consentObject.put(InMobiSdk.IM_GDPR_CONSENT_AVAILABLE, true);
  consentObject.put("gdpr", "1");
} catch (JSONException exception) {
  exception.printStackTrace();
}

InMobiConsent.updateGDPRConsent(consentObject);

Kotlin

import com.inmobi.sdk.InMobiSdk
import com.google.ads.mediation.inmobi.InMobiConsent
// ...

val consentObject = JSONObject()
try {
  consentObject.put(InMobiSdk.IM_GDPR_CONSENT_AVAILABLE, true)
  consentObject.put("gdpr", "1")
} catch (exception: JSONException) {
  exception.printStackTrace()
}

InMobiConsent.updateGDPRConsent(consentObject)

如需详细了解 InMobi 可在此用户意见征求对象中接受的键和值,请参阅 InMobi 的 GDPR 实现详情

将 InMobi 添加到 GDPR 广告合作伙伴列表

按照GDPR 设置InMobi 添加到AdMob 界面中的 GDPR 广告合作伙伴列表。

CCPA

《加州消费者隐私法案》(CCPA) 要求加州居民能够选择不“出售”其“个人信息”(如相关法律所定义),并且通过醒目的“不出售我的个人信息”首页上的“不出售我的个人信息”首页提供选择退出。CCPA 准备工作指南可让您为 Google 广告投放启用受限的数据处理,但 Google 无法为中介链中的每个广告联盟应用此设置。因此,您必须确定您的中介链中可能参与个人信息销售的各个广告联盟,并遵循各个广告联盟的指导意见来确保遵守 CCPA。

如需了解如何为 InMobi 启用 CCPA 设置,请参阅 InMobi 的 CCPA 文档

权限

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

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

广告联盟专用参数

InMobi 适配器支持可作为 Android Bundle 传递给适配器的其他请求参数。适配器会在捆绑包中查找以下键:

请求参数和值
InMobiNetworkKeys.AGE_GROUP
用户的年龄段。
InMobiNetworkValues.BELOW_18
InMobiNetworkValues.BETWEEN_18_AND_24
InMobiNetworkValues.BETWEEN_25_AND_29
InMobiNetworkValues.BETWEEN_30_AND_34
InMobiNetworkValues.BETWEEN_35_AND_44
InMobiNetworkValues.BETWEEN_45_AND_54
InMobiNetworkValues.BETWEEN_55_AND_65
InMobiNetworkValues.ABOVE_65
InMobiNetworkKeys.EDUCATION
用户的教育程度。
InMobiNetworkValues.EDUCATION_HIGHSCHOOLORLESS
InMobiNetworkValues.EDUCATION_COLLEGEORGRADUATE
InMobiNetworkValues.EDUCATION_POSTGRADUATEORABOVE
InMobiNetworkKeys.AGE String。用户的年龄
InMobiNetworkKeys.POSTAL_CODE String。用户的邮政编码(通常是 5 位数)
InMobiNetworkKeys.AREA_CODE String。用户的区号(电话号码的一部分)
InMobiNetworkKeys.LANGUAGE String。用户的母语(如果已知)。
InMobiNetworkKeys.CITY String。用户所在的城市
InMobiNetworkKeys.STATE String。用户的状态
InMobiNetworkKeys.COUNTRY String。用户所在的国家/地区
InMobiNetworkKeys.LOGLEVEL
设置 InMobi SDK 的日志级别。
InMobiNetworkValues.LOGLEVEL_NONE
InMobiNetworkValues.LOGLEVEL_DEBUG
InMobiNetworkValues.LOGLEVEL_ERROR

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

Java

Bundle extras = new Bundle();
extras.putString(InMobiNetworkKeys.AGE_GROUP, InMobiNetworkValues.BETWEEN_35_AND_54);
extras.putString(InMobiNetworkKeys.AREA_CODE, "12345");
...
AdRequest request = new AdRequest.Builder()
        .addNetworkExtrasBundle(InMobiAdapter.class, extras)
        .build();

Kotlin

val extras = Bundle()
extras.putString(InMobiNetworkKeys.AGE_GROUP, InMobiNetworkValues.BETWEEN_35_AND_54)
extras.putString(InMobiNetworkKeys.AREA_CODE, "12345")
...
val request = AdRequest.Builder()
        .addNetworkExtrasBundle(InMobiAdapter.class, extras)
        .build()

使用原生广告

广告呈现

InMobi 适配器会以 NativeAd 对象的形式返回其原生广告。它会为NativeAd 填充以下原生广告字段说明

字段 始终包含 InMobi 适配器的素材资源
标题
图片 1
媒体视图
正文
应用图标
号召性用语
星级
存储
价格

1InMobi 适配器无法直接访问其原生广告的主图片素材资源。不过,适配器会使用视频或图片填充MediaView

展示和点击跟踪

Google 移动广告 SDK 使用 InMobi SDK 的回调进行展示和点击跟踪,因此这两个信息中心上的报告几乎没有差异。

错误代码

如果适配器无法从 InMobi 接收广告,发布商可以使用以下类下的ResponseInfo.getAdapterResponse() 检查广告响应中的底层错误:

com.google.ads.mediation.inmobi.InMobiAdapter
com.google.ads.mediation.inmobi.InMobiMediationAdapter

当广告加载失败时,InMobi 适配器会抛出以下代码和相关消息:

错误代码 原因
0-99 InMobi SDK 错误。如需了解详情,请参阅代码
100 AdMob 界面中配置的 InMobi 服务器参数缺失/无效。
101 未能初始化 InMobi SDK。
102 请求的广告尺寸不符合 InMobi 支持的横幅广告尺寸。
103 广告请求不是统一的原生广告请求。
104 尝试在未初始化 InMobi SDK 的情况下请求 InMobi 广告。从理论上讲,这种情况应该永远不会发生,因为适配器会在请求 InMobi 广告之前初始化 InMobi SDK。
105 InMobi 的广告尚未准备好展示。
106 InMobi 无法展示广告。
107 InMobi 返回的是缺少必需素材资源的原生广告。
108 InMobi 的原生广告图片素材资源包含格式错误的网址。
109 适配器未能下载 InMobi 的原生广告图片素材资源。
101 AdMob 界面中配置的 InMobi 服务器参数缺失/无效。
102 InMobi Adapter 不支持请求的广告格式。
103 已为此网络配置加载了一个 InMobi 广告。
其他 InMobi SDK 返回了错误。如需了解详情,请参阅 IMRequestStatus.h

InMobi Android 中介适配器更新日志

版本 10.1.2.1

  • 新增了对将 COPPA 值转发给 InMobi SDK 的支持。
  • 更新了适配器以使用新的中介 API。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 21.4.0。

构建和测试所需版本:

  • Google 移动广告 SDK 21.4.0 版。
  • InMobi SDK 10.1.2 版。

版本 10.1.2.0

  • 验证了与 InMobi SDK 10.1.2 的兼容性。

构建和测试所需版本:

  • Google 移动广告 SDK 21.3.0 版。
  • InMobi SDK 10.1.2 版。

版本 10.1.1.0

  • 验证了与 InMobi SDK 10.1.1 的兼容性。

构建和测试所需版本:

  • Google 移动广告 SDK 21.3.0 版。
  • InMobi SDK 10.1.1。

版本 10.0.9.0

  • 验证了与 InMobi SDK 10.0.9 的兼容性。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 21.3.0。

构建和测试所需版本:

  • Google 移动广告 SDK 21.3.0 版。
  • InMobi SDK 10.0.9。

版本 10.0.8.0

  • 验证了与 InMobi SDK 10.0.8 的兼容性。
  • 将最低的 Google 移动广告 SDK 版本更新为 21.2.0。

构建和测试所需版本:

  • Google 移动广告 SDK 21.2.0 版。
  • InMobi SDK 版本 10.0.8。

版本 10.0.7.0

  • 验证了与 InMobi SDK 10.0.7 的兼容性。
  • compileSdkVersiontargetSdkVersion 更新为 API 31。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 21.0.0。
  • 将最低的 Android API 级别更新为 19。

构建和测试所需版本:

  • Google 移动广告 SDK 版本 21.0.0。
  • InMobi SDK 版本 10.0.7。

版本 10.0.6.0

  • 验证了与 InMobi SDK 10.0.6 的兼容性。

构建和测试所需版本:

  • Google 移动广告 SDK 版本 20.6.0。
  • InMobi SDK 版本 10.0.6。

版本 10.0.5.0

  • 验证了与 InMobi SDK 10.0.5 的兼容性。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 20.6.0。

构建和测试所需版本:

  • Google 移动广告 SDK 版本 20.6.0。
  • InMobi SDK 版本 10.0.5。

版本 10.0.3.0

  • 验证了与 InMobi SDK 10.0.3 的兼容性。

构建和测试所需版本:

  • Google 移动广告 SDK 版本 20.5.0。
  • InMobi SDK 版本 10.0.3。

版本 10.0.2.0

  • 验证了与 InMobi SDK 10.0.2 的兼容性。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 20.5.0。

构建和测试所需版本:

  • Google 移动广告 SDK 版本 20.5.0。
  • InMobi SDK 版本 10.0.2。

版本 10.0.1.0

  • 验证了与 InMobi SDK 10.0.1 的兼容性。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 20.4.0。

构建和测试所需版本:

  • Google 移动广告 SDK 20.4.0 版。
  • InMobi SDK 版本 10.0.1。

版本 9.2.1.0

  • 验证了与 InMobi SDK 9.2.1 的兼容性。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 20.3.0。

构建和测试所需版本:

  • Google 移动广告 SDK 版本 20.3.0。
  • InMobi SDK 版本 9.2.1。

版本 9.2.0.0

  • 验证了与 InMobi SDK 9.2.0 的兼容性。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 20.2.0。
  • 修复了错误的错误消息。

构建和测试所需版本:

  • Google 移动广告 SDK 版本 20.2.0。
  • InMobi SDK 版本 9.2.0。

版本 9.1.9.0

  • 验证了与 InMobi SDK 9.1.9 的兼容性。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 20.1.0。

构建和测试所需版本:

  • Google 移动广告 SDK 版本 20.1.0。
  • InMobi SDK 版本 9.1.9。

版本 9.1.7.0

  • 经验证与 InMobi SDK 9.1.7 版兼容。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 19.8.0。

构建和测试所需版本:

  • Google 移动广告 SDK 19.8.0 版。
  • InMobi SDK 版本 9.1.7。

版本 9.1.6.0

  • 经验证与 InMobi SDK 9.1.6 版兼容。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 19.7.0。
  • 适配器现在会覆盖展示跟踪,并使用 InMobi 的展示次数定义。
  • 适配器不再读取性别和生日定位参数,这些参数在 Google 移动广告 SDK 19.7.0 版本中已弃用。
  • 已迁移到 AndroidX

构建和测试所需版本:

  • Google 移动广告 SDK 19.7.0 版。
  • InMobi SDK 版本 9.1.6。

版本 9.1.1.0

  • 验证了与 InMobi SDK 9.1.1 的兼容性。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 19.5.0。
  • 添加了描述性错误代码和适配器加载/显示失败原因。

构建和测试所需版本:

  • Google 移动广告 SDK 19.5.0 版。
  • InMobi SDK 版本 9.1.1。

版本 9.1.0.0

  • 验证了与 InMobi SDK 9.1.0 的兼容性。
  • 将最低的 Google 移动广告 SDK 版本更新为 19.4.0。

构建和测试所需版本:

  • Google 移动广告 SDK 19.4.0 版。
  • InMobi SDK 版本 9.1.0。

版本 9.0.9.0

  • 验证了与 InMobi SDK 版本 9.0.9 的兼容性。

构建和测试所需版本:

  • Google 移动广告 SDK 19.3.0 版。
  • InMobi SDK 版本 9.0.9。

版本 9.0.8.0

  • 移除了对已弃用的 NativeAppInstallAd 格式的支持。应用应请求统一原生广告。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 19.3.0。
  • 验证了与 InMobi SDK 版本 9.0.8 的兼容性。

构建和测试所需版本:

  • Google 移动广告 SDK 19.3.0 版。
  • InMobi SDK 版本 9.0.8。

版本 9.0.7.1

  • 修复了适配器无法正确保持 InMobi SDK 初始化状态的问题。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 19.2.0。

构建和测试所需版本:

  • Google 移动广告 SDK 19.2.0 版。
  • InMobi SDK 版本 9.0.7。

版本 9.0.7.0

  • 经验证与 InMobi SDK 版本 9.0.7 兼容。
  • 更新了适配器,以支持内嵌自适应横幅广告请求。
  • 适配器现在包含根据 InMobi 的指南建议的 ProGuard 配置。

构建和测试所需版本:

  • Google 移动广告 SDK 19.1.0 版。
  • InMobi SDK 版本 9.0.7。

版本 9.0.6.0

  • 经验证与 InMobi SDK 9.0.6 版兼容。
  • 原生广告:修复了在原生 Feed 集成中滚动时导致 InMobi 的 primaryView 消失的 bug。
  • 原生广告:修复了导致 InMobi 的 primaryView 未在 mediaView 内居中放置的错误。

构建和测试所需版本:

  • Google 移动广告 SDK 19.1.0 版。
  • InMobi SDK 版本 9.0.6。

版本 9.0.5.0

  • 经验证与 InMobi SDK 版本 9.0.5 兼容。

构建和测试所需版本:

  • Google 移动广告 SDK 19.1.0 版。
  • InMobi SDK 版本 9.0.5。

版本 9.0.4.0

  • 已将所需的最低 Google 移动广告 SDK 版本更新为 19.1.0。

构建和测试所需版本:

  • Google 移动广告 SDK 19.1.0 版。
  • InMobi SDK 版本 9.0.4。

版本 9.0.2.0

  • 验证了与 InMobi SDK 版本 9.0.2 的兼容性。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 18.3.0。
  • 移除了针对横幅广告、插页式广告和激励广告格式的出价功能。
  • 修复了尝试呈现原生广告时导致崩溃的错误。

构建和测试时使用的

  • Google 移动广告 SDK 18.3.0 版。
  • InMobi SDK 版本 9.0.2。

版本 7.3.0.1

  • 原生广告现已利用统一的原生广告中介 API。

构建和测试时使用的

  • Google 移动广告 SDK 版本 18.2.0。
  • InMobi SDK 7.3.0 版。

版本 7.3.0.0

  • 验证了与 InMobi SDK 7.3.0 的兼容性。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 18.2.0。

版本 7.2.9.0

  • 针对横幅广告、插页式广告和激励广告的适配器添加了出价功能。
  • 验证了与 InMobi SDK 7.2.9 的兼容性。
  • 已将所需的最低 Google 移动广告 SDK 版本更新为 18.1.1。

版本 7.2.7.0

  • 验证了与 InMobi SDK 7.2.7 的兼容性。

版本 7.2.2.2

  • 添加了对灵活横幅广告尺寸的支持。

版本 7.2.2.1

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

版本 7.2.2.0

  • 验证了与 InMobi SDK 7.2.2 的兼容性。

版本 7.2.1.0

  • 验证了与 InMobi SDK 7.2.1 的兼容性。

版本 7.2.0.0

  • 验证了与 InMobi SDK 7.2.0 的兼容性。

版本 7.1.1.1

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

版本 7.1.1.0

  • 验证了与 InMobi SDK 7.1.1 的兼容性。

版本 7.1.0.0

  • 添加了 InMobiConsent 类,该类会提供 updateGDPRConsent() 和 getConsentObj() 方法。
  • 验证了与 InMobi SDK 7.1.0 的兼容性。

版本 7.0.4.0

  • 验证了与 InMobi SDK 7.0.4 的兼容性。

版本 7.0.2.0

  • 验证了与 InMobi SDK 7.0.2 的兼容性。

版本 7.0.1.0

  • 更新了适配器,使其与 InMobi SDK 7.0.1 版本兼容。
  • 新增了对原生视频广告的支持。
  • 对于原生广告,适配器始终会返回媒体视图。适配器将不再返回图片素材资源,而是改为显示静态原生广告的图片。
  • 更新了 Android Studio 3.0 的适配器项目。

版本 6.2.4.0

  • 经验证与 InMobi SDK 6.2.4 版兼容。

版本 6.2.3.0

  • 已将版本命名系统更改为 [InMobi SDK version].[adapter patch version]。

早期版本

  • 添加了对横幅广告、插页式广告、激励视频广告和原生广告格式的支持。