Skip to main content

集成说明

一、简介#

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

  • 支持的广告类型有:横幅广告、插屏广告、激励视频广告、原生广告;
  • 针对v6.x版本的集成;
  • 建议先注册TradPlus账户,并添加应用;

二、集成步骤#

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

三、下载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的文件夹里面会有以下内容:

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

四、Android平台导入#

1、 Editor 2019及以上版本#

(1)生成Gradle和AndroidManifest.xml文件#

按照下图,生成baseProjectTemplate.gradlemainTemplate.gradleAndroidManifest.xml文件

(2)baseProjectTemplate.gradle配置-- 添加所需Maven库#

在上图生成的baseProjectTemplate.gradle文件中引入所需Maven库,maven库的引用,根据打包平台生成代码为准

如下以开发者选择接入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,根据打包平台生成代码为准进行配置,开发者直接添加引用到dependencies中,有疑问请参考步骤2对生成接入代码的说明

(3)AndroidManifest.xml文件配置#

在上图生成的AndroidManifest.xml文件中添加配置

<manifest >
...
<application
<!--网络安全配置-->
android:usesCleartextTraffic="true">
<!--Android 6.0 中,Google SDK移除了对 Apache HTTP 客户端的支持,默认情况下应用无法使用,加上才能正常使用-->
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
</manifest>
  • 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>

2、 Editor 2018#

(1)mainTemplate.gradle文件生成并配置#

如下图生成mainTempate.gradle文件

WeChatWorkScreenshot_0767252a-d886-49b8-afb7-19680a49ea77.png

在上图生成的mainTemplate.gradle文件中引入所需Gradle,根据打包平台生成代码为准进行配置,开发者直接添加引用到dependencies中,有疑问请参考步骤2对生成接入代码的说明

(2)生成Manifest.xml文件#

在unity的安装目录下,可以找到unity默认的Manifest文件,复制到您的生成mainTempate.gradle的同级目录中,具体配置请参考Editor2019步骤3.AndroidManifest.xml文件配置


五、AndroidX配置#

按照下图,生成gradleTemplate.properties文件。

在生成的gradleTemplate.properties文件中添加如下配置

//添加以下配置
android.enableJetifier=true
android.useAndroidX=true

如果使用的Unity Editor没有生成gradleTemplate.properties文件的选项。需要在项目的Assets/Plugins/Editor新增文件SupportAndroidXGradlePropertiesBuildProcessor.cs,添加如下内容:

using System.IO;
using UnityEditor.Android;
using UnityEngine;
public class SupportAndroidXGradlePropertiesBuildProcessor : IPostGenerateGradleAndroidProject
{
public int callbackOrder
{
// 同种插件的优先级
get { return 999; }
}
public void OnPostGenerateGradleAndroidProject(string path)
{
Debug.Log("Bulid path : " + path);
string gradlePropertiesFile = path + "/gradle.properties"; //2019版及其以上使用的路径
if (File.Exists(gradlePropertiesFile))
{
File.Delete(gradlePropertiesFile);
}
StreamWriter writer = File.CreateText(gradlePropertiesFile);
writer.WriteLine("org.gradle.jvmargs=-Xmx4096M");
writer.WriteLine("android.useAndroidX=true");
writer.WriteLine("android.enableJetifier=true");
writer.Flush();
writer.Close();
}
}

六、混淆配置#

Proguard配置#

添加混淆文件,否则将导致打Release包时无法拉取到TP广告配置而请求广告失败。在如下位置勾选User Proguard File生成对应的配置文件,之后在生成的文件中添加如下配置:

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

资源优化#

如果使用第三方的资源优化框架,需要将所有以tp为前缀的资源添加到白名单中,例如:

# 接入原生、原生横幅、原生拼接开屏等广告类型
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_*

七、初始化SDK#

  • 在游戏启动类中进行TradPlus的初始化:否则后台无法准确统计DAU。

  • 注意这里是初始化TP的SDK,开发者需要填入的是在TradPlus开发者后台生成的应用ID

//初始化
TradPlus.InitializeSdk(“TP应用ID“);

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

八、其他功能#

国内发布设置OAID#

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