本指南适用于希望使用 Google 移动广告 SDK 通过中介加载和展示 InMobi 中的广告的发布商。
其中介绍了如何将 InMobi 添加到广告单元的中介配置、如何设置广告来源优化、,以及如何将 InMobi SDK 和适配器集成到Android 应用中。
支持的集成和广告格式
适用于 InMobi 的 Google AdMob 中介适配器具有以下功能:
集成 | |
---|---|
出价 | |
瀑布 | |
格式 | |
横幅 | |
插页式广告 | |
激励广告 | |
原生 |
要求
- Android API 级别 19 或更高级别
- 最新版 Google 移动广告 SDK
第 1 步:设置 InMobi
添加应用
如需将应用添加到 InMobi 信息中心,请依次点击广告资源 > 广告资源设置。
点击添加广告资源,然后从下拉菜单中选择移动应用渠道。
开始在搜索栏中输入已发布的应用商店网址,然后从自动填充的结果中选择该应用。点击继续。
如果您的应用尚未发布,请点击手动关联,然后输入必要的详细信息。点击继续。
查看应用与网站合规性设置,然后点击保存并创建展示位置。
展示位置
设置广告资源后,系统会将您重定向到展示位置创建工作流程。
横幅
选择横幅作为类型,然后点击添加展示位置。然后输入展示位置名称。完成后,点击创建展示位置按钮。
插页式广告
选择插页式作为类型,然后点击添加展示位置。然后输入展示位置名称。完成后,点击创建展示位置按钮。
激励广告
选择激励作为类型,然后点击添加展示位置。然后输入展示位置名称。完成后,点击创建展示位置按钮。
原生
选择原生作为类型,然后点击添加展示位置。然后输入展示位置名称。完成后,点击创建展示位置按钮。
创建展示位置后,系统即会显示其详细信息。请记下设置 ID,此 ID 将用于设置您的AdMob 广告单元。
帐号 ID
您的 InMobi 帐号 ID 位于财务 > 付款设置 > 付款信息下。
API 密钥
转到我的帐号 > 帐号设置。转到 API 密钥标签页,然后点击生成 API 密钥。
选择需要该密钥的用户的电子邮件,然后点击生成 API 密钥。系统将生成包含 API 密钥和用户名/登录名的文件。
只有帐号的发布商管理员才能为所有用户生成 API 密钥。如果您忘记了之前生成的 API 密钥,请在 API 密钥标签页上将鼠标悬停在邮件上,以重置 API 密钥。
第 2 步:为广告单元 AdMob 配置中介设置
您需要将 InMobi 添加到广告单元的中介配置中。首先,登录您的 AdMob 帐号。
转到“中介”标签页。如果您已有要修改的中介组,请点击该中介组的名称进行修改,然后直接跳到将 inMobi 添加为广告来源。
要创建新的中介组,请选择创建中介组。
选择广告格式和平台,然后点击继续。
为中介组命名,然后选择要定位到的地理位置。接下来,将中介组状态设置为已启用。然后点击添加广告单元。
将此中介组与您的一个或多个现有 AdMob 广告单元相关联。然后,点击完成。
现在,您应该会看到“广告单元”卡片中填充了您选择的广告单元,如下所示:
将 InMobi 添加为广告来源
在广告来源卡片中,选择添加广告联盟。
选择 InMobi 并启用 Optimize 开关。输入您的 Login name(登录名称)和 API key(API 密钥),并提供在上一部分中获取的用户名和 API 密钥字段,以便为 InMobi 设置广告来源优化。然后,输入 Momobi 的 eCPM 值并点击继续。
输入在上一部分获得的帐号 ID 和展示位置 ID。
使用激励广告
在激励广告单元的设置中,提供奖励金额和奖励类型的值。然后,为确保无论投放哪个广告联盟,您都能向用户提供相同的奖励,请选中应用于中介组中的所有广告联盟复选框。
如果您未应用此设置,InMobi 适配器会在创建展示位置时传回 InMobi 信息中心中指定的奖励。 要详细了解如何为 AdMob 广告单元设置奖励值,请参阅创建广告单元。
第 3 步:导入 InMobi SDK 和适配器
Android Studio 集成(推荐)
在应用实现级 build.gradle
文件中,添加以下版本的依赖项以及最新版本的 InMobi SDK 和适配器:
repositories { google() mavenCentral() } ... dependencies { implementation 'com.google.android.gms:play-services-ads:21.0.0' implementation 'com.google.ads.mediation:inmobi:10.0.7.0' } ...
手动集成
下载 InMobi Android SDK 并提取
libs
文件夹下的InMobiSDK.aar
文件,并将其添加到您的项目。导航到 Google 的 InMobi 适配器工件Google 的 Maven 代码库中。选择最新版本,下载 InMobi 适配器的
.aar
文件,并将其添加到您的项目。InMobi 还需要包含其他依赖项。如需了解详情,请参阅 InMobi' 的文档。
第 4 步:需要其他代码
InMobi 集成不需要其他代码。
第 5 步:测试您的实现效果
在所有实际展示或某些测试设备上为您的展示位置启用测试模式。
可选步骤
欧盟地区用户意见征求和 GDPR
根据 Google《欧盟地区用户意见征求政策》,您必须确保向欧洲经济区 (EEA) 内的用户披露与使用设备标识符和个人数据有关的信息,以及征得这些用户的同意。此政策反映了欧盟《电子隐私指令》和《一般数据保护条例》(GDPR) 的要求。在征求用户意见时,您必须指明中介链中可能会收集、接收或使用个人数据的广告联盟,并提供各个广告联盟的使用情况信息。Google 目前无法自动将用户的意见传递给此类网络。
以下部分介绍了如何为 InMobi 启用或停用个性化广告。
在 7.1.0.0 版本中,InMobi 适配器添加了 InMobiConsent
类,该类可让您将用户意见征求信息传递给 InMobi。以下示例代码对 InMobiConsent
类调用 updateGDPRConsent()
。如果您选择调用此方法,建议您在通过 Google 移动广告 SDK 请求广告之前执行此操作。
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);
请参阅 InMobi's GDPR 实现详情,详细了解 InMobi 在此意见征求对象中可能接受的键和值。
将 InMobi 添加到 GDPR 广告合作伙伴列表
按照 GDPR 设置 中的步骤将 InMobi 添加到AdMob 界面中的 GDPR 广告合作伙伴列表。
权限
为了获得最佳性能,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
|
字符串。用户的年龄 |
InMobiNetworkKeys.POSTAL_CODE
|
字符串。用户的邮政编码(通常是 5 位数) |
InMobiNetworkKeys.AREA_CODE
|
字符串。用户的区号(电话号码的一部分) |
InMobiNetworkKeys.LANGUAGE
|
字符串。用户的母语(如果已知)。 |
InMobiNetworkKeys.CITY
|
字符串。用户所在的城市 |
InMobiNetworkKeys.STATE
|
字符串。用户的状态 |
InMobiNetworkKeys.COUNTRY
|
字符串。用户所在的国家/地区 |
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 |
媒体视图 | |
车身 | |
应用图标 | |
号召性用语 | |
Star rating | |
存储 | |
价格 |
1 InMobi 适配器不提供对原生广告主图片素材资源的直接访问。适配器会使用视频或图片填充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 MoMobi 服务器参数缺失/无效。 |
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 MoMobi 服务器参数缺失/无效。 |
102 | InMobi Adapter 不支持所请求的广告格式。 |
103 | 此网络配置已加载 InMobi 广告。 |
其他 | InMobi SDK 返回了错误。如需了解详情,请参阅 IMRequestStatus.h 。 |
InMobi Android 中介适配器变更日志
版本 10.0.7.0
- 验证了与 InMobi SDK 10.0.7 的兼容性。
- 将
compileSdkVersion
和targetSdkVersion
更新到了 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
消失的错误。 - 原生广告:修复了导致 InMobi 的
primaryView
无法显示在mediaView
中心的 bug。
构建和测试时使用的工具:
- 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 版 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]。
早期版本
- 添加了对横幅广告、插页式广告、激励视频广告和原生广告格式的支持。