Events Reference
Kixo auto-collects the following events across platforms. All events include standard fields: device_id, session_id, timestamp, and properties.
Auto-collected events
| Event Type | Event Name | Platform | Properties |
|---|---|---|---|
screen_view | Screen name | iOS, Android | screen_name, screen_class |
page_view | Page URL | Web | url, path, title, referrer |
tap | Element label | iOS, Android | target_class, target_text, screen_name |
click | Element selector | Web | tag, text, href, selector |
session_start | -- | All | session_id, is_first_session |
session_end | -- | All | session_id, duration_seconds |
scroll_depth | Threshold % | Web | percent (25, 50, 75, 100), url |
rage_click | Element selector | Web | click_count, selector, url |
dead_click | Element selector | Web | selector, url |
error | Error message | All | message, stack, type |
network | Request URL | iOS, Android | url, method, status_code, duration_ms |
performance | Metric name | All | metric (LCP, FCP, TTFB, etc.), value_ms |
heatmap_click | Coordinates | Web | x, y, viewport_width, viewport_height, url |
push_received | Push id | iOS | push_id, campaign_id, app_state, content_hash |
push_open | Push id | iOS | push_id, campaign_id, time_to_open_ms, interaction_type |
push_silent | Push id | iOS | push_id, campaign_id, content_hash |
custom | Your event name | All | Any key-value pairs you provide |
Standard events (recognised by name)
Kixo recognises eleven canonical event names. Track any of them via Kixo.track("purchase", {amount_cents: 4999}) and Kixo stamps a standard_kind on the event at ingest. Chat queries, segments, and campaigns can then say standard_kind = 'purchase' and catch every alias (purchase / purchased / purchase_completed / order_completed / checkout_completed) without listing them by hand.
These names also feed the AI's monetization / conversion / activation heuristics — Kixo.track("purchase") is understood as revenue with no configuration; the optional amount_cents (or amount / value) property is summed for revenue goals.
| Canonical kind | Aliases | Recommended props | Powers |
|---|---|---|---|
signup | sign_up, signed_up, signup_completed, account_created, user_registered | — | Acquisition funnel |
activation | activated, user_activated, aha_moment | — | Activation funnel, aha-moment |
purchase | purchased, purchase_completed, order_completed, order_placed, checkout_completed | amount_cents, currency | Revenue / ARPU |
subscribe_start | subscribe_started, subscription_started | plan, amount_cents, currency, interval | MRR, cohort retention |
subscribe_renewed | subscription_renewed | plan, amount_cents | Recurring revenue |
trial_start | trial_started, free_trial_started | plan, days | Trial-conversion funnel |
cancel | cancelled, subscription_cancelled, subscription_canceled | plan | Subscription lifecycle, churn |
upgrade | plan_upgraded | from_plan, to_plan | Expansion revenue |
downgrade | plan_downgraded | from_plan, to_plan | Revenue compression |
share | shared, content_shared | channel | Virality coefficient |
invite | invited, invite_sent, referral_sent | — | K-factor |
Names are matched case-insensitively. Aliases NOT in the list (e.g. bought, customer_paid) are deliberately rejected — converge on a canonical form so the taxonomy stays stable across teams.
Tagging users instead of events.If you want a persistent "has purchased" flag on the user (not just a per-event signal), call Kixo.setUserProperty("subscribe", true) — see each SDK's "Tag a user for segmentation" section ( Web / iOS / Android).
Event structure
Every event sent to Kixo follows this structure:
- event_type — one of the types listed above
- event_name — a descriptive name for the event
- device_id — unique device identifier
- session_id — groups events within a session
- timestamp — ISO 8601 timestamp
- properties — JSON object with additional data