AI Search

Android SDK 集成入门

集成 InMobi SDK 并实现盈利非常简单。InMobi 支持 手动下载 和 通过MavenCentral 集成 Android SDK。

笔记

如果您是通过直接集成而不是中介方式使用 InMobi Android SDK 版本 10.1.4 或更低版本,请按照 迁移到 SDK 11.4.X 的说明进行操作。

添加 InMobi SDK

选项 1:通过 Maven Central 拉取最新 SDK

如果您使用 Gradle 构建 Android 应用程序,则可以按照以下说明从 mavenCentral 拉取最新版本的 SDK:

  1. 仅适用于使用 Gradle 7 或更早版本的情况:在顶级settings.gradle.kts 文件中包含 mavenCentral:

    • settings.gradle.kts

    settings.gradle.kts

    如果您使用的 Gradle 版本高于 7,请跳过步骤 a并继续执行步骤 b

  2. 将以下行添加到应用程序模块的 dependencies 元素中build.gradle

    • build.gradle

    build.gradle

  3. 同步您的 Gradle 项目,以确保构建系统下载依赖项。

选项 2:将 SDK 库添加到您的应用程序项目中

或者,您可以从这里下载最新版本的 InMobi SDK ,并将库复制到您的应用程序模块libs/目录中。

要将库添加到项目的依赖项中,请将以下代码添加到模块的dependencies元素中:build.gradle:

  • build.gradle

build.gradle

笔记

最新版本的 InMobi SDK 支持 Android 5.0(API 级别 21)或更高版本。

添加并验证依赖项

要使用 InMobi SDK 实现盈利,您必须将以下依赖项添加到您的应用程序模块中build.gradle

ExoPlayer

InMobi Android SDK 使用流行的 ExoPlayer 库来改善插页式视频广告体验。

  • build.gradle

build.gradle

OKHTTP

InMobi SDK 使用 OkHttp 作为 HTTP 客户端,利用 HTTP/2.0 协议与 InMobi 的广告服务器进行所有网络通信。HTTP/2.0 支持在单个 TCP 连接上复用多个广告请求,与 HTTP/1.1 相比,显著降低了延迟和带宽消耗。这可以加快广告加载速度,减少数据使用,并提升性能,尤其是在移动网络环境下。

  • build.gradle

build.gradle

Kotlin Corotines

InMobi SDK 使用 Kotlin 协程来执行所有异步操作,而不会阻塞主 UI 线程,从而确保应用流畅运行。协程提供结构化的并发和自动生命周期管理,防止内存泄漏,并确保在广告销毁时所有后台任务都能正确取消。这种架构对于原生广告模块(完全用 Kotlin 编写)尤为重要,该模块负责处理 VAST 解析、可见性跟踪和视频播放等复杂操作。

  • build.gradle

build.gradle

Kotlin 依赖项

InMobi SDK 11.0.0 的原生广告模块已完全使用 Kotlin 重写(100% Kotlin 代码库),因此 Kotlin 标准库是基本要求。Kotlin 提供了空安全、数据类、密封类和扩展函数等现代语言特性,从而能够编写出更可靠、更易于维护的代码。

  • build.gradle

build.gradle

Google Play 服务

InMobi Android SDK 需要 Google Play 服务库,以便通过 Google Play 广告 ID 实现更精准的广告定向。此外,如果用户同意收集其位置信息,该 SDK 还会使用 Google Play 服务来获取用户位置。

要将 Google Play 服务客户端库添加到您的应用程序:

  1. 将以下代码行添加到应用程序模块的依赖项元素中。

    • build.gradle

    build.gradle

  2. 同步您的 Gradle 项目,确保已包含依赖项。

Chrome 自定义标签页

这是将用户重定向到 InMobi WebView 外部 URL 所必需的。要将 Chrome 自定义库添加到您的应用程序:

  1. 在 Gradle 构建脚本中,将以下代码添加到应用程序模块的依赖项元素中:

    • build.gradle

    build.gradle

  2. 同步您的 Gradle 项目以确保包含依赖项。

警告

如果应用程序 gradle 脚本中未包含 Chrome 自定义标签页依赖项,则会导致广告请求失败,从而影响使用 InMobi SDK 的应用程序的盈利。

毕加索图书馆

InMobi Android SDK 使用流行的 Picasso 库来加载广告资源。要将 Picasso 库添加到您的应用程序:

  1. 在 Gradle 构建脚本中,将以下代码添加到应用程序模块的依赖项元素中:

    • build.gradle

    build.gradle

  2. 同步您的 Gradle 项目,确保已包含依赖项。

警告

如果您的应用程序 gradle 脚本中未包含 Picasso 依赖项,则会导致插页式广告请求失败,从而影响您使用 InMobi SDK 实现应用程序的盈利。

AppSetId

