海纳嗨数-帮助中心
SDK接入
帮助中心 > 技术文档 > 服务端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.2 单条发送
HinaSdk hinaSdk = HinaSdk.initWithNet(url);
参数解释:
参数 | 默认值 | 说明 |
---|---|---|
url | String | 发送的URL地址 |
1.3 批量发送
HinaSdk hinaSdk = HinaSdk.initWithBatch(url, batch);
参数解释:
参数 | 默认值 | 说明 |
---|---|---|
url | String | 发送的URL地址 |
batch | int | 每次发送多少条,最多200条 |
max_length | int | 默认值1024,最大设置不能超过5120 |
注意:
- batch不能设置为小于0
- batch如果设置为1,等同于单条发送
- 如果max_length设置值小于等于1,则自动调整为1024,如果大于5120,则自动调整为5120
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 | 时间戳 |
注意:
- 批量发送默认会发送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-11-20 17:38
最后编辑:涂泽 更新时间:2024-11-20 17:38