Any user action you track is called an Event. It is the core data that you send to your server.
An event consists of these parameters:
- key - the name of the event (mandatory)
- count - number of events (optional) (defaults to 1)
- sum - sum/number to report with the event (optional)
- dur - duration expressed in seconds (optional)
- segmentation - an object with key/value pairs (optional)
To understand how you can leverage Events in your dashboard check here.
You can record an Event like this:
Countly.q.push(['add_event',{
"key": "item purchase",
"count": 1,
"sum": 0,
"dur": 0,
"segmentation": {
"item_name": "rolex"
}
}]);Countly.add_event({
"key": "item purchase",
"count": 1,
"sum": 0,
"dur": 0,
"segmentation": {
"item_name": "rolex"
}
});Map<String, Object> segmentation = new ConcurrentHashMap<>();
segmentation.put("item_name", "rolex");
Countly.sharedInstance().events().recordEvent("item purchase", segmentation, 1, 0, 0);NSDictionary* dict = @{@"item_name": @"rolex"};
[Countly.sharedInstance recordEvent:@"item purchase" segmentation:dict count:1 sum:0];let dict : Dictionary<String, Any> = ["item_name": "rolex"]
Countly.sharedInstance().recordEvent("item purchase", segmentation:dict, count:1, sum:0)Countly.add_event({
"key": "item purchase",
"count": 1,
"sum": 0,
"dur": 0,
"segmentation": {
"item_name": "rolex"
}
});Map<String, Object>? segmentation = {
'item_name': '7',
};
Countly.instance.events.recordEvent('item purchase', segmentation, 1, 0, 0);
final sdk = Countly.defaultInstance!;
await sdk.events.record(
key: 'item purchase',
count: 1,
sum: 0,
dur: 0,
segmentation: {
'item_name': 'rolex',
},
);const segmentation: Record<string, string> = { 'item_name': 'rolex' };
await Countly.sharedInstance().events.recordEvent('item purchase', segmentation, 1, 0, 0);Countly.events.recordEvent("item purchase", { item_name: "rolex" }, 1, 0)Segmentation segmentation = new Segmentation();
segmentation.Add("item_name", "rolex");
await Countly.RecordEvent("item purchase", 1, 0, 0, segmentation);Dictionary<string, object> segmentation = new Dictionary<string, object>();
segmentation.Add("item_name", "rolex");
await Countly.Instance.Events.RecordEventAsync(key: "item purchase", segmentation: segmentation, count: 1, sum: 0, duration: 0);
HashMap<String, Object> segmentation = new HashMap<String, Object>();
segmentation.put("item_name", "rolex");
Countly.instance().events().recordEvent("item purchase", segmentation, 1, 0, 0);
std::map<std::string, std::string> segmentation;
segmentation["item_name"] = "rolex";
cly::Countly::getInstance().RecordEvent("item purchase", segmentation, 1, 0, 0);curl --request POST \
--url 'https://YOUR_SERVER/i' \
--header 'Accept: application/json' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'app_key=APP_KEY' \
--data 'device_id=DEVICE_ID' \
--data 'timestamp=TIMESTAMP' \
--data 'hour=HOUR' \
--data 'dow=DAYOFTHEWEEK' \
--data 'tz=TIMEZONE'
--data 'events=[{"key":"EVENT_NAME","count":EVENT_COUNT,"sum":EVENT_SUM,"dur":EVENT_DUR,"segmentation":EVENT_SEGMENTATION}]'
You should expect the response to be:
# 200
{
"result": "Success"
}