Android SDK 集成说明

第一步:获取媒体的AppKey

您可以点击媒体管理tab进入媒体管理页面,便可见该账户下所有媒体的appKey,如下图:↓↓↓

appKey 使用方式见第五步:初始化;

第二步:配置依赖

在项目的 build.gradle(项目根目录的 build.gradle 文件)添加 testin maven 库地址:

buildscript {
      ...

      repositories {
          jcenter()
          //添加 testin maven 库地址
          maven{ url 'https://dl.bintray.com/testindata/maven'}
      }

      ...
  }

  allprojects {
      repositories {
          jcenter()
          //添加 testin maven 库地址
          maven{ url 'https://dl.bintray.com/testindata/maven'}
      }
  }

第三步:集成SDK

在 module 级别的build.gradle文件中添加Youguo SDK依赖:

dependencies {
   //添加SDK基础库依赖,其中latest.integration指最新基础库版本号,也可以指定明确的版本号,例如5.1.3
   compile 'cn.testin.analysis:testin-data:latest.integration'
   //添加 Youguo SDK依赖,其中latest.integration指最新SDK版本号,也可以指定明确的版本号,例如1.0.1-beta
   compile 'cn.testin.analysis:youguo:latest.integration'
}

第四步:权限配置

在项目中找到项目配置文件 AndroidManifest.xml,加入SDK所需权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

第五步:初始化 SDK

  • 在程序入口处即 ApplicationonCreate() 方法中调用TestinDataApi.initYouguo() 方法进行SDK初始化操作

    public class TApplication extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
            //SDK初始化
            TestinDataApi.initYouguo(this, "your_appkey");
        }
    }
    
  • 注意:如果同时集成了Bugout SDK与Youguo SDK,需要调用方法TestinDataApi.initMulti()进行多个SDK的初始化

    public class TApplication extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
            //设置启动参数
            TestinDataConfig testinDataConfig = new TestinDataConfig()
                    .openShake(true)//设置是否打开摇一摇反馈bug功能
                    .collectCrash(true)//设置是否收集app崩溃信息
                    .collectNDKCrash(true)//设置收集NDK异常,需集成bugout-ndk
                    .collectANR(true)//设置是否收集ANR异常信息
                    .setScreenshot(true)//设置是否打开崩溃截图功能
                    .collectLogCat(false)//设置是否收集logcat系统日志
                    .collectUserSteps(true);//设置是否收集用户操作步骤
            //SDK初始化
            TestinDataApi.initMulti(this, "bugoutAppkey","youguoAppKey",testinDataConfig);
        }
    }
    

第六步:代码混淆

  • 在 proguard-rules.txt 文件中加入:
-dontwarn cn.testin.analysis.**
-keep class cn.testin.analysis.** {*;}

第七步:接入广告

1. Banner广告

YGBannerView banner = new YGBannerView(context);

//设置广告位id
banner.setAdSeatId(adSeatId);

//设置广告状态监听
banner.setYGAdListener(new YGAdListener() {
    @Override
    public void onAdReceived() {
        //当广告请求成功时会调用该函数
    }

    @Override
    public void onAdFailed(String errMsg) {
        //当广告请求或者加载失败时会调用该函数,当该函数被调用时,可将广告控件隐藏或去除
    }

    @Override
    public void onAdExposed() {
        //当广告曝光时会调用该函数
    }

    @Override
    public void onAdClicked(AdInfo adInfo) {
        //当广告被点击时会调用该函数,当该函数被调用时,可进行WebView广告页面展示操作
    }

    @Override
    public void onAdClosed() {
        //当广告关闭时会调用该函数
    }
});

//请求广告
banner.loadAd();

//获取广告点击后跳转需要的url,AdInfo可通过监听回调或控件获取
AdInfo adInfo=banner.getAdInfo();
String targetUrl=adInfo.getTargetUrl();

//当Activity被销毁时调用该函数,结束相关API请求及回调操作,防止内存泄漏
banner.destory();

注意:该广告控件被点击后不会自动跳转到WebView页面进行广告展示,需要开发者进行跳转支持

2. 浮标广告

YGFloatView floatView = new YGFloatView(context);

//设置广告位id
floatView.setAdSeatId(adSeatId);

//设置广告状态监听
floatView.setYGAdListener(new YGAdListener() {
    @Override
    public void onAdReceived() {
        //当广告请求成功时会调用该函数
    }

    @Override
    public void onAdFailed(String errMsg) {
        //当广告请求或者加载失败时会调用该函数,当该函数被调用时,可将广告控件隐藏或去除
    }

    @Override
    public void onAdExposed() {
        //当广告曝光时会调用该函数
    }

    @Override
    public void onAdClicked(AdInfo adInfo) {
        //当广告被点击时会调用该函数,当该函数被调用时,可进行WebView广告页面展示操作
    }

    @Override
    public void onAdClosed() {
        //当广告关闭时会调用该函数
    }
});

//请求广告
floatView.loadAd();

//获取广告点击后跳转需要的url,AdInfo可通过监听回调或控件获取
AdInfo adInfo=floatView.getAdInfo();
String targetUrl=adInfo.getTargetUrl();

//当Activity被销毁时调用该函数,结束相关API请求及回调操作,防止内存泄漏
floatView.destory();

注意:该广告控件被点击后不会自动跳转到WebView页面进行广告展示,需要开发者进行跳转支持

3. Native广告

  • 广告接入说明
//初始化广告服务(传入的参数依次为Context,广告位id)
YGAdNative adNative = new YGAdNative(this, adSeatId);
//设置广告请求监听接口
adNative.setOnAdGetListener(new OnAdGetListener() {
    @Override
    public void onReceived(AdInfo adInfo) {
        //当广告请求成功时会调用该函数,当该函数被调用时,可进行广告图片素材的加载操作
    }

    @Override
    public void onFailed(String msg) {
        //当广告请求失败时会调用该函数,当该函数被调用时,可将广告控件隐藏或去除
    }
});

//请求广告
adNative.loadAd();

//当广告展示时调用该函数
adNative.adExposed();

//当广告被点击时调用该函数
adNative.adClick();

//广告点击后跳转需要的url
String targetUrl=adInfo.getTargetUrl();

//当Activity被销毁时调用该函数,结束相关API请求及回调操作,防止内存泄漏
adNative.destory();

注意:该广告控件被点击后不会自动跳转到WebView页面进行广告展示,需要开发者进行跳转支持

  • 广告接口返回参数说明
字段 类型 说明
reqId String 广告请求id
adSeatId String 广告位id
contentId String 广告位素材id
adSeatUrl String 广告位素材图片url
targetUrl String 广告url,即素材被点击后跳转url

更多

  • SDK 最低兼容 Android 4.0(API 14) 及以上版本;
  • 以上的配置方式统一适用于Android Studio 和 Intellij IDEA

results matching ""

    No results matching ""