Java SDK

更新时间:2025-05-30 09:01:42

集成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_headerua中提取

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);
    }

其他配置

  1. 服务配置

    配置

    类型

    是否必填

    默认值

    说明

    配置

    类型

    是否必填

    默认值

    说明

    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

    回调函数

  2. 回调配置

    属性

    类型

    说明

    属性

    类型

    说明

    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());
    });
  3. 日志唯一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
  • 其他配置
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等