帮助中心 > 技术文档 > 服务端SDK > Java SDK > SDK接入

Java SDK接入流程主要分为两个步骤(两个文档)

1、SDK配置:将对应的SDK集成到您的产品项目中,然后进行初始化代码处理;
2、SDK接入:将需要上报的业务数据,按照SDK中对应的的方法进行数据上送。


1. 初始化SDK

1.1 调试模式

HinaSdk hinaSdk = HinaSdk.initWithDev(url);

参数解释:

参数 默认值 说明
url String 发送的URL地址

注意:

  1. 在该模式下,会打印出很多调试日志,方便对接

1.2 单条发送

HinaSdk hinaSdk = HinaSdk.initWithNet(url);

参数解释:

参数 默认值 说明
url String 发送的URL地址

1.3 批量发送

HinaSdk hinaSdk = HinaSdk.initWithBatch(url, batch);

参数解释:

参数 默认值 说明
url String 发送的URL地址
batch int 每次发送多少条,最多200条

注意:

  1. batch不能设置为小于0
  2. batch如果设置为1,等同于单条发送

2. 设置用户ID

SDK 实例登录前使用匿名ID发送事件,登录后使用登录后ID发送事件,匿名ID和登录后ID

用户登录后,可以将登录ID和匿名ID绑定

hina.bindId("登录ID","匿名ID")

参数解释:

参数 默认值 说明
userUId String 登录ID
anonymousId String 匿名ID

3. 设置用户属性

3.1 设置用户属性

直接设置用户的属性,如果存在则覆盖

hina.userSet("用户ID",用户属性)

参数解释:

参数 默认值 说明
distinctId String 您平台用户唯一标识
data Map<String, Object> 用户属性

3.2 固定初始值的属性,首次设置

如果不存在则设置,存在就不设置

hina.userSetOnce("用户ID",用户属性)

参数解释:

参数 默认值 说明
distinctId String 您平台用户唯一标识
data Map<String, Object> 用户属性

3.3 数值类型的属性

对当前用户的属性做递增或者递减

hina.userAdd("用户ID",key,value)

参数解释:

参数 默认值 说明
distinctId String 您平台用户唯一标识
key String 属性KEY
value Number 属性值,数值型

3.4 属性取消

删除当前用户的一些属性

hina.userUnset("用户ID",key)

参数解释:

参数 默认值 说明
distinctId String 您平台用户唯一标识
key String 键值

4. 设置公共事件属性

对于所有事件都需要添加的属性,可在初始化 SDK 后,调用 registerCommonProperties 将属性注册为公共属性

Map<String, Object> map = new HashMap<>();
map.put("H_os", "windows");
map.put("H_os_version", "11");
map.put("H_ip", "10.12.50.15");
hinaSdk.registerCommonProperties(map);

参数解释:

参数 默认值 说明
data Map<String, Object> 属性值集合

5. 发送事件

在 SDK 初始化完成之后,您就可以进行数据埋点,收集用户的的行为信息

可以调用 sendEvent 来上传事件,以下是示例

Map<String, Object> map = new HashMap<>();
map.put("novel_id", "1234567890");
map.put("novel_chapter", "3");
long time =System.currentTimeMillis(); // 表示用户行为事件发生的时间,如果不填入该属性,则默认使用系统当前时间
hinaSdk.sendEvent(userUid,"事件名称", map,true,time);
/* 正常情况,事件数只有累积到一个批次数,才会发送,使用flush方法,可以立即提交未发送的所有事件。
您系统为了批量上报数据不丢失,需要注意点:
1、在你做实时数据上报时,您应用系统shudown 时触发强推,将缓存中数据上报;
2、在您做历史数据导入时,在导入结束后,触发强推,将缓存中数据上报;*/
hinaSdk.flush();

参数解释:

参数 默认值 说明
userUid String 您平台用户唯一标识
eventName String 事件名称
data Map<String, Object> 事件数据
isLogin boolean 是否登录
time long 时间戳

注意:

  1. 批量发送默认会发送5条数据

6. 发送事件示例

// SERVER_URL 配置采集上报地址URL(在线申请),获取步骤请查看如下【[采集上报地址获取] 链接
String SERVER_URL="数据接收地址";
HinaSdk hinaSdk = HinaSdk.initWithBatch(SERVER_URL, 5);
// 设置全局属性
Map<String, Object> map1 = new HashMap<>();
map1.put("H_os", "macos");
map1.put("H_ip", "127.0.0.1");
map1.put("H_lib", "Java");
hinaSdk.registerSuperProperties(map1);

// 发送事件,未登录
String anonymous_id = UUID.randomUUID().toString();
Map<String, Object> map2 = new HashMap<>();
map2.put("cat_name", "zhaoshang888");
map2.put("pay_type", "online888");
map2.put("pay_money", 25888);
long time1 = System.currentTimeMillis();    // 表示用户行为事件发生的时间,如果不填入该属性,则默认使用系统当前时间
hinaSdk.sendEvent(anonymous_id,"java_test_event",map2,false,time1);

//  登录
String anonymous_id = UUID.randomUUID().toString();
String account_id="9557991200445566";
hinaSdk.bindId(account_id,anonymous_id);

// 发送事件,登录后
Map<String, Object> map4 = new HashMap<>();
map4.put("cat_name", "jianshe448");
map4.put("pay_type", "online448");
map4.put("pay_money", 48);
long time2 = System.currentTimeMillis();    // 表示用户行为事件发生的时间,如果不填入该属性,则默认使用系统当前时间
hinaSdk.sendEvent(account_id,"java_test_event",map4,true,time2);
/* 正常情况,事件数只有累积到一个批次数,才会发送,使用flush方法,可以立即提交未发送的所有事件。
您系统为了批量上报数据不丢失,需要注意点:
1、在你做实时数据上报时,您应用系统shudown 时触发强推,将缓存中数据上报;
2、在您做历史数据导入时,在导入结束后,触发强推,将缓存中数据上报;*/
hinaSdk.flush();

注意:
1、“数据接收地址”获取方式,请参考【采集上报地址获取
2、方法参数,详见【SDK接入

7. 立即上报(强制推送)

hinaSdk.flush();

注意:
1、正常情况,事件数只有累积到一个批次数,才会发送
2、使用flush方法,可以立即提交未发送的所有事件。

作者:邓昊  创建时间:2023-02-26 23:57
最后编辑:涂泽  更新时间:2024-09-05 21:06