Analytics
The retention funnel of each journey, how abandoned steps are counted, and the events sent to ExyliaAnalytics.
A journey exists to keep new players, so ExyliaJourney measures how well each one does it.
The funnel
/journeyadmin stats <journey>, FUNNEL on a journey's screen, or a right-click on it in the journey list,
opens its funnel.
The header shows the whole journey: how many times it was started, completed, skipped and abandoned, its completion rate and the average time to finish it. Below, one card per step, in order:
| Figure | Meaning |
|---|---|
| Reached | Players who started this step. |
| Share | Reached, over the journey's starts. |
| Completed | Players who completed it. |
| Pass rate | Completed, over reached. |
| Skipped | Players who skipped it. |
| Abandoned | Players who stopped making progress on it (see below). |
| Average time | How long it took to complete, on average. |
The step that loses the most players is shown in red. That is the step to make clearer, shorter or better guided.
Counters are only ever added to, never rewritten, so several servers sharing one database build one funnel
together. Renaming a step's id starts its counters from zero; rewording its title does not.
Abandoned steps
A step counts once as abandoned when it sees no progress for abandon-after (config.yml, 7 days by
default):
- the player left and never came back while on it — offline players are checked once an hour;
- or the player keeps playing but does nothing for it.
A step that runs out of its timeout fails: the journey stops (its triggers can start it again, from the
first step) and the step counts as abandoned too, with the reason timeout. abandon-after: 0s turns idle abandonment off.
ExyliaAnalytics
With ExyliaAnalytics installed, every journey reports its events to the Exylia Analytics platform, where they can be charted and turned into funnels next to the rest of the server's data. Without it nothing is sent and nothing needs configuring.
| Event | When | Properties |
|---|---|---|
journey.start | A journey starts. | journey, total_steps, cause (first_join, join, command, region_enter, npc_click, journey_complete, permission, custom or api) |
journey.step_complete | A step is completed. | journey, step, step_number, seconds |
journey.step_skip | A step is skipped. | journey, step, step_number |
journey.skip | A whole journey is skipped. | journey, step, step_number (where it was) |
journey.complete | A journey is completed. | journey, seconds |
journey.abandon | A step counts as abandoned. | journey, step, step_number, reason (idle or timeout) |
journey.stop | A journey is stopped by an admin (command or editor) or another plugin. A timeout is an abandon, not a stop. | journey, step, step_number, reason (admin or api) |
journey.catalog | Server-wide, one per loaded journey: on start, after a reload or an editor change, and once a day. | journey, name (plain text), steps (step ids in order, comma separated), steps_truncated (only when the ids did not fit in 200 characters), total_steps, triggers (comma separated), repeatable, skippable |
step_number counts from 1. Admin test runs send nothing.
Something missing on this page? Tell us on Discord