Core concepts
Events and identity
Events describe what happened. Identity determines which app user and device history that evidence belongs to.Event envelope
{
"userId": "user-42",
"anonymousId": "device-abc",
"event": "purchase_completed",
"messageId": "purchase-42",
"properties": { "plan": "pro", "amount": 29 }
}- At least one external or anonymous identity is required.
- Properties are flat scalar values.
- Batches accept at most 100 events.
messageIdis the idempotency key.
Anonymous to known
The SDK begins with an anonymous device identity. Calling identify() links future behavior to a stable external user ID and carries prior anonymous history through atomic database resolution.