Idle game players are all-or-nothing: why average playtime lies
A week after Genesis reached real players, with no promotion at all, I had my first proper look at who was playing. Five organic players in the first days: the Netherlands, Germany twice, Russia and Brazil. Eight sessions, 147 minutes of engaged time, an average of about 18 minutes a session.
That average describes nobody.
One Dutch player played for 80 minutes in a single session, reached five Extinctions, and watched four interstitials and a rewarded ad. One German player played for 6 minutes, reached one Extinction, and uninstalled. Leave out the Dutch player and the average drops to about nine and a half minutes. The "average player" is a blend of two completely different people.
Hooked or bounced
Idle games are all-or-nothing. A player either clicks with the loop and plays for hours, or decides within minutes that it isn't for them and installs something else. So I stopped reporting averages and started sorting players into groups.
A week of data from the analytics export gave 54 real players (after removing 22 test devices, which I'll come back to):
- Hooked (60+ minutes): 17 players. 14 came back on a second day and 11 reached tier 7 of 8. 5 uninstalled.
- Middle (15–60 minutes): 20 players. 13 came back, 2 reached tier 7. 10 uninstalled.
- Bounced (under 15 minutes): 17 players. 5 came back, none reached tier 7. 7 uninstalled.
Two things stood out.
Bounced players saw zero interstitials. Ads weren't driving them away. The first ad appears after the third Extinction, and they left before that. The early bounce is about the first few minutes of the game itself.
Hooked players hit a wall. They played 100 to 270 minutes over one to three days, reached tier 7 with somewhere between 4 and 16 Extinctions, and then stopped. Of nine hooked players who'd started early in the week, five had uninstalled by its end. Not one had tried a crucible or reached Chapter 2.
My headline in my notes: the hook works; lifetime after it is the leak.
Why they stopped
Playing as a new player, the reason was embarrassing. The Challenge Gate, the thing you need to beat to go deeper, was a red rung at the very bottom of the DNA strand. You only found it by scrolling down. And the text near it said the strand "descends into the unknown". Poetic. Useless.
Tier 8 was also hidden behind a perk nobody could reach yet, so tier 7 looked like the end of the game.
The fix: a signpost
The next update replaced the poetry with directions:
- the strand now says "rungs left to the Challenge Gate: N", then states the gate's goal,
- a one-time message names the gate when it opens,
- new analytics events record how deep players get on the strand, when they reach the gate, and when they start a crucible. Before, I couldn't see any of that.
A few days later, the new events showed four real players entering Chapter 2. There had been none before. One had played 547 minutes across 22 Extinctions. Others were climbing the strand in Denmark, the UAE and Norway. Real players take 1,400 to 2,300 minutes of game time to reach the gate. That's days, which is why nobody had arrived in the first week.
The test-device problem
Those 22 test devices deserve their own warning. When you publish on Google Play, Google's pre-launch testing runs your app on a farm of devices, and every update adds more. Across all my games, test devices outnumbered real installs: 392 to 266 over two weeks. One test-lab phone alone had 344 first opens across my 17 games.
If you read analytics without filtering them, you'll think you have players you don't have. I now treat a device model seen in six or more of my games, or a device with no country or no model, as test traffic.
What I do differently now
- Report hooked vs bounced, never averages, for any idle game.
- Look at the first few minutes for the bounce, and at the end of the content players can see for the hooked drop-off.
- Make the next goal impossible to miss. If players stop at a wall, first check whether they know it's a wall.
- Add the analytics event before you need it. I couldn't measure the gate until after I'd fixed it.