Skip to content

Commit f2b3bbe

Browse files
author
dengshiwei
committed
Release v3.2.0
1 parent d6ed180 commit f2b3bbe

19 files changed

+1932
-1463
lines changed

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@
186186
same "printed page" as the copyright notice for easier
187187
identification within third-party archives.
188188

189-
Copyright 2015-2021 Sensors Data Inc.
189+
Copyright 2015-2019 Sensors Data Inc.
190190

191191
Licensed under the Apache License, Version 2.0 (the "License");
192192
you may not use this file except in compliance with the License.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ SensorsAnalytics SDK 是国内第一家开源商用版用户行为采集 SDK,
3434

3535
## License
3636

37-
Copyright 2015-2021 Sensors Data Inc.
37+
Copyright 2015-2020 Sensors Data Inc.
3838

3939
Licensed under the Apache License, Version 2.0 (the "License");
4040
you may not use this file except in compliance with the License.

SensorsAnalyticsSDK/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<groupId>com.sensorsdata.analytics.javasdk</groupId>
1616
<name>SensorsAnalyticsSDK</name>
1717
<artifactId>SensorsAnalyticsSDK</artifactId>
18-
<version>3.1.20</version>
18+
<version>3.2.0</version>
1919
<description>The official Java SDK of Sensors Analytics</description>
2020
<url>http://sensorsdata.cn</url>
2121

SensorsAnalyticsSDK/src/main/java/com/sensorsdata/analytics/javasdk/HelloSensorsAnalytics.java

