Guides
Track events
One call, everywhere: an event name plus the properties you'll want to filter and group by later.
The track call
The name identifies the action; properties carry the context. From servers, pass the userId explicitly — the browser SDK fills it in from the current session.
alitycs.track('checkout_started', {
cart_value: 96.40,
currency: 'USD',
items: 3,
});Batching defaults vary by SDK. The JavaScript client flushes after 25 events or 10 seconds by default. Delivery persistence is opt-in, so enable it when you need recovery across navigation or process restarts, and explicitly flush at lifecycle boundaries.
Properties
SDKs accept common application values and serialize each top-level property to a string on the wire. Objects and arrays become JSON strings. Send at most 50 properties; keys are limited to 100 characters and serialized values to 1,000 characters.
| Type | Example | Notes |
|---|---|---|
| String | "pro" | Case-sensitive in filters |
| Number | 96.40 | Serialized as "96.4" |
| Boolean | true | Serialized as "true" |
| Date | "2026-07-03T09:41:22Z" | Keep an explicit ISO 8601 string |
| Object | {"sku": "T-401"} | Serialized as a JSON string |
Naming events
Names are stored verbatim and never prettified — signup_completed and Signup_Completed are two different events. Use snake_case, object first, action second, past tense for completed actions.
signup_completed
checkout_started
plan_upgraded
report_sharedSignupEvent
click1
NEW_USER
did-a-checkoutReserved properties
Properties prefixed with $ are set by Alitycs. You can override $timestamp for backfills; the rest are read-only.
| Property | Meaning |
|---|---|
$timestamp | When the event happened — defaults to arrival time |
$source | Which SDK or key sent it — Web SDK, Node SDK, REST |
$session_id | Browser session grouping — resets after 30 minutes idle |
$sdk_version | Library version that sent the event |