English
Log In
You can then view all documents
GroMore/开发测试/GroMore Android集成文档/GroMore Android SDK接入文档/SDK集成与工程配置
SDK集成与工程配置
Last updated 2026-04-27 10:25:57

常见问题:

Q:接入融合SDK优点是什么?

A:可以快速实现从CSJ切换到聚合SDK。可以缩短开发者接入成本

Q:融合SDK 和穿山甲SDK,建议接入哪个SDK?

A:后续我们会高优维护融合SDK,建议接入融合SDK即可,融合SDK包含穿山甲SDK和GroMore SDK完整功能。

Q:融合SDK 和穿山甲SDK可以同时使用吗?是否会冲突?

A:融合SDK包含穿山甲SDK功能,mediation_sdk是基础库,必须引入,开发者通过初始化useMediation配置控制请求的是穿山甲还是聚合能力,若接入其他三方ADN,还需额外引入对应ADN的SDK和adaper。

一、接入须知

SDK包体可通过CSJ媒体平台->接入中心->广告变现->->SDK->GroMore聚合变现下载即可。

融合SDK支持接入多家ADN,开发者可参考[二、工程配置]按需添加对应的ADN的SDK和adapter

注意事项:

  1. SDK和adapter版本:以平台实际下载或上述[2.1 SDK版本适配说明]为准,三方adn和adapter版本不匹配可能会导致功能异常,若三方adn版本不在上述范围内,开发者需和三方adn确认改动范围,自行测试功能是否异常;
  2. mediation_sdk为基础库,必须引入,若使用聚合能力,初始化SDK时开启聚合开关.useMediation(true)即可;

二、工程配置

1. 注意事项

  1. 68版本起,穿山甲SDK仅支持minSdkVersion为24,即兼容的最小手机系统版本为7.0,7.0以下手机运行穿山甲SDK将会初始化失败、广告加载不成功,另外minSdkVersion相关工程编译问题可以参考如下:
    • 若开发者主项目minSdkVersion >= 24,可正常使用,忽略该项。
    • 如开发者主项目minSdkVersion < 24,编译过程遇到 Manifest merger failed : uses-sdk:minSdkVersion xx cannot be smaller than version 24 declared in library csj相关库 /Users/xxx/AndroidManifest.xml问题,可参考以下2种解决方案,选择其一即可,也可参考官方解决
      • 修改主项目的最低版本minSdkVersion为24即可解决;
      • 主项目AndroidManifest.xml调整tools:overrideLibrary标签解决,如果开发者主项目清单已经有tools.overrideLibrary标签,则在已有包名后,增加穿山甲相关库名,并以逗号隔开;如果主项目清单没有该标签,则新增该标签再添加相关库名
复制
  1. 需在项目的build.gradle中添加SDK下载库依赖项 implementation 'com.squareup.okhttp3:okhttp:3.12.1'

2. SDK集成

2.1 SDK版本适配说明

ADN

SDK版本范围

adapter版本

穿山甲(csj)

open_ad_sdk_v7.4.1.4

/

广点通(gdt)

>=4.611.1481,最新版本4.662.1532

gdt:4.662.1532.0

百度(baidu)

9.17~9.423,最新版本9.423

baidu:9.423.3

快手(ks)

3.3.17~4.11.20.1,最新版本4.11.20.1

ks:4.11.20.1.0

Sigmob

== windAd-4.25.2

sigmob:4.25.2.0;sigmob_common:1.8.6


2.2 Maven 集成

步骤一:添加仓库

project级别的build.gradle文件中添加Maven的引用

复制

步骤二:添加依赖

融合SDK支持接入多家ADN,开发者可在主modulebuild.gradle文件按需添加对应的ADN的SDK和adapter

注意事项:

  1. SDK和adapter版本:以平台实际下载或上述[2.1 SDK版本适配说明]为准,三方adn和adapter版本不匹配可能会导致功能异常,若三方adn版本不在上述范围内,开发者需和三方adn确认改动范围,自行测试功能是否异常;
  2. mediation_sdk为基础库,必须引入。
