Funnels
Funnels visualize the conversion path through a series of events. Use them to find where players drop off during onboarding, purchases, or feature adoption.
Funnel Modes
Section titled “Funnel Modes”| Mode | Behavior | Use Case |
|---|---|---|
| Loose | Events can happen in any order, repeated events count once | Flexible user journeys (default) |
| Strict | Events must happen in exact sequence | Tutorial completion, purchase flow |
Creating a Funnel
Section titled “Creating a Funnel”Click Create Funnel in the dashboard:
- Name your funnel (e.g., “Tutorial to First Purchase”)
- Select mode: Loose or Strict
- Add steps by selecting events:
- Step 1:
tutorial_start - Step 2:
tutorial_complete - Step 3:
first_purchase
- Step 1:
- Click Save
The dashboard immediately shows conversion rates between each step.
Example: Monetization Funnel
Section titled “Example: Monetization Funnel”Track players from tutorial through purchase:
# Step 1: Tutorial StartQuestData.track("tutorial_start", {"difficulty": "normal"})
# Step 2: Tutorial CompleteQuestData.track("tutorial_complete", {"time_spent_seconds": 300})
# Step 3: First PurchaseQuestData.track("purchase_completed", { "product_id": "starter_pack", "amount": 4.99})Interpreting Drop-Off Rates
Section titled “Interpreting Drop-Off Rates”| Drop-Off % | Severity in Dashboard | Recommended Action |
|---|---|---|
| <30% | green / no banner | normal friction — monitor |
| 30–50% | amber warning banner | review UX, run a session-replay or quick survey |
| ≥50% | red critical banner | treat as a bug or blocker; fix this week |
Drop-Off Causes — Why Players Stop Here {#drop-off-causes}
Section titled “Drop-Off Causes — Why Players Stop Here {#drop-off-causes}”When a step shows a Drop-Off, the dashboard banner links to this section. The
anchor #drop-off-causes is referenced from pages/[gameId]/funnels/[id].vue.
A drop-off between Step n and Step n+1 means: of all players who fired the event at Step n, this percentage never fired the event at Step n+1 in the configured time window. The cause is almost always one of these:
1. UX / discoverability problem
Section titled “1. UX / discoverability problem”The next action exists in the game but is hard to find.
- Button blends into the background, isn’t on the first screen, or requires scrolling.
- Tooltip / hint never appeared.
- The flow has too many decisions (paradox of choice).
How to verify: record a session-replay of 5 dropped-off players. If they hesitate or wander, it’s UX. Add a guided onboarding tour or move the next CTA above-the-fold.
2. Friction / required input
Section titled “2. Friction / required input”The next step asks for something heavy.
- Sign-up form, payment, account linking, age gate, OS permission prompt, large download.
- Long loading screen between Step n and Step n+1.
How to verify: add intermediate events (shop_open, payment_method_select,
form_field_focused) and re-check the funnel. The drop probably moves to that
sub-step. Ease the friction (fewer fields, deferred sign-up, faster loading).
3. Bug — the next step is broken
Section titled “3. Bug — the next step is broken”The action is impossible right now.
- Crash on a specific OS / device / build version (cross-check with the Crashes page).
- Server-side endpoint returns 500 / timeout.
- Required asset missing in a new build.
How to verify: filter the funnel by app_version (Strict mode supports this).
If one build’s drop-off is much higher than another’s, you have a regression.
Open the Logs page for that timeframe.
4. Lack of motivation / value mismatch
Section titled “4. Lack of motivation / value mismatch”The player simply doesn’t want to continue.
- Reward doesn’t feel worth the effort (typical for tutorials, ad-watch flows).
- Feature is irrelevant to the player’s segment (try splitting the funnel by Player Tag).
- Confusing or off-tone copy.
How to verify: segment the funnel — if a tag like whale converts at 80%
and f2p at 5%, your messaging is aimed wrong. Reward-test in an
A/B Experiment.
5. Tracking issue — false positive
Section titled “5. Tracking issue — false positive”The drop-off isn’t real; it’s a bug in instrumentation.
- The Step n+1 event isn’t fired in code.
- Event names differ between client builds (typo:
purchase_completevspurchase_completed). - Schema validation is silently dropping events (Event Schemas).
How to verify: open the Live Activity page, do the Step n+1 action manually, watch for the event. If it doesn’t show up, the SDK isn’t sending it.
6. Time-window mismatch (Strict mode only)
Section titled “6. Time-window mismatch (Strict mode only)”Players reach Step n+1 but after the configured time_window_minutes.
The conversion is real, but Strict-mode disqualifies it.
How to verify: switch the funnel temporarily to Loose mode. If the drop-off disappears, your window is too tight. Increase it or accept a slower funnel.
Debugging Checklist
Section titled “Debugging Checklist”When a drop-off banner shows up, run through these in order — most issues resolve in the first 3 steps:
- Cross-reference Logs: any error spike for the same period?
- Filter by build: use Strict mode +
app_versionto compare versions. - Filter by segment: paying vs free, mobile vs desktop, new vs returning.
- Live-test the flow yourself: open Live Activity, step through, watch events.
- Session-replay: pick 3 players, watch what they did.
- A/B-test fixes: don’t ship a redesign without measurement.
API Reference
Section titled “API Reference”# Get all funnels for a gamecurl "https://quest-api.digitalfactory.at/v1/funnels" \ -H "x-game-api-key: YOUR_API_KEY"
# Get a specific funnel's conversion datacurl "https://quest-api.digitalfactory.at/v1/funnels/monetization_funnel?from=2026-01-01&to=2026-04-01" \ -H "x-game-api-key: YOUR_API_KEY"Response:
{ "funnel_id": "monetization_funnel", "mode": "loose", "steps": [ { "step": 1, "event": "tutorial_start", "count": 1000 }, { "step": 2, "event": "tutorial_complete", "count": 950, "dropoff": 5.0 }, { "step": 3, "event": "first_purchase", "count": 285, "dropoff": 70.0 } ], "overall_conversion": 28.5}- Keep funnels to 3-5 steps for clarity
- Use Strict mode for tutorials, Loose for organic behavior
- Review funnels weekly to catch conversion regressions early