Push notification opt-in rates: what changes them
Push notification opt-in rates vary enormously across apps we've built, from under 20 percent to over 70 percent for functionally similar apps in similar categories, and the difference almost never comes down to the notifications themselves. It comes down to when and how the permission request is actually shown.
Never ask on first launch
Requesting notification permission the moment someone opens the app for the first time, before they've experienced any value at all, consistently produces the lowest opt-in rates we've measured. Users have no context for what they'd even be opting into, and iOS in particular only allows the permission prompt to appear once per app unless the user manually re-enables it in settings, so a wasted first ask is costly.
Priming with a custom screen first
Showing a custom, in-app screen explaining specifically what notifications will be used for ("get notified when your order ships") before triggering the actual system permission dialog gives users context and a chance to mentally opt in before the harder-to-reverse system prompt appears. Apps using this pattern in our client work have consistently seen meaningfully higher opt-in rates than apps that trigger the system prompt cold.
Timing it to a moment of demonstrated value
The highest opt-in rates we've seen come from triggering the permission request immediately after a user completes an action where a notification would obviously help them, right after placing an order, right after starting a multi-step process they'd want a reminder about, rather than at a generic, disconnected moment during onboarding.
Being honest about notification frequency upfront
Apps that oversell notification value during the priming screen and then send frequent, low-value notifications see opt-out and app-uninstall rates climb within weeks. We advise clients to under-promise on notification frequency during priming and actually stick to it, since a broken implicit promise here does lasting damage to how much users trust future notifications, not just current ones.
What we measure after launch
Opt-in rate at first ask is only half the picture. We also track opt-out rate over the following weeks, since a high initial opt-in followed by a steep opt-out curve usually means the notifications themselves aren't delivering the value promised during priming, a different problem than the permission-request design itself.
The Android and iOS difference that changes the strategy
iOS requires explicit opt-in through the system prompt described above, and that prompt can only be shown once without the user manually digging into settings, which makes priming genuinely high-stakes. Android historically granted notification permission by default for many versions, though newer Android releases have moved closer to iOS's explicit opt-in model, narrowing but not eliminating the gap. We check the current platform behavior for both operating systems at the start of every project, since assuming Android still behaves the way it did a few years ago is an easy, avoidable mistake given how quickly this specific policy has shifted.
This difference means a priming strategy built entirely around iOS's constraints can leave real opt-in rate on the table on Android, where a lighter-touch approach sometimes performs just as well without the same one-shot risk. We build platform-aware priming flows rather than a single generic one deployed identically to both operating systems.
iOS requires explicit opt-in through the system prompt described above, and that prompt can only be shown once without the user manually digging into settings, which makes priming genuinely high-stakes.
A/B testing the priming screen itself
Beyond timing, the actual wording and design of the priming screen matters enough to be worth testing directly rather than guessing. We've tested variations differing only in whether the priming screen shows a specific example notification versus a generic description of the feature, and the specific example version has outperformed the generic one in every test we've run, likely because a concrete example is easier to evaluate than an abstract promise.
What we recommend for apps with multiple notification types
An app that sends both transactional notifications (order updates, appointment reminders) and marketing notifications (promotions, re-engagement nudges) should request permission and manage preferences for these separately wherever the platform allows it, rather than lumping everything under one blanket opt-in. Users who'd happily receive an order status update are often far less willing to receive promotional pushes, and forcing an all-or-nothing choice pushes some of them to decline everything rather than accept the useful subset.
Where platform tooling supports granular notification categories, we build a simple in-app preferences screen letting users opt into specific types individually. It's a small amount of extra engineering work relative to a single blanket toggle, and it consistently produces a higher overall opt-in rate for the transactional notifications that actually matter most to the user's experience with the app.
Re-engagement campaigns for users who declined
A user who declines the notification permission on their first ask isn't necessarily lost forever, though winning them back requires a different approach than the original priming screen, since simply re-showing the same prompt tends to feel repetitive rather than persuasive. We've had success prompting a second, in-app reminder after a user has completed several sessions and clearly gotten value from the app, framed around a specific benefit they've now personally experienced rather than a generic pitch delivered on day one before they had any context at all.
Why we treat opt-in design as a product decision, not a marketing one
Notification opt-in is often handed to whoever's building the onboarding flow, treated as a small implementation detail rather than a deliberate product decision with a measurable, ongoing revenue impact for apps that rely on notifications to drive repeat engagement. We push clients to treat this specifically as a product decision worth its own design review and testing budget, the same way a checkout flow or an onboarding sequence would get dedicated attention, rather than an afterthought bolted on near the end of a build.
Apps that treat opt-in design this seriously consistently see the compounding benefit over time, since a five to ten percentage point difference in opt-in rate, sustained across every new user an app ever acquires, adds up to a meaningfully larger addressable audience for every future notification campaign the business ever runs.
Measuring the downstream effect, not just the opt-in number itself
Opt-in rate is a useful proxy metric, but the number that actually matters to a business is what happens after: does a notified user come back to the app more often, complete more of the actions the business cares about, than a comparable user who declined. We track this comparison directly for client apps rather than treating opt-in rate as the finish line, since a high opt-in rate feeding into poorly targeted, low-value notifications doesn't actually move the outcomes a business cares about, even though the initial permission metric looks healthy.