中文
登录
后可查看全部文档
GroMore/开发测试/GroMore Android集成文档/GroMore Android SDK接入文档/SDK集成与工程配置
SDK集成与工程配置
最近更新 2026-03-19 17:01:23

常见问题:

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

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

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

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

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

A:融合SDK包含穿山甲SDK功能,仅引入一个融合SDK即可。

一、接入须知

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

融合SDK支持多家ADN,Android端可在demo包内libs路径下获取对应ADN的aar文件;开发者可按需接入对应的ADN 的SDK 和 adapter包

  • 穿山甲默认只引入open_ad_sdk_xxxx.aar包即可,若使用聚合能力,开启聚合开关.useMediation(true)即可;
  • 若只接入gdt广告 ,则只需引入gdt对应的aar和adapter即可(GDTSDK.unionNormal.x.xxx.xxxx.aar和mediation_gdt_adapter_x.xxx.xxxx.aar)其他的ADN的SDk包和adapter包则无需引入
复制

二、工程配置

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集成

SDK版本说明列表

ADN

SDK版本范围

adapter版本

穿山甲

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

Maven 集成

步骤一:添加仓库

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

复制

步骤二:添加依赖

在主modulebuild.gradle文件添加SDK依赖(需自行引入adn sdk)以及对应的adapter

复制

手动集成

融合SDK支持接入多家ADN,开发者可以按需接入对应的ADN的SDK和adapter

下载SDK的压缩包,解压后穿山甲Android_sdk_x.x.x.x_双架构的文件夹里面会有以下内容:

目录/文件

说明

open_ad_sdk_xxxx.aar

融合SDK aar(包含穿山甲以及聚合请求广告功能,如果只接入穿山甲广告,那么只需要此包即可),放置开发工程的libs目录下

融合SDK的基础包,必须引入;



adapter

ADN对应的adapter文件夹,在平台勾选的adn对应的adapter会在该文件夹中。将aar放置开发工程的libs目录下;

//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

mediation_sdk_test_tools.aar

融合SDK测试工具,可单独测试各家ADN的广告,放置开发工程的libs目录下

接入过程中可辅助开发者提前发现问题,不可带到线上

V>=5.3.6.1,测试工具合并,仅提供tools-release.aar包含聚合和CSJ测试功能,mediation_sdk_test_tools.aar不再单独提供且不能与tools-release.aar共用;

tools-release.aar

穿山甲测试工具,可单独测试代码位广告,放置开发工程的libs目录下

接入过程中可辅助开发者提前发现问题,不可带到线上

whiteList.txt

资源白名单,不可混淆

build.gradle 配置

复制

3、AndroidManifest配置

AndroidManifest 权限配置

融合SDK所需权限

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

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

复制

聚合三方ADN可选权限

复制

AndroidManifest 及资源文件配置

穿山甲配置

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

Baidu 配置

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

GDT 配置

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

Sigmob 配置

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

KS 配置

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

混淆配置

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

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

复制

支持架构

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、穿山甲广告展示 这三个关键点的调用在不同进程则为多进程,多进程效率不如单进程高,如非必要尽量不要使用多进程开关,

  • 初始化配置:
    • 开发者需确保在初始化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、接口说明

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、keywords,并在存在自定义隐私控制器或 initExtra 时,通过聚合管理器更新隐私配置和本地扩展参数

TTAdConfig.Builder说明:初始化SDK配置类。

方法名

返回值

说明

appId(String appId)

Builder

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

appName(String appName)

Builder

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

paid(boolean paid)

Builder

设置应用是否为付费用户,建议回传,利于模型持续优化效果;

keywords(String keywords)

Builder

用户画像的关键词列表

data(String data)

Builder

设置额外数据信息,一般用于扩展配置或自定义参数

titleBarTheme(int titleBarTheme)

Builder

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

allowShowNotify(boolean allowShowNotify)

Builder

是否允许展示通知栏提醒

debug(boolean debug)

Builder

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

directDownloadNetworkType(int networkTypes)

Builder

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

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" 属性 。

customController(TTCustomController controller)

Builder

设置自定义控制器,用于控制权限、权限弹窗等行为

themeStatus(int themeStatus)

Builder

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

setPluginUpdateConfig(int config)

Builder

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

setAgeGroup(int ageGroup)

Builder

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

addExtra(String key, Object value)

Builder

添加额外的自定义扩展参数(键值对)

useMediation(boolean useMediation)

Builder

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

setMediationConfig(IMediationConfig config)

Builder

设置聚合特有配置

MediationConfig.Builder说明:聚合三方ADN自定义参数配置类

方法名

返回值

说明

setPublisherDid(String publisherDid)

Builder

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

setOpenAdnTest(boolean openAdnTest)

Builder

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

setMediationConfigUserInfoForSegment(MediationConfigUserInfoForSegment userInfo)

Builder

设置聚合用户分群信息,用于分群投放或策略控制。流量分组信息的字段有校验规则,字符串类型的值只能是大小写字母,数字,下划线,连字符,字符个数100以内 ( [A-Za-z0-9-_]{1,100} ) ,不符合规则的信息将被过滤掉,不起作用。

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 视频编码格式播放

setSupportSplashZoomout(boolean supportSplashZoomout)

Builder

设置是否支持开屏广告缩小到小窗(zoomout)能力

setWxAppId(String wxAppId)

Builder

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

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 实现而定

MediationPrivacyConfig说明:聚合设置隐私类。

方法名

返回值

说明

getCustomAppList()

List<String> / null

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

getCustomDevImeis()

List<String> / null

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

isCanUseOaid()

boolean

是否允许使用 OAID,默认 true

isLimitPersonalAds()

boolean

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

isProgrammaticRecommend()

boolean

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

TTAdSdk.Callback 说明

方法名

说明

void success()

SDK初始化成功回调

void fail(int errorcode, String errorMsg)

SDK初始化失败回调

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

value

说明

4201

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

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

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

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


本篇目录
联系我们