A recent study shows gaming apps tend to have the same pattern across genres: retention drops sharply after Day 1, and most games lose the majority of users within the 1st week. Pour more into UA, and you’re just refilling a leaking bucket faster.
The problem is that nothing connects install to habit — push notifications fire on a schedule, in-app messages ignore what the player is doing, and reactivation goes out by hand when someone notices DAU sliding. Teams that compound retention build it on journeys that respond to how each player plays.
This is the system to build before you scale UA (user acquisition): 3 behavior-triggered journeys, powered by events inside the app.
The game-changer: from 📆-driven to event-driven messaging
The difference comes down to one thing — what makes the message fire.
📆 Schedule-driven messaging sends the same message to everyone who happens to land on Day 3: the player who cleared three levels last night and the one who never got past the loading screen get identical copy. It can’t see the player’s state, so it interrupts the engaged and underserves the struggling.
⚡ Event-driven messaging fires on what the player actually did. Instead of going out on a set date, the message is set off by an action — a match won, a level reached, a shop never opened — so it lands the moment it’s relevant, which is exactly when it can change what the player does next.
Same intent, 2 ways to fire it:
| 📆 Schedule-driven — the clock decides | ⚡ Event-driven — behavior decides |
| 🔔 Day 3: "Come back and play!" — sent whether the player cleared 3 levels or never got past loading | 🔔 Won their last match, no return in 18h → "Your throne's under threat. Defend it." |
| 🔔 Day 7: "We miss you" — the same line to a level-20 regular and a tutorial drop-off | 🔔 Hit level 5, never opened the shop → in-app offer the moment they're back |
🔔 Day 3: "Come back and play!" — sent whether the player cleared 3 levels or never got past loading
⚡ Event-driven — behavior decides
🔔 Won their last match, no return in 18h → "Your throne's under threat. Defend it."
🔔 Day 7: "We miss you" — the same line to a level-20 regular and a tutorial drop-off
⚡ Event-driven — behavior decides
🔔 Hit level 5, never opened the shop → in-app offer the moment they're back
The real advantage of event-driven journeys is visibility: you can see exactly which step is losing players. And since habits and customer lifetime value take shape in the first 7 days, that early window is where it counts.
3 retention journeys every mobile game needs
That’s where the system starts. 3 journeys fire on player behavior (not the calendar), carrying a player from install to habit.
| Journey | Trigger | Channels | What you measure |
| Onboarding | App install | In-app + push notification | D7 retention |
| Engagement | Game events (level, streak, tournament) | In-app + push notification (and/or Live Activities) | D30 retention and revenue per user |
| Reactivation | 7 days inactive | Push notification → in-app → email | Goal completion per segment |
Onboarding
Channels
In-app + push notification
What you measure
D7 retention
Engagement
Trigger
Game events (level, streak, tournament)
Channels
In-app + push notification (and/or Live Activities)
What you measure
D30 retention and revenue per user
Reactivation
Channels
Push notification → in-app → email
What you measure
Goal completion per segment
🛠️
Implementation: All these journeys and the segmentation behind them run on 4 default events:
first_key_action_completed — the first real moment of value (first win, first base built, first deposit)
session_end
level_reached
purchase_completed
That’s the whole dependency. Set up these once with the Pushwoosh SDK, and the marketer owns everything after: triggers, content, segments, tests.
Journey 1: Onboarding to first meaningful action
The first meaningful action — first deposit, first match won, first level cleared — is the goal of the whole onboarding journey. Get the player there, and they understand why the game is worth opening tomorrow.
The journey:
-
1
Enter on install
The player joins the journey the moment they install and open the app.
-
2
Wait for the first key action
The journey watches for first_key_action_completed.
-
3
Branch on the outcome
Completed it? The player flows straight into the engagement journey. Not completed in 48 hours? They continue down the recovery path.
-
4
Nudge back to the action
Send an in-app message if they're in session (or a push in the re-entry window if they're not), pointing straight at that first action.
🎮
Real case: justDice runs this kind of early-churn-prevention flow for their players, triggered minutes after install, and converts 10.7% of players, reducing early churn by 26%.
Journey 2: Progress-triggered engagement
Once a player is active, engagement runs off in-game events, not scheduled slots.
The journey:
-
1
Trigger on a progress event
A level_reached, a streak started, a first PvP attempt, a tournament going live — each one starts the flow.
-
2
Reinforce during the session
Deliver an in-app message while they're still playing: you cleared the level — here's what's next.
-
3
Catch them in the re-entry window
If they leave mid-progress, queue a push notification: your streak is live, don't break it tonight.
💡
Pro tip: Add-on for time-boxed events. For tournaments and PvP, layer a Live Activity on top of the flow — leaderboard position, boss timer, opponent found — so the match stays visible without forcing an app open.
Journey 3: Reactivation by player value
After 7 days of inactivity, the player enters reactivation. A single “we miss you” blast across the whole group wastes the message. A dormant casual and a dormant high-spender churned for different reasons and respond to different things.
The journey:
-
1
Trigger on inactivity
7 days without activity.
-
2
Split by RFM
Segment the dormant users by value: casual lapsed get a soft nudge (a new event, a returning-player bonus, a reason to look again), while high-value lapsed (the whales) get a personalized offer tied to their actual history — the items they bought, the mode they played, the streak they lost. Losing one costs far more than losing a casual, so it gets the most personalization.
-
3
Layer channels by reachability
Cheapest first: push notification is the default, in-app message catches them if a push pulls them back without converting, and email is the escalation, reserved for lapsed players who've disabled or didn't open the push.
🤖
Pro tip: RFM defines the segments; you can hand the execution to ManyMoney AI, Pushwoosh’s autonomous AI marketing copilot, to score dormant players by churn risk and launch the per-segment flows on its own.
🏖️
Real case: Beach Bum built its re-engagement around personalization — automated push localized into each player’s language, plus discount and limited-offer pushes to drive purchases. The payoff — 2–3x growth in DAU and MAU, plus a lift in in-app purchases, all on Pushwoosh automation.
Beach Bum's re-engagement personalized notifications.
Build your mobile game retention system in Pushwoosh
You can build all 3 journeys in one place, no code required — on Pushwoosh, a platform built specifically to grow retention and revenue for mobile games.
Onboarding catches players before they slip, engagement turns progress into habit, and reactivation brings the right message to the right segment. Every step fires on behavior.
That’s the layer worth building before you spend another dollar on UA.
Build your 1st journey today
Sign in and turn installs into habits
Try for free