Analytics
The platform tracks high-level metrics for your game — daily active users, new users, retention — automatically. For everything game-specific, JestSDK.captureEvent() records custom analytics events: in-game milestones, funnel steps, feature usage, or anything else you want to measure.
JestSDK.captureEvent("level_complete", {
level: 3,
timeSeconds: 42.1,
});
Captured events show up in the Analytics tab of the Developer Console a few seconds after they fire, where you can filter and inspect them. For a walkthrough of instrumenting a game and verifying the events arrive, see the Custom events guide.
The call is fire-and-forget: it returns immediately, and the platform handles delivery in the background. There is nothing to await and no delivery result to check.
Automatic context
The platform attaches context to every event, so you don't need to add it yourself:
| Property | Description |
|---|---|
game_slug | The slug of the game that sent the event. |
game_version | The game build version the player was on. |
registered | Whether the player was registered when the event was sent. |
Events are associated with the current player automatically — registered players appear with their player ID in the Developer Console, and guests appear as anonymous.
Naming events
- Use stable, lowercase, snake_case event names (
game_over,level_complete,shop_opened). Renaming an event later splits its history. - Keep names to letters, digits, underscores, hyphens, and colons, at most 128 characters — the Developer Console's event-name filter only accepts names in this shape.
- Attach JSON-serializable primitives or simple objects as properties, and keep the set of properties small and consistent per event.
- Never put PII (names, phone numbers, message content) in event names or properties.
- Capture meaningful moments, not high-frequency signals — an event per level end is useful; an event per frame or per tap is noise.
JestSDK.captureEvent()
captureEvent(eventName: string, properties?: Record<string, unknown>): void;
Parameters:
| Name | Type | Description |
|---|---|---|
eventName | string | Name of the event, e.g. "level_complete". Use stable, lowercase, snake_case names. |
properties | Record<string, unknown> | Optional. JSON-serializable data attached to the event, e.g. { level: 5, score: 1200 }. |
The method returns void and throws if the arguments are invalid.