帮助中心
- 平台介绍
- 接入指引
- 版本信息
- 使用流程
- 功能手册
- 操作视频
- 技术文档
- 基础知识
- 客户端SDK
- 服务端SDK
- 数据导入
- API功能
- SQL手册
- DML
- SQL函数
- 日期函数
- convert_tz
- curdate,current_date
- current_timestamp
- curtime,current_time
- date_add
- date_format
- date_sub
- datediff
- day
- dayname
- dayofmonth
- dayofweek
- dayofyear
- from_days
- from_unixtime
- hour
- makedate
- minute
- month
- monthname
- now
- second
- str_to_date
- time_round
- timediff
- timestampadd
- timestampdiff
- to_date
- to_days
- unix_timestamp
- utc_timestamp
- week
- weekday
- weekofyear
- year
- yearweek
- localtime,localtimestamp
- quarter
- last_day
- extract
- date_trunc
- minutes_add
- minutes_diff
- minutes_sub
- seconds_add
- seconds_diff
- seconds_sub
- hours_add
- hours_diff
- hours_sub
- days_add
- days_diff
- days_sub
- weeks_add
- weeks_diff
- weeks_sub
- months_add
- months_diff
- months_sub
- years_add
- years_diff
- years_sub
- 字符串函数
- append_trailing_char_if_absent
- to_base64
- from_base64
- ascii
- length
- bit_length
- char_length
- lpad
- rpad
- lower
- lcase
- upper
- ucase
- initcap
- repeat
- reverse
- char
- concat
- concat_ws
- substr
- substring
- sub_replace
- ends_with
- starts_with
- trim
- ltrim
- rtrim
- null_or_empty
- not_null_or_empty
- hex
- unhex
- elt
- instr
- locate
- find_in_set
- replace
- left
- right
- strleft
- strright
- split_part
- split_by_string
- substring_index
- money_format
- parse_url
- convert_to
- extract_url_parameter
- uuid
- space
- sleep
- 日期函数
- 数据类型
- 数据管理
- 常见问题
- 合规说明
- 资源下载
- AB测试
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条 |
注意:
- batch不能设置为小于0
- 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 | 时间戳 |
注意:
- 批量发送默认会发送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
最后编辑:涂泽 更新时间:2024-09-05 21:06