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 call logout on 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 the sk_ only on your server. Use test keys while integrating.
  • Idempotency: send Idempotency-Key on 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 deepLink that 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_time and 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.