SolisReach
← Journal
Mobile Apps5 min read

Push notifications people don't hate: a short guide

Written by the SolisReach team

The average app sees notification opt-out rates climb sharply within the first week of use, usually because the first few notifications a user receives are poorly timed, generic, or simply too frequent. Getting this right isn't about clever copywriting, it's mostly about restraint and relevance, and the apps that keep their opt-in rates high are consistently disciplined about both.

We've audited enough client notification systems now to notice the same root cause behind most of the bad ones: no single person owns the notification experience end to end. Individual features each add their own alert independently, a new-message ping here, a promotional blast there, a re-engagement nudge somewhere else, and nobody's looking at the combined experience a real user actually receives across all of them.

Ask permission at the right moment, not on first launch

Requesting notification permission the instant an app opens, before a user has done anything, produces the lowest opt-in rates we've measured across client apps. Asking after a user completes a meaningful action, finishing an order, joining a group, completing a first workout, produces meaningfully higher opt-in because the user has context for why a notification might actually be useful to them.

On iOS specifically, this matters even more, since a denied permission prompt can only be re-requested by sending the user to the system settings manually, a meaningfully higher-friction path than simply asking again in-app. Getting the first ask right, at the right moment, is worth real design attention precisely because a bad first impression here is expensive to undo.

Every notification needs to pass a specific test

Before shipping any notification type, we ask: would the user be annoyed if this didn't arrive. If the honest answer is no, it's a candidate for removal or for making optional in settings rather than default-on. "We miss you" re-engagement pings and promotional blasts routinely fail this test and are exactly the category driving most opt-outs.

We run this test with an actual product owner in the room for every new notification type proposed, not as a formality but as a genuine gate, since it's much easier to talk a stakeholder out of a marginal notification before it ships than to remove it later once a team has gotten used to the engagement numbers it generates, however inflated by irritation those numbers might be.

Frequency caps, enforced in code, not just policy

We build hard limits into the notification system itself, not just a guideline the marketing team is supposed to remember, capping how many non-critical notifications a single user can receive in a day or week regardless of how many separate features want to notify them. Without an enforced cap, notification volume creeps up over time as new features get added, each one reasonably wanting its own alert.

This cap needs a tiebreaker rule too: when multiple features want to notify the same user on the same day and the cap would be exceeded, something has to decide which one wins. We prioritize by user-relevance rather than internal team seniority, a transactional update about something the user actually did beats a promotional message every time, regardless of which internal team is asking to send it.

Let users tune categories, not just toggle everything off

A single all-or-nothing notification toggle means a user annoyed by one category, say promotional offers, disables everything, including notifications they'd genuinely want, like order status updates. Granular category controls in settings keep users engaged with the notifications that matter to them even after they've opted out of the ones that don't.

We default new notification categories to off for anything promotional and on for anything transactional or account-critical, rather than defaulting everything to on and letting annoyed users find the settings screen on their own. This produces a slightly lower initial reach for promotional content and a meaningfully healthier long-term relationship with notifications overall.

A single all-or-nothing notification toggle means a user annoyed by one category, say promotional offers, disables everything, including notifications they'd genuinely want, like order status updates.

What we measure to know if it's working

Opt-in rate at day one, opt-out rate at day thirty, and tap-through rate on notifications sent. A healthy pattern looks like opt-in above 60 percent and opt-out staying under 20 percent through the first month; if opt-out climbs faster than that, it's a signal to cut volume before trying to fix it with better copy.

We review these three numbers monthly for any client with an active notification system, and we treat a rising opt-out trend as more urgent than a flat or slightly low opt-in rate, since opt-outs are effectively permanent for that user while a low opt-in rate can still be improved with a better-timed ask.

A specific fix that moved the needle on a real client app

A social app we work with had opt-out climbing past 30 percent by day thirty, traced back to a daily "see what's new" notification firing regardless of whether anything genuinely new existed for that specific user. We changed it to only fire when there was real, personally relevant new activity, and thirty-day opt-out dropped to 14 percent within two months, with no change to the notification's copy or design, only to when it was allowed to fire at all.

Rich notifications: worth the extra effort in specific cases

Modern push notification systems support images, action buttons, and expandable content, not just a line of text, and using these well can meaningfully raise engagement for the right notification types, a photo preview on a social update, a quick approve or dismiss action on a request. But rich notifications also take real engineering effort to build and maintain across both platforms, and applying them to every notification type regardless of value is its own kind of over-investment.

We reserve rich formatting for the specific notification types that benefit most, usually the highest-frequency, highest-engagement categories, and keep lower-priority notifications as simple text, which keeps the engineering investment proportional to the actual payoff rather than polishing every notification equally regardless of how often it fires or how much a user cares about it.

This same proportionality logic applies to nearly every notification decision we make: the amount of design and engineering polish invested in a notification type should scale with how often it fires and how much it matters to the user, not be applied uniformly across every category regardless of actual usage.

Start a project

Want this applied to your site?

We run a Core Web Vitals and SEO audit before quoting any performance marketing engagement, and we're happy to share what we'd find on yours.