Skip to content

Analytics & Insights

Analytics answers the most important question in game development: what are players actually doing? Without data, you’re guessing. With Quest Data, you see exactly where players get stuck, where they leave, and what keeps them coming back.

  • How to read the dashboard overview
  • What retention numbers mean and when to worry
  • How to build funnels that reveal drop-off points
  • Where players die on your map (heatmaps)
  • Which features nobody uses (engagement)
  • What devices are causing performance issues

The overview page is your daily pulse check. Open it every morning to see if your game is healthy.

Dashboard Overview with event chart, KPI cards, and live feed

Key metrics at a glance:

MetricWhat it tells youHealthy range
DAU (Daily Active Users)How many unique players todayGrowing or stable week-over-week
SessionsHow many times the game was opened1.5-3x your DAU (players return multiple times)
Avg Session DurationHow long players stay5-30 min for casual, 30-120 min for mid-core
EventsTotal tracked eventsProportional to DAU

The Live Feed at the bottom shows events arriving in real-time. Toggle Live to watch events as they happen — useful during playtests and launch day.


Retention tells you how many players come back after their first day. It’s the single most important metric for a game’s long-term health.

Retention table with Day 1/3/7/14/30 cohorts

MetricWhat it meansBenchmark (casual mobile)
Day 1% of players who return the next day30-40% is good
Day 7% who return after a week10-15% is good
Day 30% who return after a month3-5% is good

What to do with this data:

  • Day 1 < 20%: Your first impression is bad. Fix onboarding, tutorial, or first 5 minutes.
  • Day 1 good, Day 7 bad: Players like the start but run out of content. Add progression depth.
  • Day 7 good, Day 30 bad: Long-term engagement loop is missing. Consider daily rewards, events, social features.

Retention is calculated automatically from session_start events — no extra code needed. The SDK sends this event when the game launches.


Funnels show you where players drop off in a multi-step process. Perfect for tutorials, onboarding flows, or purchase journeys.

Funnel visualization with drop-off percentages

Create a funnel in the dashboard with these steps:

  1. tutorial_start — Player begins tutorial
  2. tutorial_move — Learns movement controls
  3. tutorial_combat — Learns combat
  4. tutorial_complete — Finishes tutorial

If 1000 players start the tutorial but only 400 finish it, your funnel shows exactly which step loses the most players. Maybe 30% drop off at combat — that step is too hard or too boring.

Track each funnel step as a separate event:

QuestData.track("tutorial_start")
# ... player does the step ...
QuestData.track("tutorial_move")
# ... player does combat ...
QuestData.track("tutorial_combat")
# ... player finishes ...
QuestData.track("tutorial_complete")

See Event Tracking Reference for details.


Heatmaps visualize where things happen on your map — deaths, item pickups, player movement. Upload a level screenshot as background for spatial context.

Heatmap with death hotspots on a level map

What to trackEventWhat you learn
Death locationsplayer_deathWhere difficulty spikes are
Item pickupsitem_pickupWhether hidden items are found
Player movementplayer_positionWhich areas are explored

Pass a Node2D or Node3D as the third argument to track() and the SDK extracts coordinates automatically:

# Track death at the player's position
QuestData.track("player_death", {"enemy": "dragon"}, player_node)

Engagement tracking reveals which features players actually use — and more importantly, which ones they ignore.

Engagement feature grid showing interaction counts

  • Most used features — ranked by interaction count
  • Dead features — things nobody touches (candidates for removal or redesign)
  • Usage patterns — which screens lead to which actions

Use the dedicated UI tracking function or the zero-code QuestButton node:

# Code-based tracking
QuestData.track_ui("main_menu", "play_button", "click")
QuestData.track_ui("shop", "sword_item", "view")
# Or attach QuestButton script to any Button node (zero code)

Performance telemetry tracks FPS, memory usage, and device hardware across your player base. Find out which devices crash, which GPUs drop frames, and whether your latest update made things worse.

Performance dashboard with FPS distribution and device breakdown

MetricWhat it tells you
FPS distributionHow many players are below 30 FPS
Memory usageWho’s running out of RAM
Device breakdownWhich phones/GPUs/OS versions have problems
Crash rate per deviceWhich hardware causes the most crashes

The SDK automatically tracks a performance_sample event periodically. No extra code needed for basic telemetry. For custom performance tracking:

# Track a specific performance concern
QuestData.track("lag_spike", {
"duration_ms": 500,
"scene": "boss_arena",
"active_entities": 200
})