Skip to main content

集成说明

一、简介#

本文档主要介绍在Android项目中如何集成 TradPlus的SDK:

  • 支持的广告类型有:原生、Draw信息流、横幅、开屏、插屏、激励视频等;
  • 支持Android 16以上的应用;
  • 建议先注册TradPlus账户,并添加应用;
  • Android集成时,海外和国内广告必须分包集成,否则会出现集成上的冲突;
  • 如果集成国内广告源的版本发布到Google Play上,应用会无法上架。

二、集成步骤#

  • 1、下载TradPlus SDK
  • 2、配置AndroidManifest文件
  • 3、添加混淆文件
  • 4、初始化SDK

三、下载TradPlus SDK#

  • 2、通过点击生成接入代码,获取所需三方源Maven引入,如图:

  • 3、点击下载地址,获取某些三方源所需aar文件,如图:

下载SDK的压缩包,解压后TradPlusSDK_Android的文件夹里面会有以下内容:

  • third-party_libs :某些三方平台SDK集成所需aar包文件
  • res:原生广告所需布局文件(有集成需要就导入,没有则不需要导入)

四、配置AndroidManifest文件#

1、添加权限#

在AndroidManifest.xml清单文件中,根据你所接入的广告源选择对应的权限进行配置

国内海外必须添加的权限#

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

注意:TradPlus SDK中已经添加

国内接入某些源必须添加的权限#

<!--广告网络:有道、Sigmob 必须添加-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!-- 广告网络:头条穿山甲(国内):如果有视频相关的广告且使用textureView播放,请务必添加,否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK"/>

海外接入某些源必须添加的权限#

<!-- 广告网络:头条穿山甲(海外):如果有视频相关的广告且使用textureView播放,请务必添加,否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK"/>

可选权限#

<!-- 以下权限都是可选权限,不添加不会影响SDK的使用,但会影响广告匹配的精确度 -->
<!-- 广告网络:头条穿山甲(国内):建议添加“query_all_package”权限,穿山甲将通过此权限在Android R系统上判定广告对应的应用是否在用户的app上安装,避免投放错误的广告,以此提高用户的广告体验。若添加此权限,需要在您的用户隐私文档中声明! -->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
<!-- 广告网络:Smaato -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--广告网络:Tapjoy、头条穿山甲(国内)、腾讯优量汇 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!--广告网络:Vungle、Adcolony、头条穿山甲(国内)-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18"/>
<!--广告网络:Mopub、腾讯优量汇、头条穿山甲(国内)-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!--广告网络:Adcolony -->
<uses-permission android:name="android.permission.VIBRATE"/>
<!--广告网络:头条穿山甲(国内)、腾讯优量汇-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!--广告网络:头条穿山甲(国内)、腾讯优量汇-->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<!--广告网络:头条穿山甲(国内)-->
<uses-permission android:name="android.permission.GET_TASKS"/>

2、声明三方配置#

(1)如果聚合了Google Admob,需要在AndroidManifest.xml中添加App ID(value值在Admob后台创建),否则会直接Crash,有问题可参考Admob配置文档

<!--添加Google AdMob App ID-->
<!--官方测试APPID,正式上线更换-->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713"/>

(2)如果聚合了Applovin,则必须在AndroidManifest.xml中添加SDK KEY,有问题可参考Applovin的SDK Key 的获取方式

<!--AppLovin -->
<!--添加您的Applovin SDK Key-->
<meta-data
android:name="applovin.sdk.key"
android:value="YOUR_SDK_KEY_HERE" />

(3)如果聚合了国内的腾讯优量汇,需要添加 provider 标签

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

注意其中gdt_file_path.xml已经写入三方Adapter资源包中

(4)如果聚合了国内的Mintegral (AndroidX的版本支持MTG),需要添加 provider 标签

  • 注意⚠️:6.X 以上才需要添加,5.X版本写入到了三方adapter中
<!--Android X China-Mainland Traffic app required, Oversea Traffic app can be ignore-->
<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>

注意其中mb_provider_paths.xml已经写入三方资源包中

(5)如果聚合了Smaato, Android targetSdkVersion 版本在5.0 (API level 21) 以上,则必须在AndroidManifest.xml中添加如下内容,了解更多Smaato integration

<uses-feature android:name="android.hardware.location.network" />

3、Android 9 适配#

  • 如果您使用Android 9.0及以上版本,还需要在AndroidManifest.xml中新增以下配置:
<application>
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
</application>
  • 集成国内源需要添加,集成海外源上GP的请忽略 : 兼容部分第三方广告SDK存在Http请求,需要在AndroidManifest.xml的application标签中加入android:networkSecurityConfig的配置:
<application
android:networkSecurityConfig="@xml/network_security_config"
>
</application>

其中在项目的res/xml文件夹中新增network_security_config.xml,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>

五、混淆配置#

如果APP需要混淆,则您需要加入:

-keep public class com.tradplus.** { *; }
-keep class com.tradplus.ads.** { *; }

六、初始化SDK#

建议在Application中初始化SDK,如果应用DAU统计是UI DAU,那么建议在activity中初始化SDK。

  • V6.X新接口
//AppId是应用Id,需要去开发者后台添加APP后获取
TradPlusSdk.initSdk(context,"APPID");
  • V5.X旧接口
//AppId是应用Id,需要去开发者后台添加APP后获取
TradPlus.invoker().initSDK(context,"APPID");

获取位置如下图所示:

七、其他功能#

V6.9.1新增API

  • 广告位对象创建后调用,这两个方法对全局设置有效。
  • 为防止游戏过程中补充过期广告会占用带宽,可以调用setAutoExpiration(),传false关闭每隔5分钟自动过期检测。默认true,将自动进行广告过期检测。
  • 如果调用setAutoExpiration()关闭过期检测,那么在游戏即将展示广告前要调用checkAutoExpiration()来触发一次广告过期检测。
// 关闭每隔5分钟自动过期检测
setAutoExpiration(false);
// 可主动触发过期检测(如有失效广告会触发加载)
checkAutoExpiration()

国内发布设置OAID

  • 初始化SDK前调用该方法
//true获取,false不获取;默认是false
TradPlusSdk.setAuthUID(context, true);