复制

2.3 手动集成

步骤一:下载SDK的压缩包

解压后的文件夹里面会有以下内容,开发者将对应的aar放到工程的libs目录下:

目录/文件

说明

open_ad_sdk_xxxx.aar

融合SDK的基础包,必须引入;包含穿山甲以及聚合请求广告功能,如果只接入穿山甲广告,那么只需引入open_ad_sdk即可



adapter

ADN对应的adapter文件夹,在平台勾选的adn对应的adapter会在该文件夹中。

//sigmob的adapter

mediation_sigmob_adapter_.xx.x.x.aar

//ks的adapter

mediation_ks_adapter_.x.xx.x.aar

//gdt的adapter

mediation_gdt_adapter_.xxx.xxxx.x.aar

//baidu的adapter

mediation_baidu_adapter_.xx.x.aar

adn

//baidu的aar

Baidu_MobAds_SDK_vxxx.aar

//gdt的aar

GDTSDK.unionNormal.xxxx.aar

//ks的aar

kssdk-ad-xxxx.aar

demo

demo项目源码:mediation目录下为融合demo示例源码

demo_xxxxx.apk

可直接安装的demo

tools-release.aar

测试工具,测试阶段使用,可单独测试各家ADN的广告的填充、展示、回调等实际场景,不可带到线上

whiteList.txt

资源白名单,不可混淆,否则可能会出现资源找不到导致的crash;

步骤二:添加依赖

融合SDK支持接入多家ADN,开发者可在主modulebuild.gradle文件按需添加对应的ADN的SDK和adapter

注意事项:

  1. SDK和adapter版本:以平台实际下载或上述[2.1 SDK版本适配说明]为准,三方adn和adapter版本不匹配可能会导致功能异常,若三方adn版本不在上述范围内,开发者需和三方adn确认改动范围,自行测试功能是否异常;
  2. mediation_sdk为基础库,必须引入。
复制

3. AndroidManifest配置

3.1 权限配置

3.1.1 融合SDK所需权限

注意: 穿山甲SDK不强制获取以下权限,即使没有获取可选权限SDK也能正常运行;获取以下权限将帮助穿山甲优化投放广告精准度和用户的交互体验,提高ECPM。

SDK隐私协议及获取用途 >>

复制

3.1.2 三方ADN可选权限

复制

3.2 AndroidManifest及资源文件配置

3.2.1 穿山甲配置

  1. AndroidManifest 配置

若SDK版本<73xx版本,为不影响到广告的转化及收益,单进程或多进程请务必在清单文件中配置xxx.TTMultiProvider,73xx及以上版本则不需要配置TTMultiProvider

复制
  1. 在res/xml目录下,添加文件pangle_file_paths.xml,该配置中tt_external_xxx涉及系统公共目录,如项目不需要可以删除对应配置,仅保留tt_internal_xxx应用私有目录。
复制
  1. ${applicationId} 必须与开发者包名保持一致,否则会引发崩溃问题
  2. 为了适配下载和安装相关功能,在工程中引用的包 com.android.support:support-v4:28.0.0,建议使用28.0.0以及以上版本

3.2.2 百度配置

  1. AndroidManifest 配置
复制
  1. 在res/xml目录下,添加文件 bd_filepaths.xml
复制

3.2.3 广点通配置

  1. AndroidManifest 配置
复制
  1. 在res/xml目录下,添加文件 gdt_file_path.xml
复制

3.2.4 Sigmob配置

  1. AndroidManifest 配置(支持 Android Support V4)
复制
  1. 在res/xml目录下,添加文件 sigmob_provider_paths.xml
复制

3.2.4 快手配置

无需单独配置 AndroidManifest,以 ADN 官方文档为准。

4. 混淆配置

如果您需要使用proguard混淆代码,需确保不要混淆SDK的代码。 请在proguard-rules.pro文件(或其他混淆文件)尾部添加如下配置:

项目中如果使用AndResGuard资源混淆工具,需要使用SDK包中whiteList.txt 添加到白名单规则中

复制

5. 支持架构

SDK 默认仅支持 arm64-v8a 架构,在 build.gradle 中配置:

复制

三、初始化

1. SDK初始化说明

注意事项

  • 进程设置:SDK支持多进程,主进程必须初始化,其他进程若有使用到穿山甲广告业务也需要初始化(初始化包括init和start两部分),单进程多次初始化SDK以第一次初始设置的信息为主。
    • 若项目是单进程supportMultiProcess必须更改为false;
    • 若项目是多进程,supportMultiProcess则需要设置true
      • 多进程中如果每个进程中都需要展示广告, 则每个进程都需进行SDK的初始化操作 ;多进程涉及WebView的使用,用户想要使用自己的数据路径,可以在SDK初始化之前调用WebView.setDataDirectorySuffix()
      • >V7000,若 supportMultiProcess=true,穿山甲SDK会自动拉起downloader子进程。此时,必须在downloader子进程中初始化穿山甲SDK,否则会影响下载类型广告无法正常下载。

判断多进程方法:a、穿山甲sdk初始化,b、穿山甲广告获取,c、穿山甲广告展示 这三个关键点的调用在不同进程则为多进程,多进程效率不如单进程高,如非必要尽量不要使用多进程开关,

  • 初始化配置:
    • 融合 SDK 将同步初始化已接入的其他第三方 SDK,开发者不需要单独对其他三方SDK进行初始化操作,各SDK的初始化状态可以通过:① 测试工具;② 调试日志(打开debug开关,过滤Tme);开发者需确保在初始化success回调之后再去请求广告。
    • TTAdSdk.init仅进行初始化,不会获取个人信息,如果要展示广告,需要再调用TTAdSdk.start方法
    • useMediation设置:仅可设置一次,不支持后续二次修改。useMediation默认设置为false,即不使用聚合,仅使用穿山甲SDK功能,true代表开启聚合功能。
    • appId为必填内容(应用ID:5开头的7位数字),若appid是通过服务端下发的,那么在初始化前需要做不为空的判断。接入过程中强烈建议双端分别使用各自的应用ID进行测试,否则可能会影响收益。
    • allowShowNotify(true) 默认为true,即允许sdk展示通知栏提示,若设置为false则会导致通知栏不显示下载进度,存在违规风险,请勿随意更改。
  • provider配置
    • 无论单进程还是多进程都必须配置穿山甲所需provider
    • 无论平台应用处于测试状态还是正式状态都需要配置provider
    • SDK版本<V73xx,为了不影响广告的转化及收益,请务必在清单文件中配xxx.TTMultiProvider
  • 混淆配置:
    • 如果您的应用对资源进行混淆(如andResGuard),请不要混淆穿山甲的任何资源,防止资源找不到而发生崩溃的问题。
    • SDK压缩文件内whiteList.txt 白名单上的资源不支持混淆 ,开发者在SDK更新迭代过程中需要重新检查一遍白名单内容。

2. 初始化SDK示例

复制

3. 接口说明

3.1 TTAdSdk说明

初始化SDK、获取创建广告请求的manager对象、更新广告SDK配置

方法

返回值

说明

isSdkReady()

boolean

判断当前 SDK 是否已初始化完成并处于可用状态,用于在发起广告请求前做就绪性检查

init(Context var0, TTAdConfig var1)

boolean

使用应用 ContextTTAdConfig 初始化 TTAdSdk,内部会保存配置并执行真正的初始化逻辑,示例中始终返回 true 表示调用成功

start(Callback var0)

void

init 成功后调用,真正启动 SDK 并执行内部初始化流程,通过 Callback 回调初始化结果(成功/失败等)

