Skip to main content

集成说明

请开发者根据下面步骤进行集成,跳过或漏看会导致集成失败。

第一步:TradPlus自动打包平台下载SDK#

初次使用TradPlus的开发者,可通过如何使用打包平台正确接入SDK,项目漏集成会导致广告请求失败。

常见情况说明
集成某个源,漏集成其Adapter或该源SDK上线前注释该源的上线后广告会一直无法请求成功
项目工程是AndroidX的,但开发接的是Support的SDK上线会有Crash的可能。
这是由Android X和Support的库文件不同导致。
非Android开发的技术人员可Google或百度了解,这是Android的基础。
集成某个源,但引用不全请求该源时会因为缺少某个依赖导致Crash。

第二步:应用项目配置#

这部分属于Android开发的基础,非Android技术人员或初次接触Android的开发者,会不太了解AndroidManifest文件、混淆等,可Google或百度学习。

配置说明
配置AndroidManifest文件漏加会导致有些广告填充失败或展示异常
添加混淆配置项目开启混淆后,不加配置会影响正式包正常请求
接入原生广告,要配置广告资源白名单项目使用资源优化框架,不加会影响原生广告素材展示,比如广告展示一片空白

第三步:初始化SDK#

不初始化SDK,会直接影响后台统计DAU,导致数据不准确,直接增加运营工作难度。

第四步:接入具体广告类型#

  • 初次接触广告的开发者,可参考Google AdMob Ad Format(外网IP,国内流量可能会访问异常)稍微了解不同类型的广告,比如什么是横幅广告,一般展示在应用什么位置。

  • 文档中每个类型都有注意事情的说明,请开发者读完。

  • 同时可参考TradPlus SDK Demo

第五步:测试#

  • TradPlus 提供两种测试方式供开发者集成后测试广告。

  • 两种方法生效前提是开发者已经在后台配置了广告;没有配置广告,直接请求,不会拉取到策略。

  • 第一种需要开发者在TP后台开启测试模式

    • TP服务器会根据您指定开启测试模式的应用,下发广告策略。
    • 例如:开启应用ID为12345的快手激励视频的广告。开发者需要先清除应用缓存,然后初始化相同的应用ID同时请求激励视频,服务器会直接拉取配置好的快手广告。(Tip:初始化的应用ID错误或者,请求的是其他类型的广告一样会导致拉取失败哦)
  • 第二种开发者可直接使用三方平台提供的测试广告位进行测试。运营可直接将三方提供的测试广告位添加到TP后台,开发清除应用缓存后,拉取刚配置的广告进行测试。

  • 两种测试方法不可同时使用。

    测试模式

    三方测试ID

常用文档#

三、下载TradPlus SDK#

1、进入TradPlus自动打包平台,根据需求选择所需三方广告平台,如图:

对于开发者对打包平台的选择做解释说明

  • (1)选择发布地区:可用于区分国内源或是海外源。
    • 由于国内源由于权限问题不能发布到谷歌市场,所以集成国内源上架谷歌会导致APP无法上架。请开发者集成时候注意。
    • 穿山甲支持海外和国内,该源须分开导入项目,同时引入会有冲突。
  • (2)项目是否是AndroidX:可用于区分AndroidX还是Android Support Library。
    • AndroidX还是Android Support Library是Google支持的两个不同的库,同时引用会导致编译不过;
    • Android Support Library的项目集成AndroidX的版本,也会导致编译不通过,反之亦然;
    • 如何区分AndroidX和Android Support Library
  • (3)选择广告网络:以Meta(Facebook)为例,解释说明
    • Meta(Facebook):为三方广告平台
    • V6.5.1: 为TP集成Meta(Facebook)的版本
    • 激励视频等标签:为TP集成Meta(Facebook)平台所支持的广告类型
    • Header Bidding: 表明支持该源的Bidding。
  • (4)补充说明:大部分海外源提供Gradle引用,国内源提供三方aar包供开发者接入,但是部分三方平台有所出入,请依据打包平台生成接入代码为准。

2、通过点击生成接入代码,获取所需三方源Gradle和TP Adapter,如图:

以下举例,对于开发者选择IronSource和Pangle广告平台后生成接入代码的说明

