Menu

Custom Event & Property

Custom Events

       In addition to the clearly predefined events, developers can report custom events according to their own analysis needs.

       Custom event names can be defined by the developer.

Here are the naming conventions for event names:

  • String type
  • Start with letters only.
  • No more than 40 characters.
  • Contain numbers, lowercase letters and underscores only.

Custom Properties

       A custom property is a JSONObejct object where each key-value represents a property.

Key: Property Name

  • String type
  • Start with letters only.
  • No more than 40 characters.
  • Contain numbers, lowercase letters and underscores only.

Value: Property Value

  • Support basic data types like String, int, long, float, double, boolean, and date
  • For elements of an array, only string type is supported.
  • For other types, they will be forcibly converted to strings and stored.

Custom Property Types

       The data type of custom event properties is determined by their data types reported for the first time and cannot be changed once confirmed. For subsequent reporting of the same properties, only properties with the same data types as the first occurrence will be stored in the database.

Data TypeDescriptionExample
numberRange from -9E15 to 9E15, without quotation marks.1234, 12.34
stringLimit 2KB. Numbers with quotation marks will also be identified as strings."dashen", "北京", "1234", "true"
date"yyyy-MM-dd HH:mm:ss.SSS", "yyyy-MM-dd HH:mm:ss", or "yyyy-MM-dd 00:00:00""2023-03-01 12:34:56","2023-03-01 12:34:56.789","2023-03-01 00:00:00"
booleanTrue or false without quotation marks.true, false
arrayAll elements in an array will be converted into strings.["a","1","true"]

Note:

       The data type of the property determines their analysis logic available in analysis models. For example, the numerical type can perform calculations such as maximum value, minimum value, and summation, while the Boolean type can perform calculations of true and false values. Therefore, when determining the format of data reporting, you need to consider the analysis scenarios and business needs and formulate a complete event tracking plan as directions.

Function

public synchronized void track(SECustomEventModel seCustomEventModel);
ParameterDescriptionTypeRequired
customEventNameDeveloper custom event nameStringYES
customEventDataDeveloper custom event propertyJSONObjectNO
preEventDataPreset properties: only two keys, _pay_amount and _currency_type, are supported.JSONObjectNO

Sample Code

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

JSONObject customEventData = new JSONObject();
try {
    //Developer custom event properties in JSON format.
    customEventData.put("key1","value1");
    customEventData.put("key2","value2");
} catch (JSONException e) {
///
}
JSONObject preEventData = new JSONObject();
try {
     //Developer custom event properties in JSON format.
     preEventData.put("_currency_type", "USD");
     preEventData.put("_pay_amount", 11.2);
} catch (JSONException e) {
  ///
}
SECustomEventModel seCustomEventModel = new SECustomEventModel("xxxCustomEventNamexxx",preEventData,customEventData);
SolarEngineManager.getInstance().track(seCustomEventModel);


Previous
Predefined Events
Next
Event Reporting
Last modified: 2024-12-03Powered by