Analytics (tracker)
FRVR.tracker is the analytics pipeline. It fans events out to every configured provider (FRVR’s own backend, Meta Pixel, AppsFlyer adapters you’ve wired in, etc.), automatically attaching player ID, app version, channel, and locale to each event.
Essential events every game should send
Section titled “Essential events every game should send”FTUE (first‑time user experience)
Section titled “FTUE (first‑time user experience)”Track each tutorial step in order. Re‑reporting an earlier step is a no‑op.
If your onboarding isn’t linear — e.g. separate funnels for shop and combat — use ftueUnordered with a numbering scheme:
Level / round funnels
Section titled “Level / round funnels”Custom events
Section titled “Custom events”With a numeric value (LTV, score, duration):
Event names should be snake_case; fields should be flat where possible.
Add context to every event
Section titled “Add context to every event”If every event needs the same extra fields — current level, build variant, etc. — register a function that returns them:
Runs on every event; mutate fields in place.
Counters and persistent values
Section titled “Counters and persistent values”Small counters stored on the device and included on future events:
Consent & queueing
Section titled “Consent & queueing”Before the player’s consent status is known, up to 100 events are queued. Once consent resolves, the queue is either dispatched (if granted) or dropped (if denied). You don’t have to gate your own calls — just fire events normally.
Configure providers
Section titled “Configure providers”Built‑in events you get for free
Section titled “Built‑in events you get for free”page_loading— at the start ofinit()game_loaded— when bootstrap completesdevice_info— after bootstrap, with GPU/CPU hints
You can suppress any of these on a per‑channel basis; talk to your FRVR contact if you need that.
Live analytics
API summary
Section titled “API summary”| Method | Purpose |
|---|---|
logEvent(name, fields) | Fire a custom event. |
logValuedEvent(name, value, fields) | Event with a numeric value. |
ftue(step, name, fields) | Sequential onboarding step. |
ftueUnordered(step, name, fields) | Onboarding step in a non‑linear funnel. |
levelStart(name, fields?) | Level started. |
levelEnd(name, fields?) | Level finished. |
set(name, value) | Persistent key/value attached to events. |
inc(name, by?) | Increment a persistent counter. |
addExtraFieldFunction(fn) | Enrich every event with dynamic fields. |
loaded() | Emit game_loaded (the bootstrapper does this for you). |