重要说明

TGSDK 从 1.8.7 版本开始 Android 平台 SDK 将完全适配 Android X

且不再支持基于 Eclipse Ant 构建环境的老旧 Android 项目接入。仅支持 AndroidStudio 3.2 以上,基于 Gradle 构建的 Android 工程

我们强烈建议您“与时俱进”尽快将自己的 Android 工程升级到最新的编译构建系统上来。

如果您的 Android 项目因种种原因实在无法升级,那么您可以从这里下载到以前版本的 TGSDK 广告 SDK。

适用于国内安卓环境的旧版本在这里

适用于 Google Play 环境的旧版本在这里

旧版本的接入文档请访问这里

目录

1、导入 TGSDK 到工程

新的 TGSDK 广告 SDK 包将以 Demo 示例 AndroidStudio 工程的形式提供。

下载到的 zip 包解压后可以得到一个完整的 Demo 示例 AndroidStudio 工程目录。

你可以直接通过 AndroidStudio 打开该示例工程,打包并安装在真机设备上进行体验。

加入强制依赖库

参考示例工程中 app/build.gradle 中的设置,TGSDK 广告 SDK 需要下面这几个强制依赖库。

【注意】强制依赖库不可或缺,必须引入到你的项目中,否则 TGSDK 无法正常工作

dependencies {
    // 添加 TGSDK 强制依赖库
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'com.squareup.okio:okio:1.14.0'
    implementation 'com.squareup.okhttp3:okhttp:3.11.0'
}

加入广告商插件需要的依赖库

TGSDK 广告 SDK 为聚合 SDK,内部聚合了众多的第三方广告商插件,各个广告商插件有其自身需要的依赖库。

参考示例工程中 app/build.gradle 中的设置,继续添加第三方广告商插件需要用到的依赖看。

dependencies {
    // 添加 TGSDK 强制依赖库
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'com.squareup.okio:okio:1.14.0'
    implementation 'com.squareup.okhttp3:okhttp:3.11.0'

    // 添加第三方广告插件需要的依赖库
    // By wangmai
    implementation 'com.google.code.gson:gson:2.8.2'
    // By wangmai
    implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.6'
    // By wangmai
    implementation 'com.squareup.picasso:picasso:2.5.2'
}

示例工程的 app/build.gradle 中已经详细注明了这些依赖库都是哪些第三方广告商广告插件需要用到的依赖。

TGSDK 广告聚合 SDK 所有的第三方广告商插件均支持自由插拔。当你由于制定需要删减某些广告商插件时,可以对应把起依赖的依赖库配置删掉。

【注意】如果使用了某些第三方广告商的广告插件,但是没有正确的引入其所需的依赖库,会导致该广告商的广告插件无法正常工作。

加入第三方广告商插件

TGSDK 广告 SDK 为聚合 SDK,最后将第三方广告商的广告插件导入到你的工程中来。

参考示例工程中 app/build.gradle 中的设置,将第三方广告商的广告插件引入。

dependencies {
    // 添加 TGSDK 强制依赖库
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'com.squareup.okio:okio:1.14.0'
    implementation 'com.squareup.okhttp3:okhttp:3.11.0'

    // 添加第三方广告插件需要的依赖库
    // By wangmai
    implementation 'com.google.code.gson:gson:2.8.2'
    // By wangmai
    implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.6'
    // By wangmai
    implementation 'com.squareup.picasso:picasso:2.5.2'

    // 添加第三方广告商广告插件
    implementation(name: 'TGSDK.1.8.7', ext: 'aar')
    implementation(name: 'TGSDKADSigmob.1.8.7', ext: 'aar')
    implementation(name: 'TGSDKADShenqiad.1.8.7', ext: 'aar')
    implementation(name: 'TGSDKADGuangdiantong.1.8.7', ext: 'aar')
    implementation(name: 'TGSDKADBaidu.1.8.7', ext: 'aar')
    implementation(name: 'TGSDKADMobvista.1.8.7', ext: 'aar')
    implementation(name: 'TGSDKADHytech.1.8.7', ext: 'aar')
    implementation(name: 'TGSDKADUniplay.1.8.7', ext: 'aar')
    implementation(name: 'TGSDKADYoads.1.8.7', ext: 'aar')
    implementation(name: 'TGSDKADWangmai.1.8.7', ext: 'aar')
    implementation(name: 'open_ad_sdk.2.9.0.0', ext: 'aar')
    implementation(name: 'TGSDKADBytedance.1.8.7', ext: 'aar')
    implementation(name: 'TGSDKADOneway.1.8.7', ext: 'aar')
}

