本指南介绍了如何使用 GMA Next-Gen SDK 通过 AdMob 中介加载和展示来自 InMobi 的广告,其中涵盖了瀑布流集成和出价集成。如何将 InMobi 添加到广告单元的中介配置,以及如何将 InMobi SDK 和适配器集成到 Android 应用中。
支持的集成和广告格式
InMobi 的中介适配器具有以下功能:
| 集成 | |
|---|---|
| 出价 | |
| 瀑布流 | |
| 表现形式 | |
| 横幅 | |
| 插页式广告 | |
| 激励广告 | |
| 原生 | |
要求
- Android API 级别 24 或更高级别
- [对于出价]:如需在出价中集成所有受支持的广告格式,请使用 InMobi 适配器 10.6.3.0 或更高版本(建议使用最新版本)
最新版 GMA Next-Gen SDK
完成中介 入门指南阅读。
第 1 步:在 InMobi 界面中设置配置
注册 InMobi 账号。

验证账号后,请登录。
添加应用
如需将应用添加到 InMobi 信息中心,请依次点击 Inventory > Inventory Settings 。

点击 Add Inventory ,然后从下拉菜单中选择 Mobile App 渠道。

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

如果您的应用未发布,请点击 Link manually ,然后输入所需详细信息。点击继续 。

查看 App &Website Compliance 设置,然后点击 Save and Create Placements 。

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

出价
选择广告单元的类型。然后,输入展示位置名称,分别为Audience Bidding和Partner选择 On和Google 公开出价 ,并填写表单的其余部分。完成后,点击 Create Placement 。

瀑布流
选择广告单元的类型。然后,输入展示位置名称,为 Audience Bidding选择Off,并填写表单的其余部分。完成后,点击 Create Placement 。

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

账号 ID
您的 InMobi 账号 ID 位于 Finance > Payment Settings > Payment Information 下。

查找 InMobi Reporting API 密钥
出价
出价集成不需要执行此步骤。
瀑布流
依次前往 My Account > Account Settings 。前往 API Key 标签页,然后点击 Generate API Key 。
选择需要密钥的用户的电子邮件地址 ,然后点击 Generate API Key 。系统会生成一个包含 API 密钥和用户名/登录名的文件。

只有账号的发布商管理员才能为所有用户生成 API 密钥。如果您忘记了之前生成的 API 密钥,请将鼠标悬停在 API Key 标签页上的电子邮件地址上,以重置 API 密钥。

更新 app-ads.txt
应用授权卖方 app-ads.txt 是一项 IAB Tech Lab 计划,有助于确保只通过您认定的授权渠道销售您的
应用广告资源。为避免损失大量广告收入,您需要实现
app-ads.txt 文件。
如果您尚未完成此项设置,
请为应用设置 app-ads.txt 文件。
如需为 InMobi 实现 app-ads.txt,
请添加您的个性化代码段。
启用测试模式
仅针对所有实际展示或某些测试设备,为您的展示位置启用测试模式 。

第 2 步:在 AdMob 界面中设置 InMobi 需求
为广告单元配置中介设置
您需要将 InMobi 添加到广告单元的中介配置。
首先,登录您的 AdMob 账号。接下来,前往中介 标签页。如果您要修改某个现有中介组, 请点击该中介组的名称进行修改,然后跳至 将 InMobi 添加为广告来源。
若要创建新中介组,请选择创建中介组 。

输入广告格式和平台,然后点击继续 。

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

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

现在,您应该会看到“广告单元”卡片中填充了您选择的广告单元:

将 InMobi 添加为广告来源
出价
在广告来源 部分的出价 卡片下,选择添加广告来源 。然后选择 InMobi (SDK) 。
点击如何签署合作伙伴协议 ,然后 与 InMobi 建立出价合作伙伴关系。
点击确认并同意 ,然后点击继续 。
如果您已为 InMobi 创建映射, 可以选择该映射。否则,请点击添加映射 。
接下来,输入在上一部分获得的 账号 ID 和 展示位置 ID 。然后,点击完成 。

瀑布流
在广告来源 部分的瀑布流 卡片下,选择添加广告来源 。
选择 InMobi ,然后启用优化 开关。输入在上一部分获得的用户名 和 API 密钥 ,以便为 InMobi 设置广告来源优化。 然后,输入 InMobi 的 eCPM 值 ,并点击继续 。

