
请您注册登录穿山甲后台,在后台中接入中心下载穿山甲 SDK并接入,下载具体入口如下:
在开发者平台进入“接入与测试”-“广告变现”,可下载对应SDK并查看接入文档, 点击跳转
此版本SDK不适用于中国以外的安卓商店/渠道。开发者如果有海外流量对接需求,可前往Pangle官网咨询,以便获取到正确的海外专属SDK版本。
Manifest merger failed : uses-sdk:minSdkVersion xx cannot be smaller than version 24 declared in library csj相关库 /Users/xxx/AndroidManifest.xml问题,可参考以下2种解决方案,选择其一即可,也可参考官方解决。tools : overrideLibrary标签解决,如果开发者主项目清单已经有tools.overrideLibrary标签,则在已有包名后,增加穿山甲相关库名,并以逗号隔开,如果主项目清单没有该标签,则新增该标签再添加相关库名implementation 'com.squareup.okhttp3:okhttp:3.12.1'我们建议您使用Gradle依赖更轻松地管理 Android Studio 项目的库依赖,而不是直接下载并安装 SDK。
版本 | v7.5.1.7 |
MD5值 | 81e329ad9560f78263ac9359587cc266 |
步骤一:添加仓库
AGP版本要求:AGP版本要求>= 3.3.3 ,开发者可根据自身情况进行升级
在project级别的build.gradle文件中添加Maven的引用
步骤二:添加依赖
在主module的build.gradle文件添加SDK依赖,sdk版本请以穿山甲平台接入中心披露的版本号为准
导入aar及SDK依赖的jar包:将平台下载的SDK解压后获得的open_ad_sdk.aar复制到Application Module/libs文件夹(没有的话须手动创建), 并将以下代码添加到您app的build.gradle中:
SDK隐私协议及获取用途 请点击查看详情 link
注意: 穿山甲SDK不强制获取以上权限,即使没有获取可选权限SDK也能正常运行;建议在广告请求前合适的时机调用SDK提供的方法获取以上权限,将帮助穿山甲优化投放广告精准度和用户的交互体验,提高eCPM。
provider都需要在清单文件中正常配置,如果您的应用需要在Anroid7.0及以上环境运行,请在AndroidManifest中添加如下代码:在res/xml目录下,新建一个xml文件file_paths,在该文件中添加如下代码:
com.android.support:support-v4:28.0.0,建议使用28.0.0以及以上版本广告SDK可运行于Android 7.0 (API Level 24) 及以上版本。<uses-sdk android:minSdkVersion="24" android:targetSdkVersion="30" />
如果开发者声明targetSdkVersion到API 23以上,请确保调用本SDK的任何接口前,已经申请到了SDK要求的所有权限,否则SDK部分特性可能受限
75xx及以上:SDK默认支持arm64-v8a
75xx以下:SDK默认支持armeabi-v7a,arm64-v8a两种架构
如果有其他架构(armeabi架构)需求,请联系技术支持同学获取;
您可以在应用中的build.gradle中使用abiFilters选择支持的架构。如下所示:
如果您需要使用proguard混淆代码,需确保不要混淆SDK的代码。以aar包里的混淆文件为准, SDK代码被混淆后会导致广告无法展现或者其它异常
从平台下载的SDK包中whiteList.txt 白名单上的资源不支持混淆,未成功 keep 白名单内的资源,会导致穿山甲部分资源被清理,进而出现广告无法展示、崩溃等问题。
注意事项
supportMultiProcess必须更改为false;若项目是多进程,supportMultiProcess则需要设置true。多进程中如果每个进程中都需要展示广告, 则每个进程都需进行SDK的初始化操作 ;多进程涉及WebView的使用,用户想要使用自己的数据路径,可以在SDK初始化之前调用WebView.setDataDirectorySuffix()判断多进程方法:a、穿山甲sdk初始化,b、穿山甲广告获取,c、穿山甲广告展示 这三个关键点的调用在不同进程则为多进程,多进程效率不如单进程高,如非必要尽量不要使用多进程开关,TTAdSdk.init仅进行初始化,不会获取个人信息,需要在隐私协议后调用TTAdSdk.start方法及广告请求
穿山甲SDK初始化API必须在主线程中调用,穿山甲会将初始化操作放在子线程执行。
调用TTAdSdk.start后,可以通过TTAdSdk.isSdkReady判断初始化状态
初始化失败状态码
错误码 | 说明 |
4000 | 本地执行API错误导致初始化错误码 |
4201 | 1. SDK需要依赖 appcompat-v7 库;复制 implementation "com.android.support:appcompat-v7:28.0.0" |
TTAdManager对象为整个SDK的入口接口,可用于广告获取、权限请求、版本号获取等
方法 | 返回类型 | 说明 |
createAdNative(Context context) | TTAdNative | 创建广告对象TTAdNative |
requestPermissionIfNecessary(Context context) | void | 部分机型需要主动申请权限,如 READ_PHONE_STATE权限 |
tryShowInstallDialogWhenExit(Context context, final ExitInstallListener listener) | boolean | 退出时尝试显示"提示安装app"对话框 :true显示对话框;false不显示对话框 |
getSDKVersion() | String | 获取穿山甲sdk版本号 |
setThemeStatus(int themeStatus) | void | 设置主题类型,0:正常模式;1:夜间模式;默认为0;传非法值,按照0处理 |
getThemeStatus() | int | 获取当前主题类型 |
注意事项
方法 | 返回类型 | 说明 |
isCanUseLocation() | boolean | 是否允许SDK主动使用地理位置信息: true可以获取,false禁止获取。默认为true |
getTTLocation() | TTLocation | 地理位置参数,当isCanUseLocation=false时,可传入地理位置信息,穿山甲sdk使用您传入的地理位置信息 |
isCanUsePhoneState() | boolean | 是否允许SDK主动使用手机硬件参数,如:imei |
getDevImei() | String | 当isCanUsePhoneState=false时,可传入imei信息,穿山甲sdk使用您传入的imei信息 |
isCanUseWifiState() | boolean | 是否允许SDK主动使用ACCESS_WIFI_STATE权限 |
isCanUseWriteExternal() | boolean | 是否允许SDK主动使用WRITE_EXTERNAL_STORAGE权限 |
getDevOaid() | String | 开发者可以传入oaid |
alist() | boolean | 是否允许SDK主动获取设备上应用安装列表的采集权限 |
isCanUseAndroidId() | boolean | 是否允许SDK降低ANDROID_ID的采集频率 |
isCanUsePermissionRecordAudio() | boolean | 是否允许SDK在申明和授权了的情况下使用录音权限 |
Map<String,Object> map = new HashMap<String,Object>(); | Map | 支持传入"motion_info"字段表示是否允许采集传感器。 0不允许采集,1允许采集,传其他值或不实现该协议方法默认为采集 |
开发者可以调用接口,向用户提供退出个性化广告的能力。退出后看到的广告相关度会降低,详细使用请参考个性化广告设置
开发者通过穿山甲提供的接口回传的用户年龄设置需配合穿山甲媒体平台配置使用,两者缺一不可,否则无法生效。详细使用请参考屏蔽未成年广告限制
在线客服智能客服 7*24小时在线人工客服 工作日 10~12点/14~19点