集成Java SDK
手动引入jar包「quickaplus-log-collector-java-sdk-1.0.1-SNAPSHOT.jar」,可联系QT答疑人员获取。
基础配置(必填)
务必设置appkey、收数域名和鉴权信息。
1. 设置appkey
QtSdkConfig.setAppKey("您的appkey");
2. 设置收数域名
QtSdkConfig.setQlcEndpoint("您的收数域名");
域名必须增加尾缀“/server”
3. 鉴权信息填写
QtSdkConfig.setServiceId("您的ServiceID");
QtSdkConfig.setServiceSecret("您的ServiceSecret");
获取位置在「管理控制台--采集信息--服务端埋点信息」中。
全局属性设置
// 添加属性
QtGlobalPropertiesConfig.put("a", "1");
QtGlobalPropertiesConfig.put("b", "2");
// 删除属性
QtGlobalPropertiesConfig.remove("a");
// 获取所有属性
QtGlobalPropertiesConfig.getAll();
// 清空属性
QtGlobalPropertiesConfig.clear();
埋点上报
QtLog log = new QtLog.Builder()
.eventId("order_success") //事件编码(必填)
.deviceId("dev-001") //设置设备ID(设备ID和账号ID必填一个)
.userId("user-001") //设置账号ID(设备ID和账号ID必填一个)
.pageName("pageName") //设置页面编码(选填)
.customProperty(new HashMap<>()) //设置事件属性(选填)
.systemProperty(new HashMap<>()) //设置系统属性(选填)
.idTracking(new HashMap<>()) //设置系统属性的设备标识
.debugKey("dk-0001") //设置埋点验证标志位(选填),上线时必须删除
.eventTimestamp(System.currentTimeMillis()) //设置客户端时间戳(必填)
.serverTimestamp(System.currentTimeMillis()) //设置服务端时间戳(可选)
.uuid("xxxx") //设置事件日志唯一标识,用于生成log_id(1.0.1版本支持)
.build(); //日志构建完成
系统属性仅支持下述属性上报,上报时需要填写和下述key保持一致,包括大小写。
类别 | 开发者上报字段&QT系统属性字段 | 类型 | 描述 |
类别 | 开发者上报字段&QT系统属性字段 | 类型 | 描述 |
应用信息 | channel | String | 应用渠道 |
app_version | String | 应用版本 | |
SDK信息 | sdk_version | String | SDK版本 |
sdk_type | String | SDK类型 | |
系统信息 | os | String | 操作系统 |
os_version | String | 操作系统版本 | |
设备信息 | resolution | String | 屏幕分辨率 |
mac、oaid、openid、unionid、android_id、idfa、serial、imei、idfv | String | 设备标识,需要通过「idTracking(new HashMap<>())」上报,具体见上述demo | |
device_brand | String | 设备品牌 | |
device_model | String | 设备机型 | |
网络及运营商 | access | String | 网络类型 |
access_subtype | String | ||
carrier | String | 运营商 | |
平台及场景信息 | scene | String | 场景值(小程序) |
device_type | String | ||
http_header和ua中提取 | browser | String | 浏览器 |
ip | String | IP地址 |
日志发送
日志发送时,调用下述API发送。
QtLogSenderHelper.syncSendLog(log);
Demo
package com.alibaba.lingyang.quick.tracking.qlc.java.sdk.model;
import com.alibaba.lingyang.quick.tracking.qlc.java.sdk.config.QtGlobalPropertiesConfig;
import com.alibaba.lingyang.quick.tracking.qlc.java.sdk.config.QtSdkConfig;
import com.alibaba.lingyang.quick.tracking.qlc.java.sdk.sender.QtLogSenderHelper;
import org.junit.Test;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
/**
* 测试发送日志
*/
public class TestSendLog {
/**
* 测试
*/
@Test
public void testSend() throws UnsupportedEncodingException {
// 配置
QtSdkConfig.setServiceId("z1212121AOCgtG");
QtSdkConfig.setServiceSecret("f111111HvkuYu0111111QghlWMpIiU9D");
QtSdkConfig.setAppKey("123123123");
QtSdkConfig.setQlcEndpoint("https://log-api.xxxxxxx.com");
QtSdkConfig.setOpenLog(true);
QtSdkConfig.setCallback(ctx -> {
System.out.println(ctx.getResponseCode());
System.out.println(ctx.getResponseMessage());
System.out.println(ctx.getSendSuccess());
System.out.println(ctx.getSendData());
System.out.println(ctx.getResponseData());
System.out.println(ctx.getErrors());
});
// 添加全局属性
QtGlobalPropertiesConfig.put("a", "1");
QtGlobalPropertiesConfig.put("b", "2");
// 删除全局属性
QtGlobalPropertiesConfig.remove("a");
// 获取所有全局属性
QtGlobalPropertiesConfig.getAll();
// 清空全局属性
QtGlobalPropertiesConfig.clear();
Map<String,String> idTracking = new HashMap();
idTracking.put("mac","id1");
idTracking.put("oaid","id2");
idTracking.put("android_id","id3");
String a = "中文";
String s = new String(a.getBytes("utf8"),"gbk");
// 自定义属性或用户属性
Map<String,Object> customProperty = new HashMap<>();
customProperty.put("a","1");
customProperty.put("b",2);
// 系统属性
Map<String,Object> systemProperty = new HashMap<>();
systemProperty.put("a","1");
systemProperty.put("b",2);
// 构造日志对象
QtLog log = new QtLog.Builder()
.eventId("$$_uer_profile") //事件编码(必填),如果传用户属性事件则编码为$$_user_profile
.deviceId("dev-001") //设置设备ID(设备ID和账号ID必填一个)
.userId("user-001") //设置账号ID(设备ID和账号ID必填一个,$$_user_profile事件时必填)
.uuid("xxxx") //(选填)
.pageName("pageName") //设置页面编码(选填)
.idTracking(idTracking) //设置系统属性的设备标识(选填)
.customProperty(customProperty) //设置事件属性或用户属性(选填)
.systemProperty(systemProperty)//设置系统属性(选填)
.serverTimestamp(1111L)
.debugKey(a)
.eventTimestamp(System.currentTimeMillis())
.build();
// 发送日志
QtLogSenderHelper.syncSendLog(log);
}
其他配置
服务配置
配置
类型
是否必填
默认值
说明
配置
类型
是否必填
默认值
说明
serviceId
String
是
-
服务端采集的ak
serviceSecret
String
是
-
服务端采集的sk
qlcEndpoint
String
是
-
收数服务地址
appKey
String
是
-
appkey
openLog
Boolean
否
false
是否开启日志
httpConnectTimeoutMillisecond
Integer
否
null
发送HTTP请求的超时时间(connect)
httpWriteTimeoutMillisecond
Integer
否
null
发送HTTP请求的超时时间(write)
httpReadTimeoutMillisecond
Integer
否
null
发送HTTP请求的超时时间(read)
senderType
QtSenderTypeEnum
否
SYNC
发送类型支持同步发送和异步发送
callback
Consumer<QtSendCallbackContext>
否
null
回调函数
回调配置
属性
类型
说明
属性
类型
说明
sendSuccess
Boolean
是否发送成功
errors
List<String>
发送失败的错误信息列表
qtLog
QtLog
发送的QtLog对象
responseData
String
返回数据的内容
responseCode
String
返回数据的code
responseMessage
String
返回数据的Message
sendData
String
http实际发送的数据
注册回调函数demo
// 注册回调函数 QtSdkConfig.setCallback(ctx -> { System.out.println(ctx.getResponseCode()); System.out.println(ctx.getResponseMessage()); System.out.println(ctx.getSendSuccess()); System.out.println(ctx.getSendData()); System.out.println(ctx.getResponseData()); System.out.println(ctx.getErrors()); });
日志唯一id——log_id的生成
默认SDK会为每一个事件日志生成uuid,作为日志唯一id「log_id」的生成因子。如果您希望该「log_id」的唯一性更加强,可以自己设置uuid。方式如下:
QtLog log = new QtLog.Builder() .eventId("order_success") .deviceId("dev-001") .userId("user-001") .pageName("pageName") .customProperty(new HashMap<>()) .systemProperty(new HashMap<>()) .idTracking(new HashMap<>()) .debugKey("dk-0001")//设置埋点验证标志位(选填),上线时必须删除 .eventTimestamp(System.currentTimeMillis()) .uuid("xxxx") //设置事件日志唯一标识,用于生成log_id(1.0.1版本支持) .build();
- 本页导读 (0)
- 集成Java SDK
- 基础配置(必填)
- 1. 设置appkey
- 2. 设置收数域名
- 3. 鉴权信息填写
- 全局属性设置
- 埋点上报
- 日志发送
- Demo
- 其他配置