Best practices
Recommendations to send better and keep a healthy integration.
Integration
- Register the token on every app launch and when it changes. It's an upsert: it doesn't duplicate anything.
- Identify the user (
externalUserId) on sign-in and calllogouton sign-out, so you don't send one account's data to someone else's phone. - Report the events (
opened,clicked, permissions): without them analytics only sees what Google or Apple accepted. - Keys: the
pk_goes in the app and thesk_only on your server. Usetestkeys while integrating. - Idempotency: send
Idempotency-Keyon sends your system might repeat.
Content
- Short titles: about 40 characters are shown in full on almost every phone.
- Content in each user's language (
content.en,content.es…). - A
deepLinkthat goes straight to what you're announcing. - Use
category: "marketing"for promotions, so they never delay transactional ones. - Don't put sensitive data in the text: it's visible on the lock screen.
Frequency
- Respect the user's time: schedule with
local_timeand set up quiet hours in the app for marketing. - Set a marketing maximum per device per day: Pushtifly skips whatever goes over that number.
- Don't overwhelm: too many notifications make the user turn off the permission (
permission_denied) or uninstall the app (device.invalidated). - Segment: a message relevant to a few works better than a generic one for everyone.
Android
- Create channels with clear names (Orders, Offers…): the user can mute one without muting the others.
- Monochrome small icon.
iOS
- Ask for permission at a moment with context (after a user action), not when the app is first opened.
- Add the image extension if you send media.