【注意】 TGSDK.1.x.x.aar 为 TGSDK 的基础包,并不是第三方广告商插件。

名称前缀为 TGSDKADxxxx 的才是第三方广告商插件,请注意分别。

2、修改 AndroidManifest.xml 文件

参考示例工程中的 app/src/main/AndroidManifest.xml 文件。将该文件中配置的所有权限声明、Provider 节点全部复制黏贴到你工程的 AndroidManifest.xml 文件中。

【注意】示例工程的 AndroidManifest.xml 文件中的权限声明、全部的 Provider 节点声明,全部都要复制黏贴到你的项目中!!!

TGSDK 广告聚合 SDK 所有的第三方广告商插件均支持自由插拔。

当你由于制定需要删减某些广告商插件时,需要应把 AndroidManifest.xml 中的第三方广告商声明的 Provider 节点同步删掉。

有关 Google AdMob 广告对接的重要说明

如果你的产品使用的是 TGSDK 的国内安卓渠道广告 SDK 包,且你的产品只发行与中国国内,并不使用 Google AdMob 广告商插件,那么请忽略这个小节的内容

【注意】如果你的产品是在 Google Play 上面发型,接入了 TGSDK 针对 GooglePlay 的广告 SDK,并且使用 Google AdMob 的广告插件

【注意】那么请你严格按照这个小节的内容指示去做,否则 Google AdMob 广告插件会使你的产品运行出现崩溃问题!!!

根据 Google AdMob 最新对接文档 要求,

你项目的 AndroidManifest.xml 文件中必须配置如下节点:

        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-8385434067230970~7710989445"/>

否则你的项目在使用 Google AdMob 广告的过程中会出现崩溃。

正如我们附带的示例工程的 AndroidManifest.xml 文件所示,我们配置了这个节点,并且节点中的值是 android:value="ca-app-pub-8385434067230970~7710989445"

这个是我们在 Google AdMob 注册的测试用的广告账户应用 ID,只方便用来做测试,不能够用于线上生产环境。

【注意!!!】当你的产品准备正式上线时,请联系我们的运营人员,获取针对你这款应用使用的广告账户 ID,

并在从我们运营人员那里获取到广告账户 ID 后,需要你正确的替换掉对应的值,以确保你可以正确的使用 Google AdMob 广告服务。

有关移动安全联盟 MSA 获取 OAID 设备号 SDK 对接的说明

由于 Android 10 系统对于获取设备号的限制,越来越多的广告厂商使用移动安全联盟(MSA)推广的统一设备号 OAID SDK 作为获取设备标识的替代方式。

为了更好的适配 Android 10 系统,也建议您的产品今早接入移动安全联盟(MSA)的 OAID 设备号获取 SDK。

为了保证兼容性,TGSDK 广告聚合变现 SDK 默认没有附带移动安全联盟(MSA)的 OAID 设备号获取 SDK,但是提供了该 SDK 的下载,您可以

到这里下载 1.0.10 版本

到这里下载 1.0.13 版本

到目前(2020 年 4 月)位置,最新版本为 1.0.13,但目前主流使用的是 1.0.10 版本,推荐您尽快接入。

接入方法很简单,只需将下载的 aar 引入您的项目中即可。

3、初始化 TGSDK

Yomob官方网站 为产品注册好账户后,你将会从网站得到你的产品对应的 AppID 使用这个参数来初始化 TGSDK

