Product analytics
Custom product events with properties, correlated to the session and person that produced them.
Track what people do — signed_up, order_placed, screen_view — with any JSON
properties. Events are buffered, batched and session-correlated, so tracking is
cheap on the hot path and every event can be seen in the context of its session.
Tracking
context.nexus.events.track('order_placed', properties: {'total': 42.0, 'currency': 'USD'});
await context.nexus.events.flush(); // optional: send now
// Called for every tracked event (surveys and in-app triggers use this).
context.nexus.events.onTracked = (name) => debugPrint('tracked $name');Properties
- Any JSON-serialisable object.
defaultPropertiesfrom the SDK config are merged into every event; call-site properties win. - Up to 1000 events per request; event names up to 200 characters.
- Server SDKs accept per-call context:
distinctId,sessionKey,deviceKey,release,appVersion,osType,osVersion,browser,timestamp. - Omit
timestampand the server stamps arrival time — pass it explicitly when sending events that happened earlier.
Naming events
Use object_action in the past tense (order_placed, invite_sent), keep names
stable, and put variable parts in properties — screen_view with
{name: 'checkout'}, not checkout_screen_view. The console's event catalog
lists every distinct name it has seen.
Events power other products
In-app messages and surveys can be triggered by an event name: tracking it on the device shows the message.
