Push Notifications Done Right: Engagement Without Annoyance
Push notifications are the most powerful and most abused feature in mobile apps. Done right, they bring users back at exactly the right moment. Done wrong, they train users to hit "Block" and never think about your app again.
The difference between good and bad notifications isn't technical. It's about respect.
The Permission Problem
iOS asks users for notification permission explicitly. Android historically allowed them by default, but recent versions are moving toward iOS-style opt-in.
Here's the thing: most users say no.
Across the industry, push permission grant rates hover around 50-60% for iOS. That's for apps that handle the ask well. Apps that ask badly? Much lower.
Don't Ask Immediately
The worst thing you can do is request notification permission the first time someone opens your app. They don't know you yet. They don't trust you yet. They have no reason to believe your notifications will be valuable.
Wait until users have experienced value. After their first successful order. After they've completed their profile. After they've used the app enough to understand what it does.
Pre-Ask Screens Work
Before triggering the system permission dialog, show your own screen explaining what notifications you'll send and why they're useful. Let users opt-in to the opt-in.
Something like: "Get notified when your order ships and when items you saved go on sale. We won't spam you." Then a button: "Enable notifications" or "Maybe later."
If they tap "Enable," show the system dialog. If they tap "Maybe later," respect that. Ask again later, but not immediately.
What to Send (And What Not To)
Good Notifications
Notifications that users appreciate have common traits:
- Time-sensitive: Your flight is boarding. Your package is arriving today. Your reservation is in one hour.
- Personally relevant: That artist you follow just released something. Your friend sent you a message. An item on your wishlist is on sale.
- Actionable: Approve this request. Respond to this message. Complete this action.
- Requested: The user explicitly asked for this notification. Price alerts, reminders, updates on specific items.
Bad Notifications
Notifications that drive uninstalls:
- We miss you: The user isn't using your app because they don't want to. Begging won't change that.
- Generic promotions: "Check out our new features!" Unless it's genuinely useful, this is spam.
- Too frequent: Multiple notifications per day for non-urgent apps trains users to ignore you.
- Misleading: Fake urgency, clickbait, anything that makes users feel tricked.
Personalization Matters
The best notifications feel like they were written just for you. Because they were.
"Your order shipped" is good. "Your Nike Air Max 90s shipped and will arrive Tuesday" is better.
Use the user's name (sometimes). Reference their specific actions. Send notifications based on their behavior patterns, not blast schedules.
A news app that notifies me about every breaking story is annoying. A news app that notifies me about the specific topics I've shown interest in is valuable.
Timing Is Everything
Sending a notification at 3 AM is disrespectful. Sending marketing notifications during dinner time is annoying. Sending notifications during work hours for a leisure app is poorly timed.
Consider:
- User's local time zone (obvious but often ignored)
- User's typical app usage patterns
- Whether Do Not Disturb might be on
- What time of day your notifications historically get opened
If you have enough users, you can A/B test timing and let data guide you. Different users prefer different times.
Give Users Control
Not all notifications are equal. Let users choose what they receive.
Granular settings work well:
- Order updates: On/Off
- Sale alerts: On/Off
- New content from followed accounts: On/Off
- Weekly digest: On/Off
Users who can customize their notifications stick around longer. Users who feel bombarded uninstall.
The Technical Side
Rich Notifications
Both iOS and Android support rich notifications with images, action buttons, and expandable content. Use them.
An image makes notifications more eye-catching and more informative. Action buttons ("Reply," "Mark as read," "Snooze") let users take action without fully opening the app.
Silent Notifications
Not every update needs to buzz the user's phone. Silent notifications can update app content in the background without interrupting anyone.
Use them for syncing data, updating badges, or preloading content. The user benefits without the disruption.
Notification Channels (Android)
Android requires organizing notifications into channels. Users can control each channel separately, muting some while keeping others.
Design your channels around user intent. "Messages," "Orders," "Promotions" makes sense. Having one channel for everything defeats the purpose.
Measuring What Matters
Track these metrics:
- Opt-in rate: What percentage of users allow notifications?
- Open rate: What percentage of notifications get tapped?
- Disable rate: How many users turn off notifications after enabling them?
- Uninstall correlation: Do notification frequency changes affect uninstall rates?
If your opt-in rate is below 40%, your permission flow needs work. If your open rate is below 5%, your notifications aren't relevant enough. If your disable rate is high, you're sending too many or the wrong kind.
A Simple Framework
Before sending any notification, ask these questions:
- Is this time-sensitive?
- Is this relevant to this specific user?
- Would I appreciate this notification if I were the user?
- What value does the user get from knowing this right now?
If you can't answer these well, maybe it's an email instead. Or maybe it doesn't need to be sent at all.
The Bottom Line
Push notifications are a privilege, not a right. Users let you into one of the most personal spaces they have: their phone's notification shade, competing with texts from friends and family.
Treat that privilege with respect. Send notifications that users are glad they received. That's the only way to maintain engagement long-term.