FTUE / onboarding in a mobile game: what to test in the first session
Onboarding (FTUE — First-Time User Experience) is a player’s first 2–3 minutes in the game. This is where D1 retention is made: if something in the tutorial got stuck, reset, or wasn’t granted — the player leaves, and the money spent acquiring them is already gone. So a bug in FTUE isn’t “a small thing at the start” — it’s a direct waste of budget. Let’s look at what to test here.
The matrix of FTUE entry points
FTUE starts not only on a “clean” install. Check all entries:
- Clean install — the basic happy path, first launch.
- Reinstall — deleted and installed again: FTUE shows again, the old progress doesn’t “resurrect” from leftovers.
- Entry via deep link/ad — the player came via a promo link: FTUE and the deferred navigation coexist, don’t fight (see the separate deep links breakdown).
- Guest → login mid-tutorial — authorizing in the middle of FTUE doesn’t reset the step’s progress or duplicate the onboarding.
Interruptions — where FTUE breaks most often
The first session is full of interruptions. At every step, check that FTUE resumes from the same place, rather than resetting or getting stuck:
- Incoming call / backgrounding / return — the tutorial at the same point.
- Killing the app mid-FTUE and relaunching — the step’s progress is saved (or an honest step restart), not a black screen.
- Network loss on the asset/config loading step — a clear wait and retry, not an endless spinner.
- Screen rotation / split-screen during the tutorial — the layout doesn’t fall apart, hints point at the right elements.
The main FTUE risk is getting stuck. Any step you can’t exit after an interruption = the player deletes the game.
Skip and mandatory steps
- If skip is provided — it works and doesn’t break the starting progress.
- Mandatory steps cannot be skipped by a bug (fast tap, race, deep link bypass): otherwise the player ends up in a broken state without the granted starter items.
- “Next”/“Skip” buttons don’t double-submit (a quick double tap doesn’t advance two steps).
Returning player and version update
- FTUE isn’t shown again to someone who already completed it.
- The “onboarding completed” flag survives an app update (a common bug: the update resets the flag → a loyal player is shoved into the tutorial again).
- If the onboarding changed in the new version — the state migration is thought through (don’t re-show it to everyone).
FTUE reward — idempotency
Completing onboarding usually grants a starter boost (currency, item). It must be granted exactly once: not zero (the player is upset), not twice (an exploit — complete FTUE, reinstall, get it again). The reward is confirmed on the server, not just in the client.
A/B, feature flags and funnel analytics
- Different onboarding variants (A/B, feature flags) don’t conflict with each other or with the starter rewards.
- Each FTUE step fires an analytics event — you see the completion funnel and where players drop off (Amplitude — onboarding).
- Campaign attribution isn’t lost on FTUE screens (the install source reaches the first event).
Localization and accessibility of the first screens
- Onboarding texts fit on narrow and wide screens; in long languages (German/Russian) they aren’t truncated and don’t overlap buttons.
- The first screens are accessible (contrast, font size, screen reader) — it’s the face of the product (NN/g — mobile onboarding, Apple HIG).
- Permission prompts (push, tracking/ATT) appear at a meaningful moment, not all at once on the first screen.
FTUE checklist (12 points)
- Clean install: FTUE completes without getting stuck.
- Reinstall: FTUE from scratch, old progress doesn’t resurrect.
- Deep link/ad entry coexists with FTUE and attribution.
- Guest → login mid-tutorial doesn’t reset or duplicate.
- Call/backgrounding/kill: FTUE resumes from the same place.
- Network loss on asset load: retry, not an endless spinner.
- Skip works (if present); mandatory steps can’t be bypassed by a bug.
- Step buttons don’t double-submit.
- A completed FTUE isn’t shown again; the flag survives an update.
- The FTUE reward is granted exactly once (server-side verification).
- A/B/feature flags of onboarding don’t conflict; funnel analytics reconcile.
- Localization and accessibility of the first screens; permissions at the right moment.
Bottom line
FTUE is a short stretch but the most expensive in its consequences: this is where it’s decided whether the player stays. Most of the critical bugs are “stuck after an interruption”, “the tutorial showed again after an update”, and “the reward didn’t arrive / arrived twice”. It’s tested with a matrix of entries × interruptions × player states, not a single “all good on the first try” run.