Push notifications without losing users
Ask for permission at the right time
Don't ask on first launch. Ask the moment there's understood value: after the user did something with a follow-up. Explain in a line what will arrive and how often.
If they refused — don't ask again immediately. The operating systems limit it anyway, and the user will only get annoyed.
What you send
Transactional notifications — an order change, a message from a person, a scheduled event — get high tolerance. Marketing notifications wear out fast. Separate them, and let the user turn off each type independently.
Write the content so it's understandable without opening: who, what, and what's needed.
A technical side that's forgotten
Device tokens rotate and expire — clean them. Send by the user's time zone, not the server's. And make sure a tap leads to the exact screen and not the home page, or you've created work instead of saving it.
Going deeper
Measure three numbers per campaign: open rate, permission-revocation rate, and the share of users who uninstalled the app in the following week. The second and third are the real cost, and they almost never appear in a report showing only opens.