Push Notifications and User Retention: Keeping a Useful Channel from Becoming Spam

Why push is about retention, not acquisition
Push notifications do not bring in new users. Their job is to bring back people who have already installed your app and granted permission to be notified. That is why push should be judged by retention metrics, not reach: how many people open the app on day 7 and day 30, how many return after a specific scenario fires, and how many ultimately disable notifications or uninstall.
At OneDev we see a recurring mistake: a team sets up a mass blast to the entire base with a promo, celebrates the spike in opens on day one, and a month later discovers that the share of users who turned off notifications has doubled. A short-term burst of activity is almost always paid for with a long-term loss of the channel. Push only works when each message is relevant to a specific person at a specific moment.
Segmentation: the foundation of everything
Sending the same message to your whole base is the fastest way to kill the channel. Segmentation starts with data the app already collects: behavior, lifecycle stage, purchase history, interface language, and time-of-day activity.
- By lifecycle: first-week newcomers, active users, those going dormant (no visit in 7–14 days), and churned users (30+ days).
- By behavior: added an item to the cart but did not pay, started filling out a form and abandoned it, finished onboarding but never performed the key action.
- By value: paying vs non-paying users, purchase frequency and amount.
- By language and region: for Uzbekistan this is a mandatory layer. Uzbek and Russian behave like two distinct markets, and one identical message in a single language for everyone lowers response.
Good segmentation yields triggered scenarios instead of manual blasts. Abandoned cart, a reminder about an unfinished application, returning a user to content they were viewing — these messages show response several times higher than mass sends because they hit a real need.
Frequency: where the spam line is drawn
There is no universal "correct number" of notifications per day — it depends on the app category. For media and games, several pushes a day are fine; for a bank or delivery service, one irrelevant message a week is already annoying. The benchmark we use in design: a notification is sent when it creates value for the user, not when the business happens to have something to announce.
Technically, frequency must be capped at the infrastructure level rather than left to a marketer's good judgment. Frequency capping — a hard limit on the number of messages per day and per week per user — should be on by default. Quiet hours belong here too: for Uzbekistan this matters especially, because a push at 2 a.m. reliably leads to an opt-out.
Anti-spam: how not to lose notification permission
Push permission is an asset that is easy to lose and nearly impossible to win back. On Android, notifications are on by default, but a user can disable the channel forever with a single tap. On iOS you must obtain permission first, and the timing of the request is critical.
- Do not ask for permission on the first screen. The prompt should come after the person has seen the app's value, ideally with an explanation of why notifications are useful.
- Give channel-level control. Users should be able to turn off promos while keeping transactional notifications (order status, confirmation codes). All-or-nothing leads to a full opt-out.
- Clean your base. Users who haven't opened a push for several weeks in a row should receive fewer of them or enter a reactivation scenario rather than the general blast.
Metrics: what actually matters
Open rate alone is misleading, especially because it is measured unreliably on iOS. You need to look at the chain all the way to the result.
Decision metrics: conversion rate (the target action after a push), retention uplift (how much retention rose in the group that received the scenario versus a control group), opt-out rate (share of users disabling notifications), and uninstall rate after a campaign.
The key tool for honest evaluation is a control group. Without it you cannot tell users who would have returned anyway from those push actually brought back. Hold out 5–10% of a segment with no send and compare retention — this is the only way to prove the channel earns money rather than imitating activity.
Tools
Baseline push delivery on Android and iOS goes through Firebase Cloud Messaging — a free transport layer that most solutions are built on. On top of it you pick a campaign management platform: OneSignal, free to start and popular with smaller teams; heavier product systems like CleverTap or Airship for mature apps with deep segmentation and analytics.
The choice of tool is secondary to the data. Any platform is useless if you lack carefully collected events and segments. That is why designing a push strategy always begins with the app's data model, not with picking a messaging service.
The bottom line
Push notifications are a retention tool, not an advertising megaphone. They work when they are built on segmentation, capped by frequency, respectful of user permission, and measured through control groups and retention rather than open rate. In the Uzbekistan market two mandatory layers are added: splitting the audience by language and supporting Huawei devices without Google services. If you are planning an app or want to put order into notifications that are already running, discuss the task with the OneDev team — we will help build the architecture and scenarios so the channel drives returns, not opt-outs.
How many push notifications per day are considered normal?
Why can't open rate be the main metric?
How should you request notification permission on iOS?
What should you do with users who haven't opened a push in a long time?
Do push notifications work on Huawei devices in Uzbekistan?
Why do you need a control group?
Need a similar system or want to discuss your project?
Describe the task — we will propose architecture, technical approach and a work plan. A short call is usually enough to get started.
Discuss project