getAdManager()

TTAdManager

获取 TTAdManager 实例,是创建各类广告请求对象(如 createAdNative() 等)的入口

getMediationManager()

IMediationManager

获取聚合管理器,获取广告加载信息、ecpm等信息

updateAdConfig(TTAdConfig var0)

void

运行期更新广告配置:同步 TTAdConfig 中的 extra_data,并在存在自定义隐私控制器或 initExtra 时,通过聚合管理器更新隐私配置和本地扩展参数

3.2 TTAdConfig.Builder说明

方法

返回值

说明

appId(String appId)

Builder

设置应用的AppId,用于初始化 SDK 时标识应用,必选参数

appName(String appName)

Builder

设置应用名称,用于展示或统计等场景,非必选参数

useMediation(boolean useMediation)

Builder

使用聚合功能一定要打开此开关,默认false

debug(boolean debug)

Builder

是否开启调试模式,一般用于开发、联调阶段

supportMultiProcess(boolean supportMultiProcess)


Builder


1.若应用为单进程 ,需将 supportMultiProcess 设置为 false(默认值)。

2.若应用为多进程 ,需将 supportMultiProcess 设置为 true,并确保所有涉及广告业务的子进程(包括downloader进程和自定义子进程)均初始化穿山甲SDK

3.开启多进程开关( supportMultiProcess=true)时,需同步配置各ADN的多进程支持,否则可能导致广告展示异常、收益受损。具体要求如下:

  • CSJ、YLH:无需额外设置。
  • KS、baidu、Sigmob、Mintegral :需在Android清单文件中为对应ADN的激励/全屏等广告Activity配置 android:multiprocess="true" 属性 。

allowShowNotify(boolean allowShowNotify)

Builder

是否允许展示通知栏提醒,建议允许,否则非商店下载类广告无法通过状态栏操作暂停,继续下载

directDownloadNetworkType(int networkTypes)

Builder

设置允许直接下载的网络类型(如 Wi-Fi、4G 等)

data(String data)

Builder

设置额外数据信息,适用于结构化用户信息传递或自定义参数( JSON格式:[{"name": "key", "value": "value"}]),可选设置

addExtra(String key, Object value)

Builder

添加额外的自定义扩展参数(键值对),可选设置

themeStatus(int themeStatus)

Builder

主体模式设置,0正常模式;1夜间模式;需初始化成功后调用

titleBarTheme(int titleBarTheme)

Builder

设置标题栏主题样式(例如深色/浅色等)

setPluginUpdateConfig(int config)

Builder

设置插件更新相关配置(如更新策略)

setMediationConfig(IMediationConfig config)

Builder

聚合特有配置,三方ADN自定义参数配置类,使用详见3.3 MediationConfig.Builder说明

setAgeGroup(int ageGroup)

Builder

设置用户年龄分组,用于合规和投放策略,设置年龄段,默认成年

paid(boolean paid)

Builder

设置应用是否为付费用户,回传利于模型持续优化效果,非必选参数

3.3 MediationConfig.Builder说明

方法

返回值

说明

setPublisherDid(String publisherDid)

Builder

设置 Publisher DID(发布者侧设备标识),用于向 SDK 透传自定义设备 ID

setOpenAdnTest(boolean openAdnTest)

Builder

可选参数,开启第三方ADN测试时需要设置为true,会每次重新拉取最新配置,release 包情况下必须关闭,默认false

setMediationConfigUserInfoForSegment(MediationConfigUserInfoForSegment userInfo)

Builder

设置聚合用户分群信息,用于分群投放或策略控制。流量分组详细使用请移步https://www.csjplatform.com/supportcenter/5855

setHttps(boolean https)

Builder

设置是否启用 HTTPS 请求

setCustomLocalConfig(JSONObject customLocalConfig)

Builder

设置自定义本地配置(JSON 结构),自定义兜底配置

setWxInstalled(boolean wxInstalled)

