Modules · Telemetry
Telemetry
Game events power every AI model — from offer timing to churn prediction. Send events via GM_OnGameEvent and the SDK batches them automatically.
Standard Event Schema
| event_type | When to fire | Required fields |
|---|---|---|
| session_start | Game launch, after GM_Init | player_idsession_id |
| session_end | App close / background | player_idsession_idduration_s |
| level_start | Player enters level | player_idlevel_id |
| level_complete | Level won | player_idlevel_idduration_sresult |
| level_fail | Level lost / timeout | player_idlevel_idfail_reason |
| store_open | Player opens in-game store | player_idsession_id |
| offer_shown | Auto-fired by SDK | offer_id |
| offer_accepted | Auto-fired by SDK | offer_idplayer_id |
| offer_declined | Auto-fired by SDK | offer_idplayer_id |
Sending Events
Events are batched (50 events or 30s) and flushed toPOST /v1/sdk/events/batchautomatically. Use GM_OnGameEvent for all standard events.
GM_OnGameEvent
// Send a game event to the AI pipeline
GM_OnGameEvent(
game_id,
"session_start",
R"({
"player_id": "player_001",
"session_id": "sess-uuid",
"platform": "android",
"sdk_version": "1.0.0"
})"
);
// Other events follow the same pattern:
GM_OnGameEvent(game_id, "level_complete", R"({
"player_id": "player_001",
"level_id": "world_2_boss",
"duration_s": 142,
"result": "win"
})");
GM_OnGameEvent(game_id, "level_fail", R"({
"player_id": "player_001",
"level_id": "world_2_boss",
"fail_reason": "timeout"
})");Single Event (Immediate)
For critical lifecycle events that must not be lost in a buffer. Use sparingly.
GM_SendSingleEvent
// Single event (bypasses batch buffer — use sparingly)
// Only for critical events: session_start, app_background
GM_SendSingleEvent(game_id, R"({
"event_id": "uuid-v4",
"event_type": "app_background",
"player_id": "player_001",
"client_ts": "2026-03-27T10:00:00Z"
})");How events drive the AI
M04 Show/No-Show
Uses level_fail + session depth to decide if player should see an offer
M09 Segmentation
Batches over 4h windows of level / purchase events to assign segment
M10 Churn Risk
Daily model on session_end + level_fail streaks