事件
除了以上已经列出的有明确定义的事件外,开发者可以根据自己的分析需求,进行自定义事件的上报。
自定义事件,即事件的 _event_name 由开发者自定义。
事件名称要求:
- string 类型
- 只能以字母开头,不能以下划线开头,其余字符可包含数字、小写字母和下划线 "_"
- 长度最大为 40 个字符
- 仅支持小写字母
自定义属性
事件的属性是Record<string, Object> 对象,其中每个 key-value 代表一个属性。
key 为该属性的名称
- string 类型
- 只能以字母开头,不能以下划线开头,其余字符可包含数字、小写字母和下划线"_"
- 长度最大为 40 个字符
- 仅支持小写字母
value 为该属性的值
- 支持基本数据类型 string、number、boolean 与数组
- 对于数组的元素,只支持字符串类型
- 对于其他类型都将强制转为字符串存储
自定义属性的属性类型
一个自定义属性的存储数据类型,会以第一次上报数据的格式自动由系统进行识别,一旦确定无法修改。相同产品的属性类型在第一次上报时进行确定。后续不同SDK、不同事件上报的同名属性只有类型与第一次一致才会入库。
数据类型 | 说明 | 示例 |
数值型-number | 数据范围是 -9E15 至 9E15 | 不带引号的数值,如:1234,12.34 |
字符串型-string | 上限2KB | "dashen","北京"带引号的数值也会被识别为字符 |
字符串型-string(日期型字符串) | "yyyy-MM-dd HH:mm:ss.SSS"或"yyyy-MM-dd HH:mm:ss",如需表示日期,可使用"yyyy-MM-dd 00:00:00" | "2021-03-01 12:34:56","2021-03-01 12:34:56.789""2021-03-01 00:00:00" |
布尔型-boolean | true 或 false | true,false带引号的 true 或 false 会被识别为字符 |
列表型-array | 列表中的元素都会转变为字符串类型 | ["a","1","true"] |
注:属性的存储数据类型,决定了在分析模型中可以选择的分析逻辑,比如数值型可以进行最大值、最小值、求和等计算,布尔型可以进行为真数、为假数的计算,所以报送数据的格式,需要考虑分析场景和业务需求,制定完整的埋点方案,并按埋点方案进行格式确定。
方法示例
public static trackCustom(seCustomEventModel: SECustomEventModel)
SECustomEventModel类参数说明:
参数名称 | 参数含义 | 参数类型 | 是否必传 |
eventName | 开发者自定义事件名称 | string | 是 |
preProperties | 预置属性,key只支持_pay_amount 和 _currency_type 两个字段 | Record<string, Object> | 否 |
customProperties | 开发者自定义事件属性 | Record<string, Object> | 否 |
调用示例
import { SolarEngineManager } from '@solarengine/core';
let customEventModel = new SECustomEventModel();
customEventModel.eventName = "xxx自定义eventNamexxx"
let preProperties: Record<string, Object> = {};
preProperties["_pay_amount"] = 11;
preProperties["_currency_type"] = "CNY";
let customProperties: Record<string, Object> = {};
customProperties["key1"] = "value1";
customProperties["key2"] = "value2";
customProperties["key3"] = "value3";
customEventModel.preProperties = preProperties;
customEventModel.customProperties = customProperties;
SolarEngineManager.trackCustom(customEventModel);