Analytics
Every avatar you own has a private analytics dashboard at three.ws/walk-analytics — sessions, distance, time, where it walked, and the conversion events you fire yourself. All figures come from real walk activity; nothing is sampled or estimated.
What's measured
| Metric | Meaning |
|---|---|
| Total sessions | Sessions counted across the selected window. |
| Avg. duration | Total walk time ÷ total sessions. |
| Total distance | Metres walked, summed from per-frame movement. |
| Unique origins | Distinct host sites the avatar walked on. |
| Time series | Per-day sessions, distance, and duration — gaps filled with zeroes for a continuous chart. |
| Top origins | The top 10 embed hosts by session count. |
| Events | Your conversion events with a count and conversion rate (events ÷ sessions). |
How collection works
The walk runtime accumulates two running totals — horizontal distance and
session wall-clock — and flushes a compact batch to POST /api/walk/metrics
roughly every 60 seconds, plus once on page hide via
navigator.sendBeacon. One batch becomes a single per-day rollup row,
so an hour of walking is a handful of rows, not thousands.
Origin/Referer header — never trusted from the request body. Your "unique origins" reflect where the avatar actually ran.
Conversion events
Beyond automatic metrics, fire your own events to measure what matters — a subscribe, a purchase, a play. From a page running the walk runtime:
// name is trimmed and capped at 64 chars; value is an optional number.
window.ThreeWalkAvatar.track('subscribe', { value: 9 });
window.ThreeWalkAvatar.track('play');
Each event posts immediately (events are sparse, unlike the batched metrics) and is attributed to the same avatar and walker as the surrounding session. The dashboard shows each event's count and its conversion rate against sessions.
Achievements
The runtime unlocks a fixed set of achievements, persisted once each:
| Code | Unlock |
|---|---|
distance_1km | 1 km walked. |
distance_5km | 5 km walked. |
sites_10 | Walked on 10 different sites. |
all_environments | Walked in all six environments. |
Access & privacy
- Owner-only. The dashboard API requires a signed-in session (or a bearer token with the
avatars:readscope) and verifies you own the avatar — others get a 403. - Anonymous walkers count too. Signed-in walkers are attributed to their account; everyone else is keyed to a rotating anonymous id, so the leaderboard and your totals still include them.
- No third-party tracking. Metrics flow only to the three.ws ingest; there is no external analytics provider in the pipeline.
The data shape
The ingest accepts this batch (all fields optional unless noted):
{
"distanceMeters": 142.5,
"durationSec": 96,
"sessions": 1,
"envId": "park",
"avatarId": "your-avatar-uuid",
"anonId": "anon-...", // required if not signed in
"achievements": ["distance_1km"],
"eventName": "subscribe", // for a conversion event
"value": 9
}