Android SDK

Android SDK 的最新版本是2.0.5

一、集成SDK

1.1、通过maven引入SDK

1.1.1、在根目录的build.gradle文件中的allprojects.repositories里添加mavenCentral()

allprojects {
    repositories {
        ......
        //添加maven中心库
        mavenCentral()
    }
}

1.1.2、在app的build.gradle文件中dependencies标签下添加SDK依赖

dependencies {
    ......    
    //添加SDK依赖
    implementation 'com.esmartwave.analytics.androidsdk:TrackingSystemSDK:2.0.5'
}

1.2、初始化SDK

在 Application 的 onCreate() 方法中主线程调用 TSAnalyticsSDK.startWithConfigOptions() 初始化 SDK

// 设置AppKey,ts_ext,ts_app,其中ts_ext,ts_app为非必传参数
TSConfOption confOption = new TSConfOption(this, "appkey", "ts_ext","ts_app", false);
//初始化SDK
TSAnalyticsSDK.startWithConfigOptions(confOption);

TSConfOption参数说明:

字段 类型 是否必须 说明
app_key String 应用唯一标识,由TrackingSystem提供,初始化
debug Boolean 是否是调试模式
ts_app String 同一个应用,有不同版本时,以该属性区分
ts_ext String 全局自定义扩展属性

至此已完成对页面数据的采集,用户访问页面,即可监测到对应数据。

二、设置用户属性

2.1 调用setUserInfo方法设置用户属性

在登录成功后设置用户信息,且最好在发送页面采集数据请求前调用,否则无法准确识别用户

参数说明:JsonObject,只支持以下属性的设置

字段 类型 是否必须 说明
guid String 业务系统用户唯一标识
real_name String 真实姓名
nick_name String 昵称
age Number 年龄
birthday String 生日
gender String 性别: 男/女
account String 账号
country String 国家
province String 省份
city String 城市
示例
//在登录成功后设置用户信息
TSUser user = new TSUser();
user.setGuid("业务系统用户唯一标识");
TSAnalyticsSDK.sharedInstance().setUserInfo(user);

三、 采集页面数据

在需要自定义页面名称的控制器中继承协议,实现对应的协议方法即可

//获取单例 TSAnalyticsSDK
TSAnalyticsSDK analytics = TSAnalyticsSDK.sharedInstance()

// 设置page_name:
analytics.setPageName("pageName");

// 设置page_title:
analytics.setPageTitle("pageTitle");

至此已完成对页面数据的采集,用户访问页面,即可监测到对应数据

四、自定义事件埋码

SDK 初始化后,通过 event 方法自定义事件跟踪用户行为,并为事件添加自定义事件属性

接口参数类型:JsonObject
JsonObject中的每个参数如下

  • eventName:String 事件名称,必须
  • eventParam:JsonObject 事件属性,非必须

示例 1:查看商品,加入购物车流程

// 在进入商品详情页面加载完成后埋点上传「商品详情」事件
try {
  // 定义事件名称
  String eventName = "商品详情";
  // 定义事件属性
  JSONObject eventParam = new JSONObject();
  eventParam.put("productId", "1"); // 设置商品ID
  eventParam.put("productName", "源慧大礼品"); // 设置商品名称
  eventParam.put("productCategory", "电子"); // 设置商品类别
  // 组装接口参数信息
  JSONObject eventInfo = new JSONObject();
  //设置事件名称
    eventInfo.put("eventName", eventName);
    //设置事件属性
    eventInfo.put("eventParam", eventParam);
  // 调用采集时间接口
  TSAnalyticsSDK.sharedInstance().event(eventInfo);
} catch(Exception e) {
  e.printStackTrace();
}

// 在商品详情页面为加入购物车按钮进行埋点上传,事件为「加入购物车」
try {
  // 定义事件名称
  String eventName = "加入购物车";
  // 定义事件属性
  JSONObject eventParam = new JSONObject();
  eventParam.put("productId", "1"); // 设置商品ID
  eventParam.put("productName", "源慧大礼品"); // 设置商品名称
  eventParam.put("productCategory", "电子"); // 设置商品类别
  // 组装接口参数信息
  JSONObject eventInfo = new JSONObject();
  //设置事件名称
    eventInfo.put("eventName", eventName);
    //设置事件属性
    eventInfo.put("eventParam", eventParam);
  // 调用采集时间接口
  TSAnalyticsSDK.sharedInstance().event(eventInfo);
} catch(Exception e) {
  e.printStackTrace();
}

示例 2:用户登录流程

// 点击登录按钮后为提交登录请求前进行埋点上传,事件为「登录」,该事件属性为空
try {
  // 定义事件名称
  String eventName = "登录";
  // 组装接口参数信息
  JSONObject eventInfo = new JSONObject();
  // 设置事件名称
  eventInfo.put("eventName", eventName);
  // 调用采集时间接口
  TSAnalyticsSDK.sharedInstance().event(eventInfo);
} catch(Exception e) {
  e.printStackTrace();
}

// 点击登录按钮提交登录请求后进行埋点上传,事件为「登录成功」
try {
  // 定义事件名称
  String eventName = "登录成功";
  // 定义事件属性
  JSONObject eventParam = new JSONObject();
  eventParam.put("status", "success"); // 设置登录状态 success/fail
  eventParam.put("errMsg", ""); // 设置登录失败错误信息
  // 组装接口参数信息
  JSONObject eventInfo = new JSONObject();
  // 设置事件名称
  eventInfo.put("eventName", eventName);
  // 设置事件属性
  eventInfo.put("eventParam", eventParam);
  // 调用采集事件接口
  TSAnalyticsSDK.sharedInstance().event(eventInfo);
} catch(Exception e) {
  e.printStackTrace();
}

通过上面的示例,可以在任意流程进行事件埋点

results matching ""

    No results matching ""