帮助中心/文档详情/

Android集成

注意:此版本sdk不适用于中国以外的安卓商店/渠道。开发者如果有海外流量对接需求,烦请发送邮件至pangle_support@bytedance.com,以便获取到正确的海外专属安卓SDK版本进行对接。

SDK集成

申请应用的CodeId

请在穿山甲平台上创建好应用ID和广告位ID

方式一:导入aar及SDK依赖的jar包

将本SDK压缩包内的open_ad_sdk.aar复制到Application Module/libs文件夹(没有的话须手动创建), 并将以下代码添加到您app的build.gradle中:

repositories {
    flatDir {
        dirs 'libs'
    }
}
depedencies {
    compile(name: 'open_ad_sdk', ext: 'aar')
}

方式二:

从穿山甲3.5.0.6版本开始,开发者也可以使用Gradle依赖导入穿山甲SDK

步骤一:添加仓库

project级别的build.gradle文件中添加Maven的引用,url 'https://artifact.bytedance.com/repository/pangle'

示例:

allprojects {
    repositories {
        maven {
          url 'https://artifact.bytedance.com/repository/pangle'
            }
      }
}

步骤二:添加依赖

在主modulebuild.gradle文件添加SDK依赖

dependencies {
    implementation 'com.pangle.cn:ads-sdk:3.5.0.6'
}

特别说明

若您集成的是穿山甲插件化版本的SDK,那么可以通过以下方式对SDK进行引入
// rep
maven {
          url 'https://artifact.bytedance.com/repository/pangle'
      }
      
// dependencies
dependencies {
    implementation 'com.pangle.cn:ads-sdk-pro:3.6.2.5'
}  

Gradle版本要求:

自3400版本开始,穿山甲支持了Android R,引入了Android R的 <queries> 标签,需要对gradle版本进行限制,限制范围为:3.3.3、 3.4.3、 3.5.4、3.6.4、4.0.1 ,开发者根据自身情况酌情升级

AndroidManifest配置

添加权限

<!--必要权限-->
<uses-permission android:name="android.permission.INTERNET"  data-tomark-pass />

<!--可选权限-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"  data-tomark-pass />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"  data-tomark-pass />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"  data-tomark-pass />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"  data-tomark-pass />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"  data-tomark-pass />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" data-tomark-pass />
<uses-permission android:name="android.permission.GET_TASKS" data-tomark-pass />

<!--可选,穿山甲提供“获取地理位置权限”和“不给予地理位置权限,开发者传入地理位置参数”两种方式上报用户位置,两种方式均可不选,添加位置权限或参数将帮助投放定位广告-->
<!--请注意:无论通过何种方式提供给穿山甲用户地理位置,均需向用户声明地理位置权限将应用于穿山甲广告投放,穿山甲不强制获取地理位置信息-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"  data-tomark-pass />

<!-- 如果视频广告使用textureView播放,请务必添加,否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK"  data-tomark-pass />

<!--demo场景用到的权限,不是必须的-->
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT"  data-tomark-pass />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"  data-tomark-pass />
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"  data-tomark-pass />

<!-- 穿山甲3400版本新增:建议添加“query_all_package”权限,穿山甲将通过此权限在Android R系统上判定广告对应的应用是否在用户的app上安装,避免投放错误的广告,以此提高用户的广告体验。若添加此权限,需要在您的用户隐私文档中声明! -->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" data-tomark-pass />

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

建议在广告请求前,合适的时机调用SDK提供的方法,在用户可以授权的情况下获取到声明中的权限,提高广告变现效率

//TTAdManager接口中的方法,context可以是Activity或Application
void requestPermissionIfNecessary(Context context);

provider配置

注意
(1)为不影响下载类型广告使用 无论APP处于任何阶段provider都需要在清单文件中正常配置
(2)为不影响到广告的转化及收益 请务必在清单文件中配置xxx.TTMultiProvider

适配Anroid7.0及以上
如果您的应用需要在Anroid7.0及以上环境运行,请在AndroidManifest中添加如下代码:

<provider
    android:name="com.bytedance.sdk.openadsdk.TTFileProvider"
    android:authorities="${applicationId}.TTFileProvider"
    android:exported="false"
    android:grantUriPermissions="true" data-tomark-pass >
   <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths"  data-tomark-pass />
</provider>

在res/xml目录下,新建一个xml文件file_paths,在该文件中添加如下代码:

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android" data-tomark-pass >
   <!--为了适配所有路径可以设置 path = "." -->
   <external-path name="tt_external_root" path="."  data-tomark-pass />
   <external-path name="tt_external_download" path="Download"  data-tomark-pass />
   <external-files-path name="tt_external_files_download" path="Download"  data-tomark-pass />
   <files-path name="tt_internal_file_download" path="Download"  data-tomark-pass />
   <cache-path name="tt_internal_cache_download" path="Download"  data-tomark-pass />
</paths>

为了适配下载和安装相关功能,在工程中引用的包 com.android.support:support-v4:24.2.0
使用24.2.0以及以上版本

注意:单进程或多进程都必须配置

<provider
android:name="com.bytedance.sdk.openadsdk.multipro.TTMultiProvider"   android:authorities="${applicationId}.TTMultiProvider"   android:exported="false"  data-tomark-pass />

运行环境配置

本SDK可运行于Android4.0 (API Level 14) 及以上版本。
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="24" />

如果开发者声明targetSdkVersion到API 23以上,请确保调用本SDK的任何接口前,已经申请到了SDK要求的所有权限,否则SDK部分特性可能受限

代码混淆

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

-keep class com.bytedance.sdk.openadsdk.** { *; }
-keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}
-keep class com.pgl.sys.ces.** {*;}
-keep class com.bytedance.embed_dr.** {*;}
-keep class com.bytedance.embedapplog.** {*;}

注意: SDK代码被混淆后会导致广告无法展现或者其它异常

支持架构

注意: SDK中使用的so文件支持五种架构:x86,x86_64,armeabi,armeabi-v7a,arm64-v8a如果您应用中
支持的架构超出这 五种,请在build.gradle中使用abiFilters选择支持的架构。如下所示:

ndk { // 设置支持的 SO 库构架,注意这里要根据你的实际情况来设置 
   abiFilters 'armeabi-v7a', 'arm64-v8a', x86', x86_64', 'armeabi'
}

说明:
1、3600版本中穿山甲增加了libmetasec_ml.so 库。
2、3600版本若开发者使用armeabi架构,那么需要把armeabi-v7a下的 'libmetasec_ml.so'拷贝到armeabi目录下使用。

白名单配置

注意:平台SDK包中whiteList.txt 白名单上的资源不支持混淆

//sf3-fe-tos.pglstatp-toutiao.com/obj/ad-penny-bucket/b6eaa387520746f1ad63f30e3cd9dfd4
文档内容是否对您有帮助?
联系我们