如果您已为 InMobi 创建映射,可以选择该映射。 否则,请点击添加映射 。

接下来,输入在上一部分获得的 账号 ID 和 展示位置 ID 。然后,点击完成 。

将 InMobi 添加到 GDPR 和美国州级法规广告合作伙伴名单中
请按照 欧洲法规设置 和 美国州级法规设置 中的步骤,将 InMobi 添加到 AdMob 界面内的欧洲法规和美国州级法规广告合作伙伴名单中。
第 3 步:导入 InMobi SDK 和适配器
Android Studio 集成(推荐)
在应用级 Gradle 文件中,添加以下实现依赖项和配置:
Kotlin
dependencies { implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.25.0-beta01") implementation("com.google.ads.mediation:inmobi:11.1.1.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.25.0-beta01' implementation 'com.google.ads.mediation:inmobi:11.1.1.0' } configurations.configureEach { exclude group: 'com.google.android.gms', module: 'play-services-ads' exclude group: 'com.google.android.gms', module: 'play-services-ads-lite' }
手动集成
下载 InMobi Android SDK,解压缩
libs文件夹下的InMobiSDK.aar文件,然后将其添加到您的项目中。前往 Google 的 Maven 制品库中的 InMobi 适配器工件 。选择最新版本,下载 InMobi 适配器的
.aar文件,然后将其添加到您的项目中。InMobi 还要求包含其他依赖项。如需了解更多详细信息,请参阅 InMobi 的文档 。
第 4 步:在 InMobi SDK 上实现隐私设置
欧盟地区意见征求和《一般数据保护条例》(GDPR)
为了遵守 Google 的《欧盟地区用户意见征求政策》,您必须:向位于欧洲经济区 (EEA)、英国和瑞士境内的用户披露相关信息;如果法律要求在使用 Cookie 或存储在本地的其他 ID 之前必须先征得用户同意,您必须照做;如果需要收集、分享和使用个人数据来实现广告个性化,也必须征得用户同意。此政策反映了欧盟《电子隐私指令》和《一般数据保护条例》(GDPR) 的要求。您要负责验证用户意见是否已传播到中介链中的每个广告来源。 Google 无法自动将用户意见传递给此类广告资源网。
在 7.1.0.0 版中,InMobi 适配器添加了 InMobiConsent 类,可让您将意见信息传递给 InMobi。以下示例代码对
InMobiConsent 类调用了 updateGDPRConsent()。如果您选择调用此方法,建议您在通过GMA Next-Gen SDK请求广告之前进行调用。
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) {
Log.e(TAG, "Error creating GDPR consent JSON.", exception)
}
InMobiConsent.updateGDPRConsent(consentObject)
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) {
Log.e(TAG, "Error creating GDPR consent JSON.", exception);
}
InMobiConsent.updateGDPRConsent(consentObject);
如需详细了解 InMobi 在 此意见对象中接受的可能键和值,请参阅 InMobi 的 GDPR 实现详细信息 。
美国州级隐私保护法律
美国各州隐私保护法律要求向用户提供选择拒绝“出售”其“个人信息”(该法律中对这些术语做出了定义)的权利,“出售”方须在首页醒目位置提供“Do Not Sell My Personal Information”(不出售我的个人信息)链接,以供这些用户选择。美国州级隐私保护法律合规性指南可让您为 Google 广告投放启用受限的数据处理,但 Google 无法将此设置应用于您的中介链中的每个广告联盟。因此,您必须确定中介链中可能参与个人信息出售的每个广告联盟,并遵循这些广告联盟的指南来确保合规性。
在 10.5.7.1 版中,InMobi 适配器增加了对从 共享偏好设置中读取 IAB 美国隐私字符串的支持。请按照 美国州级隐私保护法律文档 中的说明,在 共享偏好设置 中设置美国隐私字符串。
此外,如需了解如何在 InMobi 信息中心内启用 CCPA 设置,请参阅 InMobi 的 CCPA 文档 。
第 5 步:其他必需的代码
InMobi 集成不需要其他代码。
第 6 步:测试您的实现
启用测试广告
请务必为 AdMob 注册测试设备,并在 InMobi 界面中启用测试模式。
验证测试广告
若要验证您是否能收到来自 InMobi 的测试广告,请在广告检查器中启用 single ad source testing (单个广告来源测试),并选择 InMobi (Bidding) 和 InMobi (Waterfall)作为广告来源。
可选步骤
权限
为了获得最佳性能,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_18InMobiNetworkValues.BETWEEN_18_AND_24InMobiNetworkValues.BETWEEN_25_AND_29InMobiNetworkValues.BETWEEN_30_AND_34InMobiNetworkValues.BETWEEN_35_AND_44InMobiNetworkValues.BETWEEN_45_AND_54InMobiNetworkValues.BETWEEN_55_AND_65InMobiNetworkValues.ABOVE_65
|
InMobiNetworkKeys.EDUCATION用户的受教育程度。 |
InMobiNetworkValues.EDUCATION_HIGHSCHOOLORLESSInMobiNetworkValues.EDUCATION_COLLEGEORGRADUATEInMobiNetworkValues.EDUCATION_POSTGRADUATEORABOVE
|
InMobiNetworkKeys.AGE
|
字符串 。用户的年龄 |
InMobiNetworkKeys.POSTAL_CODE
|
字符串 。用户的邮政编码 (通常为五位数) |
InMobiNetworkKeys.AREA_CODE
|
字符串 。用户的区号 (电话号码的一部分) |
InMobiNetworkKeys.LANGUAGE
|
字符串 。用户的母语(如果已知)。 |
InMobiNetworkKeys.CITY
|
字符串 。用户所在的城市 |
InMobiNetworkKeys.STATE
|
字符串 。用户所在的州/省/自治区 |
InMobiNetworkKeys.COUNTRY
|
字符串 。用户所在的国家/地区 |
InMobiNetworkKeys.LOGLEVEL为 InMobi SDK 设置日志级别。 |
InMobiNetworkValues.LOGLEVEL_NONEInMobiNetworkValues.LOGLEVEL_DEBUGInMobiNetworkValues.LOGLEVEL_ERROR |
以下代码示例展示了如何设置这些广告请求参数:
Kotlin
val extras = Bundle()
extras.putString(InMobiNetworkKeys.AGE_GROUP, InMobiNetworkValues.BETWEEN_35_AND_44)
extras.putString(InMobiNetworkKeys.AREA_CODE, AREA_CODE_VALUE)
val request = AdRequest.Builder(AD_UNIT_ID)
.putAdSourceExtrasBundle(InMobiAdapter::class.java, extras)
.build()
Java
Bundle extras = new Bundle();
extras.putString(InMobiNetworkKeys.AGE_GROUP, InMobiNetworkValues.BETWEEN_35_AND_44);
extras.putString(InMobiNetworkKeys.AREA_CODE, AREA_CODE_VALUE);
AdRequest request = new AdRequest.Builder(AD_UNIT_ID)
.putAdSourceExtrasBundle(InMobiAdapter.class, extras)
.build();
将 AD_UNIT_ID 替换为您的广告单元 ID。
- 将 AREA_CODE_VALUE 替换为区号。
使用原生广告
广告呈现
InMobi 适配器以
NativeAd
对象的形式返回其原生广告。它会为
原生广告字段说明
填充以下
NativeAd。
| 字段 | InMobi 适配器始终包含的素材资源 |
|---|---|
| 标题 | |
| 图片 | 1 |
| 媒体视图 | |
| 正文 | |
| 应用图标 | |
| 号召性用语 | |
| 星级 | |
| 商店 | |
| 价格 |
1 InMobi 适配器不
提供对其原生广告的主要图片素材资源的直接访问权限。相反,适配器会使用视频或图片填充
MediaView
。
展示和点击跟踪
GMA Next-Gen SDK 使用 InMobi SDK 的回调进行展示和点击跟踪,因此两个信息中心内的报告应基本一致。
错误代码
如果适配器未能收到来自 InMobi 的广告,
发布商可以使用 检查广告响应中归属于以下类的底层错误:ResponseInfo.getAdSourceResponses()
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 的原生广告图片素材资源。 |