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();
}
通过上面的示例,可以在任意流程进行事件埋点