Skip to main content

Events

Events are the core of how Moveo One understands and predicts user behavior.
Every interaction, screen view, or system action is represented as an event — allowing you to visualize, analyze, and model user experience across sessions.


Overview

Moveo One best works if you collect three types of events:

TypeDescription
Non user interactionsAppear, Disappear... poupups etc.. Events for elements that are driven by functions of the app/website itself
Direct user interactionsClick of a button, text input, scroll etc..
Custom events for business logicSign up, Sign in, Checkout, etc..

Each event is time-stamped, context-aware, and connected to a unique session and user identifier.


Event Structure

An event is a JSON object with a flexible schema.
All SDKs and API endpoints follow this format:

{
"context": "main_screen",
"type": "track",
"prop":
{
"sg": "user_interactions",
"eID": "main_button",
"eA": "tap",
"eT": "button",
"eV": "primary_action"
},
"timestamp": 1760082029814
}

Required Fields

FieldTypeDescription
contextstringSession context
typestringtype of the event (start_session
propobjectKey-value data describing the event
prop -> sgstringSemantic group
prop -> eIDstringElemnt ID - unuque id, in semantic group, of element that produced event
prop -> eAstringEvent Action
prop -> eTstringElement Type
prop -> eVstringValue, usually text, of en element
timestamplongEpoch timestamp when event occured

Custom Events

You can send any event that fits your product’s logic.
For example:

moveo.track('checkout_start', {
items: 3,
totalValue: 49.99
});

Event Naming Best Practices

To keep analytics consistent and queryable, follow these conventions:

Recommended:

  • Use lowercase snake_case naming (e.g., add_to_cart, session_end)
  • Group similar actions by prefix (checkout_, profile_, search_)
  • Keep event names stable — changing them breaks history continuity
  • Use properties to add detail, not in the event name

Avoid:

  • Spaces, uppercase letters, or random casing (e.g., AddToCart, CheckoutStart)
  • Overloaded events that mix multiple actions (e.g., action_performed)

Event Lifecycle

  1. Event is created locally by SDK
  2. Added to event queue and optionally batched
  3. Sent to Moveo One API endpoint
  4. Validated and stored
  5. Processed by analytics and predictive pipeline

You can monitor this lifecycle in debug mode (via browser console, Xcode logs, or Logcat).


Event Debugging

Enable SDK debug mode to inspect events as they’re queued and flushed:

Web

const moveo = MoveoOne.init('YOUR_TOKEN_HERE', { debug: true });

Console output example:

[MoveoOne] Tracking event: checkout_start
[MoveoOne] Queue size: 2
[MoveoOne] Flush triggered

Batch Sending

SDKs automatically batch multiple events into one network call for performance.
You can manually trigger a flush (send) operation using the methods below:

moveo.flush();

Example Dashboard Output

When events arrive successfully, they appear in your Moveo One dashboard as sessions:

  • Events are grouped into sessions

  • Sessions are distincted and countable

  • Grouped and processed events can be viewed in AI Movel Builder section