AppSet ID 有助于按设备和发布商唯一地跟踪用户。支持在您的应用程序中检索 AppSet ID。

  1. 在 Gradle 构建脚本中,将以下代码添加到应用程序模块的依赖项元素中:

    • build.gradle

    build.gradle

  2. 同步您的 Gradle 项目以确保包含依赖项。

杂项

有时,引入 InMobi SDK 可能会导致 Android dex 文件中可打包的方法数超过 64K 的限制。例如,如果您的应用为用户提供了大量功能,并且包含实现这些功能的大量代码,就可能出现这种情况。 

如果出现这种情况,您可以使用 multidex 支持库来正确构建您的应用程序。具体操作如下: 

  1. 修改默认配置,将您的应用程序标记为启用多dex模式: 

    • build.gradle

    build.gradle

  2. 在应用程序模块的构建脚本的 dependencies 元素中添加以下行。 

    • build.gradle

    build.gradle


添加依赖项后,此时您的应用程序的 build.gradle 文件将如下所示: 

  • build.gradle

build.gradle

其他配置

授予权限

强烈建议您启用此功能ACCESS_FINE_LOCATION以提升广告定向效果。这不是强制性权限,但启用后将有助于实现更精准的广告定向。

  • AndroidManifest.xml

AndroidManifest.xml

为了进一步提高定位精度,您可以将权限添加ACCESS_WIFI_STATECHANGE_WIFI_STATE清单中。

  • AndroidManifest.xml

AndroidManifest.xml

现在,Google 要求使用 Android 广告 ID (AAID) 的应用开发者,AD_ID在应用目标平台为 Android 13 或更高版本时,必须声明该权限。您可以按如下方式在清单文件中声明 AD_ID 权限:

  • AndroidManifest.xml

AndroidManifest.xml

硬件加速

硬件加速功能允许您显示 HTML5 视频广告。为此,请将hardwareAccelerated:true元素添加到application<head> 标签中。

  • AndroidManifest.xml

AndroidManifest.xml

Proguard 配置

Proguard 有助于移除未使用的符号,从而减小最终应用程序的体积。以下 Proguard 指令应添加到应用程序的 Proguard 配置文件中:

  • build.gradle

build.gradle

重要先决条件

在开始初始化 SDK 之前,我们先暂停一下,进行一些检查:

检查点:为 AndroidX 准备您的应用

InMobi SDK 与 AndroidX (JetPack) 库兼容。如果您的应用使用了 AndroidX 库,则 InMobi SDK 9.1.7 或更高版本均符合 AndroidX 的要求。InMobi SDK 无需启用 Jetifier。在移除 Jetifier 之前,请检查是否有其他依赖项需要启用它。但是,如果您使用的是低于 9.1.7 的版本,请按照Google的标准迁移指南,在构建文件中添加相应的标志。

  • gradle.properties

gradle.properties

强烈建议Android Gradle 插件版本升级到 4.1 或更高版本,以避免 Jetifier 中已知的已知问题(这些问题已在新版 Gradle 插件中修复)。要升级 Android Gradle 插件版本,请参阅Android 开发者文档

正在初始化 SDK

笔记

使用单个 InMobi 帐户 ID 即可在所有集成路径中实现应用变现。这包括直接 SDK 集成、中介、竞价前、竞价后以及任何其他受支持的集成模型。不支持为同一应用集成使用多个帐户 ID。

重要的

InMobi SDK 11.1.0 及更高版本现已完全支持 Android 16。为了与这些更改保持一致,请注意以下更新:

  • 最低 Kotlin 版本:2.xx
  • 最低 Kotlin 标准库版本:2.xx
  • 最低 Android Gradle 插件 (AGP) 版本:8.9.3

这些更新确保了运行 Android 16 及更高版本的设备的兼容性和持续性能。有关 Google Play 商店规定的更多详细信息,请参阅Google 的官方指南

使用 init API 初始化 SDK,方法是在启动器 Activity 中传递上下文、InMobi 帐户 ID 和 SdkInitialization 监听器。发布商现在可以通过完成回调来检查初始化是否成功。初始化完成后,应处理所有广告集成。如果监听器为空,SDK 将使用默认设置启动,并在应用生命周期的后期获取更新后的设置。

记住

必须在 UI 线程上调用此方法。否则,初始化将失败,并影响您的应用程序通过 InMobi 实现盈利的能力。

笔记

  • 从 10.7.5 版本开始,如果发布商与 CMP 集成, SDK 会自动检测并检索 TCF 和 GPP 字符串。
  • 根据《通用数据保护条例》(GDPR),在欧洲经济区 (EEA) 内,应用内收集数据的发布商必须具备处理用户个人数据的合法依据。请确保在向 InMobi 向欧洲地区发送广告请求前,已获得用户的适当同意。请确保未经用户同意,不得在欧洲传递任何用户人口统计信息。
  • 对于 SDK 版本 10.7.4 及以下版本,发布商必须在 SDK 初始化期间手动提供 TCF 和 GPP 字符串
  • JavaMainActivity.java
  • KotlinMainActivity.kts

