# Push best practices

Source: https://kirora.io/docs/guides/messaging/push/push-best-practices

Ask for permission at the right moment, write notifications people act on, and send them at the right time and pace.

A push notification interrupts someone wherever they are, so each one has to be worth it. People who find push useful keep it on; people who get too many may turn notifications off, and most platforms don't let a blocked app ask again.

## Ask for permission at the right moment

- **Ask after a reason, not on the first screen.** For example, after an order ("Get delivery updates?") or when someone saves a search. Safari refuses a request that isn't made from a tap.
- **Explain first.** Show your own screen saying what you'll send and how often, then ask the system's question.
- **Record consent separately.** Allowing notifications isn't consent to marketing. Ask for that too, and record it as push consent. See [Who can receive push](https://kirora.io/docs/guides/messaging/push/get-started#who-can-receive-push).

## Write notifications people act on

- **Lead with the point.** The title is often all people read: *Your order is on its way*, not *Update from Juniper Kitchen*.
- **Keep it short.** Aim for a title under about 40 characters and a message that fits two lines.
- **Make the tap worth it.** Link to the exact page or screen, such as the order, not your home page.
- **Personalise with care.** A first name helps; an order total, a balance or a health detail shows on the lock screen to anyone nearby.
- **Use images where they add something**, such as a product photo. Remember iOS needs your app's notification service extension to show them.
- **Use a replace key for updates**, so a newer order status replaces the older notification instead of stacking up.

## Send at the right time and pace

- **Turn on [quiet hours](https://kirora.io/docs/guides/messaging/overview#sending-rules)**, so campaign and journey push waits for waking hours in each contact's time zone.
- **Send in local time** when your audience spans time zones. See [Schedule and send a campaign](https://kirora.io/docs/guides/campaigns/schedule-and-send).
- **Set message limits**, so nobody gets more marketing than you mean to, across email and push.
- **Use topics**, so people can turn off one kind of message, such as offers, and keep the rest. See [Topics](https://kirora.io/docs/guides/contacts/consent-and-unsubscribes#topics-let-people-opt-out-of-some-messages).
- **Let time-limited messages expire.** For a flash sale or a live event, set **Stop trying after** so a phone that comes back online tomorrow doesn't show yesterday's offer.

## Use push and email together

- **Push for the moment, email for the detail.** A push says the order shipped; the email has the receipt.
- **Push, else email.** In a journey, point a push step's **If they can't receive this, go to** at an email step, so people without the app still hear from you.
- **Judge push by taps and conversions**, not by how many were sent. Set a conversion goal on the campaign or journey to see what each notification led to. See [Conversion goals](https://kirora.io/docs/guides/campaigns/campaign-results#conversion-goals).

## Keep your audience healthy

- **Register devices every time the app starts**, so active devices stay current and gone ones drop out.
- **Watch for rejected devices** in **Device outcomes**: a sudden rise on one platform usually means a setup problem, not unhappy customers. See [Troubleshoot push](https://kirora.io/docs/guides/messaging/push/troubleshoot-push).

## Next steps

- [Create a push notification](https://kirora.io/docs/guides/messaging/push/create-a-push-notification)
- [Push statuses and metrics](https://kirora.io/docs/guides/messaging/push/push-statuses)
- [Build a journey](https://kirora.io/docs/guides/journeys/build-a-journey)