Analytics
Read concurrent users, the discovery funnel, weekly cohort retention and discovery placements on the Analytics page, and shop sales on Shop Analytics.
7 min read
What Analytics shows#
The Analytics page (/dashboard/{gameId}/analytics, under Game in the game sidebar) is where you watch whether your game is growing. It answers four questions:
| Card | Question it answers |
|---|---|
| Concurrent users | How many players are in the game at once, and when? |
| Discovery funnel | Of the people who saw the game in the launcher, how many clicked, installed and actually played? |
| Weekly cohort retention | Do new players come back after one day, one week, two weeks and a month? |
| Discovery placements | Which storefront placements are sending players your way? |
Everything on the page is read-only and refreshes on its own every minute while the browser tab is visible (the page header says "Updated every minute"). Sales data lives on a separate page, Shop Analytics, covered at the end.
Analytics needs the analytics.read capability, which Owner, Developer, Moderator and Support all carry. Finance members do not see the page. See Members, roles and staff for the full matrix.
Concurrent users#
The first card plots CCU (concurrent users) as an area chart. The value for each bucket is the average of the health samples your game server reported during that bucket — "CCU averaged over each bucket", as the card puts it — so a brief spike inside a one-hour bucket is smoothed, not hidden.
Choose a range#
Four buttons on the card's right switch the window. The bucket size follows the window:
| Button | Window | Bucket |
|---|---|---|
| Last 1h | past hour | 1 minute |
| Last 24h (default) | past day | 5 minutes |
| Last 7d | past week | 1 hour |
| Last 30d | past month | 1 hour |
For the two short ranges the X axis is labelled with clock times; for the long ranges with dates. Hover a point to see the exact timestamp and CCU in a tooltip.
If the server has never reported for the chosen window, the card shows "No CCU data yet for this range." A game that has not launched hosting yet has no server and therefore no CCU; start with Launch and hosting.
Health samples are only retained for about a month, which is why the widest range is Last 30d. The same samples feed the live health panels on the Overview page.
Discovery funnel#
The Discovery funnel card covers the last 30 days and draws five horizontal bars, each scaled to the width of the first (impressions). Next to every bar after the first you see the count and a "from prev" percentage — the conversion from the step above.
| Step | What counts as one |
|---|---|
| Impressions | Your game card was shown in the launcher's Discover grid |
| Clicks | A player clicked that card |
| Install starts | A launch of your game reached the downloading stage (content download began) |
| Install completes | That launch finished successfully |
| First sessions | A player joined your game server for the very first time during the window |
The first four steps are events the Vastopia launcher sends as players browse and launch. Each install start is counted once per launch attempt; a failed launch never produces an install complete. First sessions is different in kind: it is derived from your server's join activity, not from the launcher, and counts players whose earliest-ever join falls in the window. A returning player is never a first session.
Use the "from prev" percentages to locate the weakest step:
- Low Clicks from impressions: the card is not compelling. Work on the icon, cover and excerpt in Game details and branding.
- Many Install starts but few Install completes: players abandon the download. Large builds hurt here; see Builds and versions.
- Install completes without First sessions: players installed but never reached the server — check that the game is online on the Overview page.
The funnel is rebuilt every hour (at five minutes past the hour, UTC), looking back two hours so nothing is missed around day boundaries. Expect up to an hour of delay before a click appears. Raw discovery events are retained for roughly 90 days; the hourly rollups that the card reads are kept indefinitely, so the 30-day window is always fully covered.
Weekly cohort retention#
The Weekly cohort retention card is a table with one row per cohort week, newest first, up to 12 weeks:
| Column | Meaning |
|---|---|
| Cohort week | The Monday (UTC) that starts the week |
| Size | Players whose first-ever join to this game landed in that week |
| D1, D7, D14, D30 | Share of the cohort that joined again around the 1-, 7-, 14- and 30-day mark |
A cohort is defined by the player's first player.join for this game, as the card's own caption explains. The "anniversary" for each column is anchored three days into the cohort week, and a player counts as retained if they joined at any point within 12 hours either side of that anniversary — a full-day window, so a player in a different time zone is not undercounted.
Cells render as "—" until the anniversary has actually passed: a cohort that started this week cannot have a D7 yet. Once measurable, the value is colour-coded — green at 40% and above, amber from 20% to 40%, plain text below that, and muted when nobody returned.
The table is recomputed once a day at 02:10 UTC. Until the first rollup after players start joining, the card says "No cohorts yet. The daily retention rollup runs at 02:10 UTC; cohorts populate after first players join."
Discovery placements#
The last card breaks the funnel's first two steps down by placement — the location in the storefront where the impression happened — for the last 30 days:
| Column | Meaning |
|---|---|
| Placement | Placement identifier, as the launcher reports it |
| Impressions | Times your card was shown there |
| Clicks | Clicks from there |
| CTR | Clicks divided by impressions |
Rows are ordered by impressions, highest first. Today the launcher reports one browsing placement, discover_grid — the game grid on the Discover screen. Install events are filed under a technical placement named _install; if that row appears it carries no impressions or clicks of its own. Until the launcher has sent anything, the card reads "No discovery events yet. The launcher emits these as users browse the storefront."
Reading the page together#
A healthy, growing game shows CCU rising week over week, a funnel that narrows gently rather than collapsing at one step, D1 retention in the green, and a placements table whose CTR holds steady as impressions grow. A typical weekly check:
- Open Analytics and set the CCU range to Last 7d. Look for the daily peak and whether it moved.
- Read the funnel's "from prev" figures top to bottom and note the weakest step.
- Scan the newest fully-measured cohort rows (those with a D7 value) and compare D1 and D7 with the rows above them.
- If the game sells items, open Shop Analytics (below) and compare the same week's conversion.
Shop Analytics#
Shop Analytics (/dashboard/{gameId}/shop-analytics, under Shop in the sidebar) reports on the in-game shop you manage under Items. It requires shop.manage, so only Owner and Developer members see it. How to set up products and how earnings reach your account are covered in Shop, revenue and payouts; this section is about reading the numbers.
A range switch in the header offers 7d, 30d (default) and 90d. Four stat cards summarize the range:
| Card | Meaning |
|---|---|
| Creator earnings | Your net share for the range, in USD |
| Purchases | Completed purchases |
| Unique buyers | Distinct players who bought something |
| Conversion | Purchases divided by shop opens, as a percentage; "—" when the shop was never opened in the range |
Below the cards:
- Daily revenue (V-Coins, creator's net) — an area chart of your net coin earnings per day.
- Top items — the best-selling items (up to 10) with units sold and coin revenue, taken from the most recent day in the range. It reads "No data yet." until a day with sales has been rolled up.
- Recent purchases — the latest 25 purchases with item name, time, status (
pending,succeeded,failedorrefunded) and price in coins, newest first.
Shop statistics are rolled up once a day at 02:45 UTC, so today's sales appear in the chart and stat cards tomorrow; the Recent purchases list is live.
With AI (MCP)#
There is no MCP tool for reading analytics. The closest companions are get_live_status, which reports whether the game is deployed and where its server is, and get_deploy_status for build progress; both are covered in Push to Test.
