Android SDK配置
请开发者根据下面步骤介绍集成SDK所需配置,跳过或漏看会导致集成失败。
Android平台导入
1.Editor 2019 及以上版本
(1)生成Gradle和AndroidManifest.xml文件
按照下图,生成baseProjectTemplate.gradle、mainTemplate.gradle和AndroidManifest.xml文件
(2)baseProjectTemplate.gradle配置-- 添加所需Maven库
在上图生成的baseProjectTemplate.gradle
文件中引入所需Maven库,maven库的引用,根据TradPlusSDK下载平台生成代码为准
如下以开发者选择接入IrouSource举例说明
allprojects {
buildscript {
repositories {**ARTIFACTORYREPOSITORY**
mavenCentral() // TPSDK以及其他三方广告平台Maven库 必须添加
google() //必须添加
maven { url 'https://android-sdk.is.com/' } // IronSource的Maven库
jcenter() //放在所有Maven库最下面,以防三方平台走错Maven库导致拉取失败
}
...
}
repositories {**ARTIFACTORYREPOSITORY**
mavenCentral() // TPSDK以及其他三方广告平台Maven库 必须添加
google() //必须添加
maven { url 'https://android-sdk.is.com/' } // IronSource的Maven库
jcenter() //放在所有Maven库最下面,以防三方平台走错Maven库导致拉取失败
flatDir {
dirs "${project(':unityLibrary').projectDir}/libs"
}
}
}
...
(2)mainTemplate.gradle配置-- 添加所需Gradle
在上图生成的mainTemplate.gradle
文件中引入所需Gradle,根据TradPlusSDK下载平台生成代码为准进行配置,开发者直接添加引用到dependencies
中
2.Editor 2018
(1)mainTemplate.gradle文件生成并配置
如下图生成mainTempate.gradle文件
在上图生成的mainTemplate.gradle
文件中引入所需Gradle,根据TradPlusSDK下载平台生成代码为准进行配置,开发者直接添加引用到dependencies
中
(2)生成Manifest.xml文件
在unity的安装目录下,可以找到unity默认的AndroidManifest文件,复制到您的生成mainTempate.gradle的同级目录中
配置清单文件
- 下列文档中所提权限均是三方广告平台要求添加的权限
- 必加权限,会提醒说明
- 添加位置如下
应用清单添加声明,开发者需要在如下位置添加相应的 <uses-permission>
元素
<manifest >
<!--国内海外必须添加的联⽹权限——TP已经添加,开发者可不配置-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
(1)国内广告源
- 这部分权限三方平台SDK没有要求强制添加,即使没有获取可选权限SDK也能正常运行;获取以上权限将帮助三方平台优化投放广告精准度和用户的交互体验,提高eCPM
<!--获取设备标识IMEI。快手、Sigmob、有道、MTG国内-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--读写存储权限。快手、百度-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!--安装应⽤权限。快手、百度、MTG国内-->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<!-- MTG国内、穿山甲国内将通过此权限在Android R系统上判定广告对应的应用是否在用户的app上安装,避免投放错误的广告,以此提高用户的广告体验。 -->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
- 穿山甲国内SDK——必要权限
<!--必要权限,解决安全风险漏洞,发送和注册广播事件需要调用带有传递权限的接口-->
<permission
android:name="${applicationId}.openadsdk.permission.TT_PANGOLIN"
android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.openadsdk.permission.TT_PANGOLIN" />
<!-- 如果视频广告使用textureView播放,请务必添加,否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
(2)海外广告源
- Pangle SDK V45及以下——必要权限
<!--如果视频广告使用textureView播放,请务必添加,否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
- Android 12 以上,同意获取 Android Advertiser Identifier:
<uses-permission android:name="android.permission.Ad_ID" />
(3)可选权限
- 申请以下权限用于防作弊功能以及有助于广告平台投放广告
<!--可选权限,申请后用于防作弊功能以及有助于广告平台投放广告-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
配置三方声明
配置声明,是三方平台为了能让广告正常展示做的兼容性处理,开发者根据所接入的广告源在如下位置添加相应的 <meta-data>
和 <provider>
元素
<manifest>
<application>
<!-- 在这个位置添加meta-data -->
<meta-data
.../>
<!-- 在这个位置添加provider -->
<provider
...
</provider>
</application>
</manifest>
(1)Google Admob
-
开发者需要在AndroidManifest.xml中添加Admob application ID(以下简称:APPID)
-
以下代码块中App ID仅为测试使用,正式上线前需要替换成开发者自己申请的APPID,漏替换会导致线上无填充或一直下发测试广告。
-
android:value
中的App ID开发者可在Admob后台获取,如图
<!--Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713-->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
(2)Applovin
- 需要在AndroidManifest.xml中添加SDK KEY,需要登陆Applovin后台在Account-Keys中获取账户的SDK Key,如图:
- TPV7.3.0.1开始支持服务器下发SDK KEY,开发者仅需在TP后台配置即可,无需项目中添加此配置。
<!--AppLovin -->
<!--添加您的Applovin SDK Key-->
<meta-data
android:name="applovin.sdk.key"
android:value="YOUR_SDK_KEY_HERE" />
(3)Smaato
- Android targetSdkVersion 版本在5.0 (API level 21) 以上,则必须在AndroidManifest.xml中添加如下内容,了解更多Smaato integration
<uses-feature android:name="android.hardware.location.network" />
(4)腾讯优量汇GDT
- 如果您打包 App 时的 targetSdkVersion >= 24,为了让 SDK 能够正常下载、安装 App 类广告。需要在AndroidManifest.xml中添加
provider
标签 - 其中
gdt_file_path.xml
文件腾讯方直接写入GDT SDK中。如果没成功引入资源包,会报错找不到该文件。 - xml找不到,开发者需自行检查,项目中是否正常引入GDT SDK。
<provider
android:name="com.qq.e.comm.GDTFileProvider"
android:authorities="${applicationId}.gdt.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/gdt_file_path" />
</provider>
(5)国内的Mintegral
- 中国大陆流量版本必需,海外版本可以不添加
- 需要在AndroidManifest.xml中添加
provider
标签 - 其中
mb_provider_paths
文件TP直接写入MTG adapter中。如果没成功引入,会报错找不到该文件。 - xml找不到,开发者需自行检查,项目中是否正常引入MTG adapter。
<provider
android:name="com.mbridge.msdk.foundation.tools.MBFileProvider"
android:authorities="${applicationId}.mbFileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/mb_provider_paths"/>
</provider>
(6)头条穿山甲CSJ
- 需要在AndroidManifest.xml中添加
provider
标签 - 其中
file_paths .xml
文件TP直接写入toutiao adapter中。如果没成功引入,会报错找不到该文件。 - xml找不到,开发者需自行检查,项目中是否正常引入toutiao adapter。
<provider
android:name="com.bytedance.sdk.openadsdk.TTFileProvider"
android:authorities="${applicationId}.TTFileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
(7)国内Sigmob
- 其中
sigmob_provider_paths.xml
文件TP直接写入sigmob adapter中。如果没成功引入,会报错找不到该文件。 - xml找不到,开发者需自行检查,项目中是否正常引入sigmob adapter。
<!-- targetSDKVersion >= 24时才需要添加这个provider。
provider的authorities属性的值为${applicationId}.sigprovider -->
<provider
android:name="com.sigmob.sdk.SigmobFileProvider"
android:authorities="${applicationId}.sigprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/sigmob_provider_paths"/>
</provider>
(8)国内米盟Mimo
-
其中
file_paths.xml
文件TP直接写入mimo adapter中。如果没成功引入,会报错找不到该文件。 -
xml找不到,开发者需自行检查,项目中是否正常引入mimo adapter。
-
AndroidX 项目需要添加
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
- Android Support 项目需要添加
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
Android 9以上适配
注意:如果缺少该配置,可能会导致广告图片显示不出来
网络安全配置
Google为保证用户数据和设备的安全,针对Android 系统(Android P) 的应用程序要求默认使用加密连接。在Android P系统的设备上,如果应用使用的是非加密的明文流量的http网络请求,则会导致该应用无法进行网络请求,https则不会受影响;故开发者需要更改 App 的网络安全配置以允许此类连接。
Meta Audience Network举例说明:
- 从 Android 9 开始,明文流量(未加密的 HTTP)默认会被拦截,这会影响Meta SDK的媒体缓存功能,并可能影响用户体验和广告收入。
- 官方地址Meta Caching on Android 9
- 开发者可以为特定网域添加加密政策,从而仅允许传输加密流量,如网络域限制到127.0.0.1,代码示例如下: