注意:此版本SDK不适用于中国以外的安卓商店/渠道。开发者如果有海外流量对接需求,烦请发送邮件至pangle_support@bytedance.com,以便获取到正确的海外专属安卓SDK版本进行对接。
注意 :我们建议您使用Gradle依赖更轻松地管理 Android Studio 项目的库依赖项,而不是直接下载并安装 SDK。
版本 | v6.4.1.1 |
MD5值 | 6236ff45f95df80123993003fa810f69 |
从穿山甲3.5.0.6版本开始,开发者也可以使用Gradle依赖导入穿山甲SDK
步骤一:添加仓库
在project级别的build.gradle文件中添加Maven的引用,url 'https://artifact.bytedance.com/repository/pangle'
示例:
步骤二:添加依赖
在主module的build.gradle文件添加SDK依赖
Gradle版本要求:
自3400版本开始,穿山甲支持了Android R,引入了Android R的 <queries> 标签,需要对gradle版本进行限制,限制范围为:3.3.3、 3.4.3、 3.5.4、3.6.4、4.0.1 ,开发者根据自身情况酌情升级
导入aar及SDK依赖的jar包
将本SDK压缩包内的open_ad_sdk.aar复制到Application Module/libs文件夹(没有的话须手动创建), 并将以下代码添加到您app的build.gradle中:
添加权限
注意: 穿山甲SDK不强制获取以上权限,即使没有获取可选权限SDK也能正常运行;获取以上权限将帮助穿山甲优化投放广告精准度和用户的交互体验,提高eCPM。
建议在广告请求前,合适的时机调用SDK提供的方法,在用户可以授权的情况下获取到声明中的权限,提高广告变现效率
注意:
(1)为不影响下载类型广告使用 无论APP处于任何阶段provider
都需要在清单文件中正常配置
(2)为不影响到广告的转化及收益 请务必在清单文件中配置xxx.TTMultiProvider
(3)${applicationId} 必须与开发者包名保持一致,否则会引发崩溃问题
适配Anroid7.0及以上如果您的应用需要在Anroid7.0及以上环境运行,请在AndroidManifest
中添加如下代码:
在res/xml目录下,新建一个xml文件file_paths,在该文件中添加如下代码:
为了适配下载和安装相关功能,在工程中引用的包 com.android.support:support-v4:28.0.0
使用28.0.0以及以上版本
注意:单进程或多进程都必须配置
本SDK可运行于Android5.0 (API Level 21) 及以上版本。<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="30" />
如果开发者声明targetSdkVersion到API 23以上,请确保调用本SDK的任何接口前,已经申请到了SDK要求的所有权限,否则SDK部分特性可能受限
代码混淆
如果您需要使用proguard混淆代码,需确保不要混淆SDK的代码。以aar包里的混淆文件为准
注意: SDK代码被混淆后会导致广告无法展现或者其它异常
支持架构
注意: 3900以及以上版本SDK默认支持armeabi-v7a,arm64-v8a两种架构,如果有其他架构(armeabi架构)需求,请联系技术支持同学;
您可以在应用中的build.gradle
中使用abiFilters
选择支持的架构。如下所示:
注意:平台SDK包中whiteList.txt 白名单上的资源不支持混淆
穿山甲SDK需要在主线程中初始化
多进程涉及WebView的使用,用户想要使用自己的数据路径,可以在SDK初始化之前调用WebView.setDataDirectorySuffix()
接入过程中,强烈建议双端分别使用各自的应用ID进行测试,不要混用,否则可能会影响收益。
.allowShowNotify(true) //是否允许sdk展示通知栏提示,默认为true,若设置为false则会导致通知栏不显示下载进度,存在违规风险,请勿随意更改。
开发者需要在用户同意APP的隐私政策之后调用以下代码来初始化穿山甲SDK。重点: 目前SDK已支持多进程,如果明确某个进程不会使用到广告SDK,可以只针对特定进程初始化广告SDK。
注意: appId为必填内容,若appid是通过服务端下发的,那么在初始化前需要做不为空的判断。
穿山甲在3450版本开始支持了同步初始化和异步初始化两种方式,并且TTAdConfig.Builder中支持异步初始化API将不再生效。优化后同步初始化和异步初始化两种方式的耗时没有显著差异,后者将部分初始化逻辑放到了子线程。穿山甲48xx版本开始正式废弃了同步初始化,开发者需要在success回调之后再去请求广告。
重点说明:若您接入的是穿山甲Pro版本的SDK,则只能使用异步初始化的方式。同时混淆规则也要同步调整。
穿山甲SDK初始化API:该API必须在主线程中调用,穿山甲会将初始化操作放在子线程执行。
V>=58XX
TTAdSdk.init返回值变成boolean
新增返回是否调用TTAdSDk.start成功的状态接口TTAdSdk.isSdkReady
V>=56XX
TTAdSdk.init仅进行初始化,不会获取个人信息, 如果要展示广告,需要再调用TTAdSdk.start方法
在TTAdSdk
新增Callback回调,替换掉原来的InitCallback回调
V< 56XX
fail回调状态码
value | 说明 |
4000 | 本地执行API错误导致初始化错误码 |
4201 |
复制
|
48xx版本开始SDK同步初始化方法正式废弃
注意
TTAdManager对象为整个SDK的入口接口,可用于广告获取、权限请求、版本号获取等
①TTAdManagerHolder保持单例模式。
②单进程多次初始化SDK以第一次初始设置的信息为主。
③appId是平台上创建应用生成的7位数字。
④任何类型的视频广告加载后播放出现黑屏都可以按以下方式尝试解决:
⑤appName不为空即可,建议和平台创建的应用名称保持一致。
⑥supportMultiProcess说明:
⑦provider配置
⑧如果您的应用对资源也进行混淆(如andResGuard),请不要混淆穿山甲的任何资源,防止资源找不到而发生崩溃的问题。
⑨SDK压缩文件内whiteList.txt 白名单上的资源不支持混淆 ,开发者在SDK更新迭代过程中需要重新检查一遍白名单内容。
⑩回调方法不执行
在线客服智能客服 7*24小时在线人工客服 工作日 10~12点/14~19点