参考示例工程的源代码来初始化 TGSDK

class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        TGSDK.initialize(
            this,
            "Your application ID from yomob",
            null);
    }

}

4、预加载广告资源

为了有充裕的时间来加载广告资源,建议尽早调用预加载 API 来开始广告的加载工作。

甚至你可以在初始化 TGSDK 的同时就开始调用广告预加载 API 来预加载广告。  

TGSDK.preloadAd(activity);

5、播放广告

通过 Yomob 官方网站 为注册的应用建立广告场景,获得相应的广告场景 ID 后,通过场景 ID 参数来判断广告是否已经准备好,如果对应场景的广告已经准备好,则可以调用播放 API 来播放对应场景的广告。

if (TGSDK.couldShowAd("Your scene ID from yomob")) {
    TGSDK.showAd(activity, "Your scene ID from yomob");
}

6、高级用法

开启 Debug 模式

开启 debug 模式后可以看到更多 Log 输出,方便定位遇到的问题。但需要注意

在生产环境请勿使用 Debug 模式,另外,如果需要启动 Debug 模式,请在调用初始化 API 前设置 Debug 模式的开启

TGSDK.setDebugModel(true);

设置广告预加载事件监听

你可以通过设置一个 listener 来监控广告资源的加载情况。

TGSDK.preloadAd(new ITGPreloadListener() {

    @Override
    public void onPreloadSuccess(String result) {
        // 广告配置获取成功
    }

    @Override
    public void onPreloadFailed(String scene, String error) {
        // 广告配置获取失败
    }

    @Override
   public void onAwardVideoLoaded(String result) {
       //奖励视频已就绪
   }

   @Override
   public void onInterstitialLoaded(String result) {
       //静态插屏已就绪
   }

   @Override
   public void onInterstitialVideoLoaded(String result) {
       //插屏视频已就绪
   }

});

【注意】onPreloadSuccess 只表示成功的获取了广告配置数据,并不代表广告本身加载完成,请不要根据此回调作为判断是否可以播放广告的依据

设置广告播放行为事件监听

在广告播放过程中可以通过一个 listener 来监控广告播放过程中产生的一系列事件。


TGSDK.setADListener(new ITGADListener() {

   @Override
   public void onShowSuccess(String scene, String result) {
        //广告播放成功(场景id, 广告商名称)
   }

   @Override
   public void onShowFailed(String scene, String result, String error) {
        //广告播放失败(场景id, 广告商名称)
    }

    @Override
    public void onADClick(String scene, String result) {
        //广告点击(场景id, 广告商名称)
    }

    @Override
    public void onADClose(String scene, String result, boolean couldReward) {
        //广告关闭(场景id, 广告商名称, 奖励视频是否可以获取奖励)
    }


});

【注意】onADComplete 事件只代表视频广告的视频部分播放结束,并不代表整体广告行为结束,请不要使用该事件作为广告结束的依据,广告结束应使用 onADClose 事件

【注意】Banner广告 在onShowFailed 回调后说明 Banner 广告加载失败,广告没有正常显示,需要手动调用 TGSDK.closeBanner 关闭当前展示的 Banner,然后可以再次尝试调用 TGSDK.showAd 重新展示 Banner 广告。

广告播放测试工具

此功能只在 TGSDK 1.6.5(含)以上版本中提供,建议升级您的 TGSDK 以获得更好的使用体验

请不要在生产环境使用此功能,此功能仅供测试

在测试阶段,你可以使用广告播放测试工具 API 来替代正常的广告播放 API,这样更方便你整体检测广告的加载情况和广告的运行情况

使用广告播放测试工具接口

TGSDK.showTestView(activity, "Your scene id from Yomob");

来替代广告播放接口

TGSDK.showAd(activity, "Your scene id from Yomob");

将会弹出如下图所示的 UI 界面,从中你可以检查广告插件的运行情况并通过点击准备好播放的广告插件来播放指定广告商的广告。

TGSDK_showTestView