Skip to documentation

Events Reference

Kixo auto-collects the common events below; the exact set and wire shape vary by platform. All events include standard fields: device_id, session_id, timestamp, and properties.

Auto-collected events

Event TypeEvent NamePlatformProperties
screen_viewScreen nameiOS, Androidscreen_name, screen_class
screen_visitResolved screen nameiOS, Androidscreen_id, screen_name, visit_id, entry_index, entered_at, exited_at, dwell_ms, exit_reason, trigger metadata; iOS also includes tap_count and scroll_count
page_viewpage_viewWeburl, path, title, referrer
tapElement labeliOS, Androidtarget_class, target_text, screen_name
clickclickWebtag, path, text, href, x, y
session_startsession_startWeb, iOS, Androidsession_id; platform-specific lifecycle context
session_endsession_endWeb, iOS, Androidsession_id; Web includes duration_ms when the end is observable
scroll_depthscroll_25scroll_100Webdepth (25, 50, 75, 100), url, path
interactionrage_clickWebtag, path, text, click_count, x, y
interactiondead_clickWebtag, path, text, x, y
errorjs_error or unhandled_rejectionWebmessage, stack, type
crashCrash typeiOS, Androidmessage, stack, exception or signal context
networknetwork_request (Web); aggregate or route label (iOS)Web opt-in, iOS opt-inSanitized route, method/status family, duration and outcome
performanceMetric name (LCP, FCP, CLS, INP, TTFB)Webvalue, rating, id, delta
heatmap_clickheatmap_clickWebx, y, viewport_width, viewport_height, page_url, element_selector
push_receivedPush idiOS; Android/Web when integratedpush_id, kixo_campaign_id, app_state, content_hash
push_openPush idAll (host integration required on Android/Web)push_id, kixo_campaign_id, time_to_open_ms, interaction_type
push_silentPush idiOS, Androidpush_id, kixo_campaign_id, content_hash
push_dismissedPush idiOS; Android/Web with host integrationpush_id, kixo_campaign_id, interaction_type
push_actionPush idiOS; Android with host integrationpush_id, kixo_campaign_id, action_id
customYour event nameAllAny key-value pairs you provide

Standard events (recognized by name)

Kixo recognizes eleven canonical event names. Track any of them via Kixo.track("purchase", {amount: 49.99, currency: "USD"}) 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. If your system stores money in minor units, amount_cents is also accepted.

Canonical kindAliasesRecommended propsPowers
signupsign_up, signed_up, signup_completed, sign_up_completed, account_created, user_registeredAcquisition funnel
activationactivated, user_activated, aha_momentActivation funnel, aha-moment
purchasepurchased, purchase_completed, order_completed, order_placed, checkout_completedamount, currencyRevenue / ARPU
subscribe_startsubscribe_started, subscription_startedplan, amount, currency, intervalMRR, cohort retention
subscribe_renewedsubscription_renewedplan, amountRecurring revenue
trial_starttrial_started, free_trial_startedplan, daysTrial-conversion funnel
cancelcancelled, subscription_cancelled, subscription_canceledplanSubscription lifecycle, churn
upgradeplan_upgradedfrom_plan, to_planExpansion revenue
downgradeplan_downgradedfrom_plan, to_planRevenue compression
shareshared, content_sharedchannelVirality coefficient
inviteinvited, invite_sent, referral_sentK-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 — the event family, such as the types shown 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