Tracking Plays
Every story has its own dashboard — a page separate from the editor that shows the story at a glance and, once it’s published, who’s playing it. Open it by clicking a story from the Studio home. From there, Open in editor takes you into the canvas to make changes.
Overview
At the top you’ll find your story’s cover, title, description, and its Live / Draft status, plus a button to jump into the editor.
Structure
The Structure card counts the pieces of your story:
- Nodes — the total number of blocks.
- Choices — how many choices connect them.
- Variables — how many variables you’ve defined.
It’s a quick sanity check — for example, a story with lots of nodes but very few choices probably isn’t branching much.
Statistics
The Statistics card answers the question the Sessions list can’t: is the story working?
- Started / Finished / Completed — how many people began, how many reached an ending, and the percentage between them.
- Playing now — sessions open at this moment.
- Length — how many blocks a full playthrough takes, and roughly how long in minutes.
- Endings reached — how the finishers split across your endings. Endings you haven’t named show up as Unnamed ending.
- Where players stop — the last block of everyone who didn’t reach an ending. This is the one to read closely: a block near the top of that list is where your story loses people.
Numbers build up from the moment a story is played, so a story that was live before this existed starts its drop-off list from today.
Getting the answers out
The Player data card exports every session as a CSV — one row per player, one column per variable. Everything typed into a User Input block is in there, alongside the ending each player reached and how far they got.
The same card takes a webhook address. Whenever someone finishes your
story, we POST the session to it as JSON — answers, ending, and the
participant’s details if your story collects them. The address has to be
https, and it has to be reachable from the public internet.
Learner report
For training, the question is usually about people, not sessions: did Anna finish, how many tries did it take her, what did she answer? The Learner report button in the Player data card downloads a CSV with one row per learner:
| Column | What it holds |
|---|---|
learner_email, learner_name, learner_age | Who they are, from their Skaz account |
attempts | How many times they started the story |
completions | How many of those reached an ending |
endings_reached | Every named ending they found, separated by ; |
first_started_at, last_activity_at | When they began, and when they last did anything |
last_status, last_steps | Where their latest attempt stands: playing, finished or interrupted, and how far it got |
| one column per variable | Their answers and scores from the latest attempt |
Learners are matched by email, so the same person on a new device is still one row.
Only stories that ask players to sign in have learners — an anonymous play has no one to put on a row, so it’s left out. Turn on sign-in when you create the story if you’ll need this. Learner reports are on the Studio and Team plans.
Sessions
Each time someone plays your published story, that playthrough is a session. The Sessions panel lists them under two tabs:
- Active — sessions that are being played right now. The list refreshes on its own, so you can watch readers move through your story live.
- Finished — sessions that have ended, whether the reader reached an ending or stopped partway.
Each row shows when the session started or ended and how many steps the reader took. Click a row to expand it and see a snapshot of that player’s variables at the point they stopped — useful for seeing what score they built up, which name they entered, or which flags they set.
Finished vs. interrupted
The Finished tab holds two kinds of ended session:
- Finished — the reader reached an ending (a block with no choices).
- Interrupted — the reader stopped without finishing (closed the tab, lost connection, or simply wandered off). After a stretch of inactivity, a still-open session is automatically marked interrupted, with a short note explaining why. These are shown in orange so you can tell them apart from clean completions.
Interrupted sessions are worth a look — a cluster of them all stopping at the same block can point to a spot where readers get stuck, bored, or confused.
Sessions only appear for published stories that people actually open. Your own previews run as real sessions too, so don’t be surprised to see your own test plays listed here.