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:
| Type | Description | 
|---|---|
| Non user interactions | Appear, Disappear... poupups etc.. Events for elements that are driven by functions of the app/website itself | 
| Direct user interactions | Click of a button, text input, scroll etc.. | 
| Custom events for business logic | Sign 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
| Field | Type | Description | 
|---|---|---|
| context | string | Session context | 
| type | string | type of the event (start_session | 
| prop | object | Key-value data describing the event | 
| prop -> sg | string | Semantic group | 
| prop -> eID | string | Elemnt ID - unuque id, in semantic group, of element that produced event | 
| prop -> eA | string | Event Action | 
| prop -> eT | string | Element Type | 
| prop -> eV | string | Value, usually text, of en element | 
| timestamp | long | Epoch timestamp when event occured | 
Custom Events
You can send any event that fits your product’s logic.
For example:
- Web
- iOS
- Android
- Flutter
- React Native
- JS
moveo.track('checkout_start', {
  items: 3,
  totalValue: 49.99
});
MoveoOne.track(event: "checkout_start", properties: [
    "items": 3,
    "totalValue": 49.99
])
MoveoOne.track("checkout_start", mapOf(
    "items" to 3,
    "totalValue" to 49.99
))
MoveoOne.track("checkout_start", {
  "items": 3,
  "totalValue": 49.99
});
import MoveoOne from 'moveo-one-react-native';
MoveoOne.track('checkout_start', {
  items: 3,
  totalValue: 49.99
});
import MoveoOne from 'moveo-one-sdk';
MoveoOne.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 propertiesto 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
- Event is created locally by SDK
- Added to event queue and optionally batched
- Sent to Moveo One API endpoint
- Validated and stored
- 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:
- Web
- iOS
- Android
- Flutter
- React Native
- JS
moveo.flush();
MoveoOne.flush()
MoveoOne.flush()
await MoveoOne.flush();
import MoveoOne from 'moveo-one-react-native';
MoveoOne.flush();
import MoveoOne from 'moveo-one-sdk';
MoveoOne.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