Builder

标记当前设备是否已安装微信,用于微信相关能力判断

setOpensdkVer(String opensdkVer)

Builder

设置 OpenSDK 版本号(例如微信/第三方 SDK 版本)

setSupportH265(boolean supportH265)

Builder

设置是否支持 H.265 视频编码格式播放

setWxAppId(String wxAppId)

Builder

设置微信 AppId,用于授权、分享等微信相关功能

3.4 隐私设置-TTCustomController说明

隐私设置类,通过TTAdConfig的customController(TTCustomController var1)来设置。

方法

返回值

说明

isCanUseLocation()

boolean

是否允许 SDK 使用系统定位能力(如 GPS、网络定位等),用于获取位置信息

getTTLocation()

LocationProvider | null

返回自定义的定位提供者,当你希望自行提供位置信息而不是由 SDK 直接调用系统定位时可重写该方法

alist()

boolean

是否允许SDK获取手机应用安装列表

isCanUsePhoneState()

boolean

是否允许 SDK 访问手机状态相关信息(如设备信息、网络状态等)

getDevImei()

String | null

返回自定义 IMEI,当isCanUsePhoneState为false时使用

isCanUseWifiState()

boolean

是否允许 SDK 访问 Wi‑Fi 状态信息(如当前 Wi‑Fi 连接情况)

getMacAddress()

String | null

返回自定义 MAC 地址,当isCanUseWifiState为alse时使用

isCanUseWriteExternal()

boolean

是否允许 SDK 写入外部存储(如保存下载广告APK、广告素材)

getDevOaid()

String | null

返回自定义 OAID,当且仅当SDK无法正常获取到oaid时使用该方法返回值

isCanUseAndroidId()

boolean

是否允许SDK降低ANDROID_ID的采集频率

getMediationPrivacyConfig()

IMediationPrivacyConfig | null

返回聚合/中介相关的隐私配置,用于更细粒度地控制第三方平台权限与数据使用

getAndroidId()

String | null

返回自定义的 Android ID,当isCanUseAndroidId为false时使用

isCanUsePermissionRecordAudio()

boolean

是否允许 SDK 使用录音权限(如语音类广告或音频采集场景)


userPrivacyConfig()

Map<String, Object>

返回一组用户隐私相关的配置项(键值对),用于统一控制 SDK 行为与合规策略

isCanUseMessage()

boolean

是否允许 SDK 使用消息相关能力(如展示消息类组件等),具体行为视 SDK 实现而定

3.5 隐私设置-MediationPrivacyConfig说明

聚合设置隐私类。

方法

返回值

说明

getCustomAppList()

List<String> / null

返回自定义的应用列表,默认返回一个新的空列表,将自己获取到的应用安装列表通过该接口提供给SDK

getCustomDevImeis()

List<String> / null

返回自定义的设备 IMEI 列表,默认返回一个新的空列表,将自己获取到的IMEI通过该接口提供给SDK

isCanUseOaid()

boolean

是否允许使用 OAID,默认 true

isLimitPersonalAds()

boolean

是否限制个性化广告,默认false 表示不限制 (允许个性化广告)

isProgrammaticRecommend()

boolean

是否开启程序化推荐,默认 true 表示开启(支持基于算法的推荐/投放)

3.6 TTAdSdk.Callback 说明

方法

说明

void success()

SDK初始化成功回调

void fail(int errorcode, String errorMsg)

SDK初始化失败回调

4. SDK初始化失败回调错误码说明

错误码

说明

4201

1. 需要依赖 appcompat-v7 库;implementation 'com.android.support:appcompat-v7:28.0.0'

2. 检查项目的CPU架构,架构不匹配时会提示该错误,SDK默认支持arm64-v8a架构;

3. 若为androidx项目,请检查androidx及gradle相关配置是否正确;

4. 如以上排查没有问题,可通过平台穿小甲智能客服反馈


Contents
Contact us