Lines changed: 112 additions & 263 deletions
Large diffs are not rendered by default.
Lines changed: 351 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,351 @@
1+
package com.sensorsdata.analytics.javasdk;
2+
3+
import com.sensorsdata.analytics.javasdk.bean.EventRecord;
4+
import com.sensorsdata.analytics.javasdk.bean.ItemRecord;
5+
import com.sensorsdata.analytics.javasdk.bean.SuperPropertiesRecord;
6+
import com.sensorsdata.analytics.javasdk.bean.UserRecord;
7+
import com.sensorsdata.analytics.javasdk.exceptions.InvalidArgumentException;
8+
9+
import java.util.Map;
10+
11+
/**
12+
* 外部可调用的接口方法
13+
*
14+
* @author fz
15+
* @version 1.0.0
16+
* @since 2021/05/25 11:58
17+
*/
18+
public interface ISensorsAnalytics {
19+
20+
/**
21+
* 开启导入历史数据模式
22+
*
23+
* @param enableTimeFree true:表示开启;false:表示关闭;默认关闭
24+
*/
25+
void setEnableTimeFree(boolean enableTimeFree);
26+
27+
/**
28+
* 设置公共属性
29+
*
30+
* @param propertiesRecord 公共属性实体
31+
*/
32+
void registerSuperProperties(SuperPropertiesRecord propertiesRecord);
33+
34+
/**
35+
* 设置每个事件都带有的一些公共属性
36+
* <p>
37+
* 当track的Properties,superProperties和SDK自动生成的automaticProperties有相同的key时,遵循如下的优先级:
38+
* track.properties 高于 superProperties 高于 automaticProperties
39+
* <p>
40+
* 另外,当这个接口被多次调用时,是用新传入的数据去merge先前的数据
41+
* <p>
42+
* 例如,在调用接口前,dict是 {"a":1, "b": "bbb"},传入的dict是 {"b": 123, "c": "asd"},则merge后
43+
* 的结果是 {"a":1, "b": 123, "c": "asd"}
44+
*
45+
* @param superPropertiesMap 一个或多个公共属性
46+
*/
47+
void registerSuperProperties(Map<String, Object> superPropertiesMap);
48+
49+
/**
50+
* 清除公共属性
51+
*/
52+
void clearSuperProperties();
53+
54+
/**
55+
* 记录事件
56+
*
57+
* @param eventRecord 事件消息对象
58+
* 通过 {@link EventRecord.Builder} 来构造;
59+
* @throws InvalidArgumentException eventName 或 properties 不符合命名规范和类型规范时抛出该异常
60+
*/
61+
void track(EventRecord eventRecord) throws InvalidArgumentException;
62+
63+
/**
64+
* 记录一个没有任何属性的事件
65+
*
66+
* @param distinctId 用户 ID
67+
* @param isLoginId 用户 ID 是否是登录 ID,false 表示该 ID 是一个匿名 ID
68+
* @param eventName 事件名称
69+
* @throws InvalidArgumentException eventName 或 properties 不符合命名规范和类型规范时抛出该异常
70+
*/
71+
void track(String distinctId, boolean isLoginId, String eventName) throws InvalidArgumentException;
72+
73+
/**
74+
* 记录一个拥有一个或多个属性的事件。属性取值可接受类型为{@link Number}, {@link String}, {@link java.util.Date}和
75+
* {@link java.util.List};
76+
* 若属性包含 $time 字段,则它会覆盖事件的默认时间属性,该字段只接受{@link java.util.Date}类型;
77+
* 若属性包含 $project 字段,则它会指定事件导入的项目;
78+
*
79+
* @param distinctId 用户 ID
80+
* @param isLoginId 用户 ID 是否是登录 ID,false 表示该 ID 是一个匿名 ID
81+
* @param eventName 事件名称
82+
* @param properties 事件的属性
83+
* @throws InvalidArgumentException eventName 或 properties 不符合命名规范和类型规范时抛出该异常
84+
*/
85+
void track(String distinctId, boolean isLoginId, String eventName, Map<String, Object> properties)
86+
throws InvalidArgumentException;
87+
88+
/**
89+
* 记录用户注册事件
90+
* <p>
91+
* 这个接口是一个较为复杂的功能,请在使用前先阅读相关说明:
92+
* http://www.sensorsdata.cn/manual/track_signup.html
93+
* 并在必要时联系我们的技术支持人员。
94+
*
95+
* @param loginId 登录 ID
96+
* @param anonymousId 匿名 ID
97+
* @throws InvalidArgumentException eventName 或 properties 不符合命名规范和类型规范时抛出该异常
98+
*/
99+
void trackSignUp(String loginId, String anonymousId) throws InvalidArgumentException;
100+
101+
/**
102+
* 记录用户注册事件
103+
* <p>
104+
* 这个接口是一个较为复杂的功能,请在使用前先阅读相关说明:
105+
* http://www.sensorsdata.cn/manual/track_signup.html
106+
* 并在必要时联系我们的技术支持人员。
107+
* <p>
108+
* 属性取值可接受类型为{@link Number}, {@link String}, {@link java.util.Date}和{@link java.util.List};
109+
* 若属性包含 $time 字段,它会覆盖事件的默认时间属性,该字段只接受{@link java.util.Date}类型;
110+
* 若属性包含 $project 字段,则它会指定事件导入的项目;
111+
*
112+
* @param loginId 登录 ID
113+
* @param anonymousId 匿名 ID
114+
* @param properties 事件的属性
115+
* @throws InvalidArgumentException eventName 或 properties 不符合命名规范和类型规范时抛出该异常
116+
*/
117+
void trackSignUp(String loginId, String anonymousId, Map<String, Object> properties)
118+
throws InvalidArgumentException;
119+
120+
/**
121+
* 设置用户的属性。属性取值可接受类型为{@link Number}, {@link String}, {@link java.util.Date}和{@link java.util.List};
122+
* <p>
123+
* 如果要设置的properties的key,之前在这个用户的profile中已经存在,则覆盖,否则,新创建
124+
*
125+
* @param userRecord 用户属性实体
126+
* @throws InvalidArgumentException 用户属性类型或者用户ID不合法则抛出该异常
127+
*/
128+
void profileSet(UserRecord userRecord) throws InvalidArgumentException;
129+
130+
/**
131+
* 设置用户的属性。属性取值可接受类型为{@link Number}, {@link String}, {@link java.util.Date}和{@link java.util.List};
132+
* <p>
133+
* 如果要设置的properties的key,之前在这个用户的profile中已经存在,则覆盖,否则,新创建
134+
*
135+
* @param distinctId 用户 ID
136+
* @param isLoginId 用户 ID 是否是登录 ID,false 表示该 ID 是一个匿名 ID
137+
* @param properties 用户的属性
138+
* @throws InvalidArgumentException eventName 或 properties 不符合命名规范和类型规范时抛出该异常
139+
*/
140+
void profileSet(String distinctId, boolean isLoginId, Map<String, Object> properties)
141+
throws InvalidArgumentException;
142+
143+
/**
144+
* 设置用户的属性。这个接口只能设置单个key对应的内容,同样,如果已经存在,则覆盖,否则,新创建
145+
*
146+
* @param distinctId 用户 ID
147+
* @param isLoginId 用户 ID 是否是登录 ID,false 表示该 ID 是一个匿名 ID
148+
* @param property 属性名称
149+
* @param value 属性的值
150+
* @throws InvalidArgumentException eventName 或 properties 不符合命名规范和类型规范时抛出该异常
151+
*/
152+
void profileSet(String distinctId, boolean isLoginId, String property, Object value)
153+
throws InvalidArgumentException;
154+
155+
/**
156+
* 首次设置用户的属性。
157+
* 属性取值可接受类型为{@link Number}, {@link String}, {@link java.util.Date}和{@link java.util.List};
158+
* <p>
159+
* 与profileSet接口不同的是:
160+
* 如果要设置的properties的key,在这个用户的profile中已经存在,则不处理,否则,新创建
161+
*
162+
* @param userRecord 用户属性实体
163+
* @throws InvalidArgumentException 用户属性类型或者用户ID不合法则抛出该异常
164+
*/
165+
void profileSetOnce(UserRecord userRecord) throws InvalidArgumentException;
166+
167+
/**
168+
* 首次设置用户的属性。
169+
* 属性取值可接受类型为{@link Number}, {@link String}, {@link java.util.Date}和{@link java.util.List};
170+
* <p>
171+
* 与profileSet接口不同的是:
172+
* 如果要设置的properties的key,在这个用户的profile中已经存在,则不处理,否则,新创建
173+
*
174+
* @param distinctId 用户 ID
175+
* @param isLoginId 用户 ID 是否是登录 ID,false 表示该 ID 是一个匿名 ID
176+
* @param properties 用户的属性
177+
* @throws InvalidArgumentException eventName 或 properties 不符合命名规范和类型规范时抛出该异常
178+
*/
179+
void profileSetOnce(String distinctId, boolean isLoginId, Map<String, Object> properties)
180+
throws InvalidArgumentException;
181+
182+
/**
183+
* 首次设置用户的属性。这个接口只能设置单个key对应的内容。
184+
* 与profileSet接口不同的是,如果key的内容之前已经存在,则不处理,否则,重新创建
185+
*
186+
* @param distinctId 用户 ID
187+
* @param isLoginId 用户 ID 是否是登录 ID,false 表示该 ID 是一个匿名 ID
188+
* @param property 属性名称
189+
* @param value 属性的值
190+
* @throws InvalidArgumentException eventName 或 properties 不符合命名规范和类型规范时抛出该异常
191+
*/
192+
void profileSetOnce(String distinctId, boolean isLoginId, String property, Object value)
193+
throws InvalidArgumentException;
194+
195+
/**
196+
* 为用户的数值类型的属性累加一个数值,若该属性不存在,则创建它并设置默认值为0
197+
*
198+
* @param userRecord 用户属性实体
199+
* @throws InvalidArgumentException 用户属性类型或者用户ID不合法则抛出该异常
200+
*/
201+
void profileIncrement(UserRecord userRecord) throws InvalidArgumentException;
202+
203+
/**
204+
* 为用户的一个或多个数值类型的属性累加一个数值,若该属性不存在,则创建它并设置默认值为0。属性取值只接受
205+
* {@link Number}类型
206+
*
207+
* @param distinctId 用户 ID
208+
* @param isLoginId 用户 ID 是否是登录 ID,false 表示该 ID 是一个匿名 ID
209+
* @param properties 用户的属性
210+
* @throws InvalidArgumentException eventName 或 properties 不符合命名规范和类型规范时抛出该异常
211+
*/
212+
void profileIncrement(String distinctId, boolean isLoginId, Map<String, Object> properties)
213+
throws InvalidArgumentException;
214+
215+
/**
216+
* 为用户的数值类型的属性累加一个数值,若该属性不存在,则创建它并设置默认值为0
217+
*
218+
* @param distinctId 用户 ID
219+
* @param isLoginId 用户 ID 是否是登录 ID,false 表示该 ID 是一个匿名 ID
220+
* @param property 属性名称
221+
* @param value 属性的值
222+
* @throws InvalidArgumentException eventName 或 properties 不符合命名规范和类型规范时抛出该异常
223+
*/
224+
void profileIncrement(String distinctId, boolean isLoginId, String property, long value)
225+
throws InvalidArgumentException;
226+
227+
/**
228+
* 为用户的一个或多个数组类型的属性追加字符串,属性取值类型必须为 {@link java.util.List},且列表中元素的类型
229+
* 必须为 {@link String}
230+
*
231+
* @param userRecord 用户属性实体
232+
* @throws InvalidArgumentException 用户属性类型或者用户ID不合法则抛出该异常
233+
*/
234+
void profileAppend(UserRecord userRecord) throws InvalidArgumentException;
235+
236+
/**
237+
* 为用户的一个或多个数组类型的属性追加字符串,属性取值类型必须为 {@link java.util.List},且列表中元素的类型
238+
* 必须为 {@link String}
239+
*
240+
* @param distinctId 用户 ID
241+
* @param isLoginId 用户 ID 是否是登录 ID,false 表示该 ID 是一个匿名 ID
242+
* @param properties 用户的属性
243+
* @throws InvalidArgumentException eventName 或 properties 不符合命名规范和类型规范时抛出该异常
244+
*/
245+
void profileAppend(String distinctId, boolean isLoginId, Map<String, Object> properties)
246+
throws InvalidArgumentException;
247+
248+
/**
249+
* 为用户的数组类型的属性追加一个字符串
250+
*
251+
* @param distinctId 用户 ID
252+
* @param isLoginId 用户 ID 是否是登录 ID,false 表示该 ID 是一个匿名 ID
253+
* @param property 属性名称
254+
* @param value 属性的值
255+
* @throws InvalidArgumentException eventName 或 properties 不符合命名规范和类型规范时抛出该异常
256+
*/
257+
void profileAppend(String distinctId, boolean isLoginId, String property, String value)
258+
throws InvalidArgumentException;
259+
260+
/**
261+
* 删除用户已存在的一条或者多条属性
262+
*
263+
* @param userRecord 用户属性实体
264+
* @throws InvalidArgumentException 用户属性类型或者用户ID不合法则抛出该异常
265+
*/
266+
void profileUnset(UserRecord userRecord) throws InvalidArgumentException;
267+
268+
/**
269+
* 删除用户某一个属性
270+
*
271+
* @param distinctId 用户 ID
272+
* @param isLoginId 用户 ID 是否是登录 ID,false 表示该 ID 是一个匿名 ID
273+
* @param property 属性名称
274+
* @throws InvalidArgumentException 用户属性类型或者用户ID不合法则抛出该异常
275+
*/
276+
void profileUnset(String distinctId, boolean isLoginId, String property) throws InvalidArgumentException;
277+
278+
/**
279+
* 删除用户属性
280+
*
281+
* @param distinctId 用户 ID
282+
* @param isLoginId 用户 ID 是否是登录 ID,false 表示该 ID 是一个匿名 ID
283+
* @param properties 用户属性名称列表,要删除的属性值请设置为 Boolean 类型的 true,如果要删除指定项目的用户属性,需正确传 $project 字段
284+
* @throws InvalidArgumentException 用户属性类型或者用户ID不合法则抛出该异常
285+
*/
286+
void profileUnset(String distinctId, boolean isLoginId, Map<String, Object> properties)
287+
throws InvalidArgumentException;
288+
289+
/**
290+
* 删除用户所有属性
291+
*
292+
* @param userRecord 用户属性实体
293+
* @throws InvalidArgumentException 用户属性类型或者用户ID不合法则抛出该异常
294+
*/
295+
void profileDelete(UserRecord userRecord) throws InvalidArgumentException;
296+
297+
/**
298+
* 删除用户所有属性
299+
*
300+
* @param distinctId 用户 ID
301+
* @param isLoginId 用户 ID 是否是登录 ID,false 表示该 ID 是一个匿名 ID
302+
* @throws InvalidArgumentException distinctId 不符合命名规范时抛出该异常
303+
*/
304+
void profileDelete(String distinctId, boolean isLoginId) throws InvalidArgumentException;
305+
306+
/**
307+
* 增加item 记录
308+
*
309+
* @param itemRecord 维度表属性实体
310+
* @throws InvalidArgumentException itemId或itemType字段不合法则抛出该异常
311+
*/
312+
void itemSet(ItemRecord itemRecord) throws InvalidArgumentException;
313+
314+
/**
315+
* 设置 item
316+
*
317+
* @param itemType item 类型
318+
* @param itemId item ID
319+
* @param properties item 相关属性
320+
* @throws InvalidArgumentException 取值不符合规范抛出该异常
321+
*/
322+
void itemSet(String itemType, String itemId, Map<String, Object> properties) throws InvalidArgumentException;
323+
324+
/**
325+
* 删除维度表记录
326+
*
327+
* @param itemRecord 维度表属性实体
328+
* @throws InvalidArgumentException itemId或itemType字段不合法则抛出该异常
329+
*/
330+
void itemDelete(ItemRecord itemRecord) throws InvalidArgumentException;
331+
332+
/**
333+
* 删除 item
334+
*
335+
* @param itemType item 类型
336+
* @param itemId item ID
337+
* @param properties item 相关属性
338+
* @throws InvalidArgumentException 取值不符合规范抛出该异常
339+
*/
340+
void itemDelete(String itemType, String itemId, Map<String, Object> properties) throws InvalidArgumentException;
341+
342+
/**
343+
* 立即发送缓存中的所有日志
344+
*/
345+
void flush();
346+
347+
/**
348+
* 停止SensorsDataAPI所有线程,API停止前会清空所有本地数据
349+
*/
350+
void shutdown();
351+
}

0 commit comments

Comments
 (0)