菜单

自定义事件

事件

除了以上已经列出的有明确定义的事件外,开发者可以根据自己的分析需求,进行自定义事件的上报。

自定义事件,即事件的 _event_name 由开发者自定义。

事件名称要求:

  • String 类型
  • 只能以字母开头,不能以下划线开头,其余字符可包含数字、小写字母和下划线 "_"
  • 长度最大为 40 个字符
  • 仅支持小写字母
  •  

属性

事件的属性是一个 JSONObject 对象,其中每个 key-value 代表一个属性。

key 为该属性的名称

  • String 类型
  • 只能以字母开头,不能以下划线开头,其余字符可包含数字、小写字母和下划线"_"
  • 长度最大为 40 个字符
  • 仅支持小写字母

value 为该属性的值

  • 支持基本数据类型 String、int、long、float、double、boolean 等以及 Date 类型与数组
  • 对于数组的元素,只支持字符串类型
  • 对于其他类型都将强制转为字符串存储

自定义属性的属性类型

一个自定义属性的存储数据类型,会以第一次上报数据的格式自动由系统进行识别,一旦确定无法修改。相同产品的属性类型在第一次上报时进行确定。后续不同SDK、不同事件上报的同名属性只有类型与第一次一致才会入库。

数据类型 说明 示例
数值型-number 数据范围是 -9E15 至 9E15 不带引号的数值,如:1234,12.34
字符型-string 上限2KB "dashen","北京"带引号的数值也会被识别为字符
时间型-date "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 synchronized void track(SECustomEventModel seCustomEventModel);
 

SECustomEventModel类参数说明:

参数名称 参数含义 参数类型 是否必传
customEventName 开发者自定义事件名称 String
preEventData 预置属性,key只支持_pay_amount 和 _currency_type 两个字段 JSONObject
customEventData 开发者自定义事件属性 JSONObject

 

调用示例

import com.reyun.solar.engine.SolarEngineManager;
import org.json.JSONObject;

JSONObject customEventData = new JSONObject();
try {
    //开发者自定义Json格式上报事件属性
    customEventData.put("key1","value1");
    customEventData.put("key2","value2");
} catch (JSONException e) {
///
}
JSONObject preEventData = new JSONObject();
try {
     //开发者自定义Json格式上报事件属性
     preEventData.put("_currency_type", "USD");
     preEventData.put("_pay_amount", 11.2);
} catch (JSONException e) {
  ///
}
SECustomEventModel seCustomEventModel = new SECustomEventModel("xxx自定义eventNamexxx",preEventData,customEventData);
SolarEngineManager.getInstance().track(seCustomEventModel);

最近修改: 2024-10-22Powered by