Java MainActivity.java

Kotlin MainActivity.kts

仅适用于 Android SDK 版本 10.7.4 及以下版本

什么是 consentObject? consentObject 是一个 JSONObject 对象,它表示发布商向 SDK 提供的所有类型的同意信息。如果您希望通过欧洲经济区 (EEA) 的流量获利,则此密钥是必需的;InMobi 依赖发布商获取用户同意以遵守相关法规。您可以在此处阅读更多关于 GDPR 法规的信息。
钥匙 类型 推理
GDPR 同意 细绳 同意字符串是一系列数字,用于标识广告技术供应商的同意状态。

字符串必须遵循此处提到的 IAB 合约。

密钥 gdpr_consent 可通过字符串常量 IM_GDPR_CONSENT_IAB 访问。

gdpr_consent_available 布尔值

是:发布商已同意收集和使用用户数据。

错误: - 发布者未提供收集和使用用户数据的同意。

除“true”和“false”之外的任何值均无效,并将被视为发布者未提供的值,即空值。

可以通过字符串常量 IM_GDPR_CONSENT_AVAILABLE 访问密钥 gdpr_consent_available。

GDPR 细绳 无论请求是否受 GDPR 法规约束,偏离设定值(0 = 否,1 = 是)均表示未知实体。
  1. 您需要consentObject在每次会话中提供授权信息。SDK 不会持久保存授权信息,它只会将其保存consentObject在内存中。如果应用重新启动或崩溃,SDK 将丢失授权信息consentObject
  2. 在会话期间,您可以通过以下方式更新同意信息:

    • JavaMainActivity.java
    • KotlinMainActivity.kts

    Java MainActivity.java

    Kotlin MainActivity.kts

  3. 根据《通用数据保护条例》(GDPR),应用发布商在收集应用数据时,必须具备收集和处理欧洲经济区 (EEA) 用户个人数据的合法依据。请确保在向 InMobi 向欧洲地区发送广告请求前,已获得用户的适当同意。如果您未获得欧洲用户同意,请勿传递任何用户的统计信息。

优化

A. 传递位置信号以实现更精准的广告投放

受到推崇的

如果您的应用会收集用户位置数据,我们建议您将其与 InMobi 共享,因为位置信息丰富的广告展示通常能带来更高的收益。InMobi SDK 会在位置信号可用时自动转发。如果您不想共享此数据,请在InMobi 控制面板中选择“不允许共享”。这样, InMobi 将无法访问此应用为您的房源收集的位置数据

否则,您可以按如下方式传递位置信号:

  • JavaMainActivity.java
  • KotlinMainActivity.kts

Java MainActivity.java

Kotlin MainActivity.kts

或者,您也可以设置城市、州/省和国家/地区:

  • JavaMainActivity.java
  • KotlinMainActivity.kts

Java MainActivity.java

Kotlin MainActivity.kts

B. 传递人口统计信号,以实现更精准的广告投放

InMobi 依赖发布商根据 GDPR 的规定,获取用户的明确同意才能在欧盟开展业务活动。您可以按如下方式向 InMobi SDK 提供性别和年龄信息:

  • JavaMainActivity.java
  • KotlinMainActivity.kts

Java MainActivity.java

Kotlin MainActivity.kts

受到推崇的

传递位置信号有助于更好地进行广告定向,并确保在您的应用上投放的广告与用户的内容相关且高度相关。

C. 儿童隐私和家庭应用

我们建议您同时使用年龄限制信息,以遵守相关政策,例如 Google 家庭应用的数据实践政策。您必须根据用户的地理位置数据来确定年龄限制的定义。如果该值设置为 True,InMobi SDK 将不会传输设备标识符,例如 Android 中的“AAID”和 iOS 中的“IDFA”。请注意,默认值为 False。

  • JavaMainActivity.java
  • KotlinMainActivity.kts

Java MainActivity.java

Kotlin MainActivity.kts

D. AD_ID 权限(Android 广告 ID)

AD_ID根据谷歌的公告, 使用 Android 广告 ID 的应用开发者,如果应用的目标平台是 Android 13 或更高版本,则必须声明 该权限。如果AD_ID未声明该权限,系统将显示一串零。

InMobi SDKAD_ID从 10.0.5 版本开始支持该权限。要面向 Android 13 及更高版本,您可以AD_ID在清单文件中按如下方式声明该权限:

  • AndroidManifest.xml

AndroidManifest.xml

您现在一切就绪!接下来,我们来看看如何设置不同的广告格式并开始盈利。准备好了吗?

本页内容

最后更新于 : 02 Sep, 2026