repositories {
mavenCentral() // TPSDK以及其他三方广告平台Maven库 必须添加
google() //必须添加
maven { url 'https://android-sdk.is.com/' } // IronSource的Maven库
jcenter() //放在所有Maven库最下面,以防三方平台走错Maven库导致拉取失败
}
dependencies {
//开发者需根据项目中有无Gson的引入选择GDPR的引入,引入错误会导致编译不通过
// GDPR,项目没有gson
implementation 'com.google.android.ads.consent:consent-library:1.0.6'
// GDPR:预防 'gson' 冲突, 如果项目添加了gson
implementation ('com.google.android.ads.consent:consent-library:1.0.6'){
exclude module: 'gson'
}
//补充插件的引入,否则会集成失败
//noinspection GradleCompatible
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.3.0-alpha02'
// TPSDK
implementation 'com.tradplusad:tradplus:6.9.71.1'
// Ironsource
//TP 对 IrouSource 的Adapter Gradle引用
implementation 'com.tradplusad:tradplus-ironsource:10.6.9.71.1'
// IrouSource SDK Gradle引用
implementation 'com.ironsource.sdk:mediationsdk:7.1.7'
implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'
// Pangle (海外)
//TP 对 Pangle 的Adapter Gradle引用
implementation 'com.tradplusad:tradplus-pangle:19.6.9.71.1'
//Pangle SDK aar引用,aar可在步骤3点击下载地址后生成的third-party_libs文件中获取
implementation(name: 'open_ad_sdk_V3.9.0.5', ext:'aar')
}
注意事项:
  • (1)mavenCentral() 的引用需放在第一个,jcenter() 放在所有Maven库引用最后,以防止Gradle走错库导致拉取失败。
  • (2)开发者集成时需注意类似于implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'的引用整个项目只能存在一个版本,不同版本同时引用会导致编译不通过。
  • (3)GDPR的引用,开发者需根据项目中有无Gson的引入选择GDPR的引入,引入错误会导致编译不通过。

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

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

文件夹说明
res原生广告提供的模版布局。
third-party_libs根据开发者选择的三方平台生成的aar文件,需要配合步骤2生成接入代码使用。
请注意大部分海外源直接提供Gradle引入,不提供aar包;所以当开发者选择三方源全部为Gradle引入时,文件夹为空。

四、配置AndroidManifest文件#

开发者需要在AndroidManifest.xml清单文件中,根据开发者所接入的广告源进行配置。

4.1 添加权限#

请开发者根据权限声明进行配置。

4.2 声明三方配置#

请开发者根据三方配置声明进行配置。

4.3 Android 9 适配#

注意:如果缺少以下配置,可能导致广告图片显示不出来

网络安全配置#

Google为保证用户数据和设备的安全,针对Android 系统(Android P) 的应用程序要求默认使用加密连接。在Android P系统的设备上,如果应用使用的是非加密的明文流量的http网络请求,则会导致该应用无法进行网络请求,https则不会受影响;故开发者需要更改 App 的网络安全配置以允许此类连接。

  • 第一步需要在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>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">127.0.0.1</domain>
</network-security-config>

Apache HTTP 客户端弃用#

在 Android 6.0 中,SDK移除了对 Apache HTTP 客户端的支持。从 Android 9 开始,该内容库已从 bootclasspath 中移除,且默认情况下应用无法使用它。需要在AndroidManifest.xml中新增以下配置:

<application>
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
</application>

4.4 Android 11 适配#

集成海外源Mopub(V5.17.0或者更老的版本)需要添加queries 元素到AndroidManifest.xml。

<manifest >
...
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="*" />
</intent>
</queries>
</manifest>

4.5 Android 12 适配#

  • 集成AdmobIronSourceFyber上架Google Play市场的应用
    • 其中Admob 移动广告 SDK 版本 20.4.0 或更高版本已经默认声明该权限
  • 项目target更新到 31 (Android 12) ,则需要许可来读取设备的广告 ID。
  • 了解更多请查看Google Advertising ID changes
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
  • 集成Tapjoy V12.9.0 (TradPlus V7.7.0.1及以上),该SDK包括play-services-ads v17.1.0。对于Google Play Families Program成员,17.1.0版本 play-services-ads 中包括的AD_ID许可必须删除。
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>

4.6 视频广告的硬件加速#

  • 集成Meta(Facebook)MintegralChartBoost等视频广告需要启用硬件加速渲染,否则可能会在视频视图中遇到黑屏。
  • 将以下属性添加到<application>标记以启用整个应用程序的硬件加速
<application
android:hardwareAccelerated="true" >

五、混淆配置#

5.1 Proguard配置#

需要添加混淆文件,否则将导致打Release包时无法拉取到TP广告配置而请求广告失败。

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

5.2 资源优化#

广告SDK的资源不能被混淆,如果使用第三方的资源优化框架,请配置SDK的资源为白名单,例如:

# 接入原生、原生横幅、原生拼接开屏等广告类型
R.string.tp_*
R.drawable.tp_*
R.layout.tp_*
R.id.tp_*
# 集成交叉推广、adx
R.string.cp_*
R.drawable.cp_*
R.layout.cp_*
R.id.cp_*
# 集成游可赢Klevin
R.anim.klevin_*
R.color.klevin_*
R.drawable.klevin_*
R.id.klevin_*
R.layout.klevin_*
R.mipmap.klevin_*
R.string.klevin_*
R.integer.klevin_*
R.style.klevin_*
R.dimen.klevin_*
R.xml.klevin_*

六、初始化SDK#

建议在Application中初始化SDK,否则后台无法准确统计DAU。

  • 如果应用DAU统计是UI DAU,那么建议在activity中初始化SDK。
  • 注意这里是初始化TP的SDK,开发者需要填入的是在TradPlus开发者后台生成的应用ID

TradPlusSdk.initSdk(context,"TradPlus应用ID");

获取路径应用管理——>应用&广告位——>开发者添加的应用,具体位置如下图所示:

七、其他功能#

国内发布设置OAID#

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