Push-уведомления: как писать и отправлять, чтобы их не отключили
Практика3 минРедакция Innovialabs
Коротко
Просите разрешение в момент, когда польза очевидна, отправляйте только то, что полезно конкретному сегменту, в его местное время и без перебора, ведите по deep link на нужный экран и следите не только за открытиями, но и за отключениями.
Коротко: главный принцип
Пользователь отключает push, когда уведомления не про него, приходят не вовремя или слишком часто. Каждое сообщение должно проходить простой тест: «Будет ли человек рад, что получил его именно сейчас?»
Отключение — почти необратимое действие: вернуть разрешение пользователь может только вручную в настройках, а делает это редко.
Когда просить разрешение
- Не на первом экране. Запрос сразу после установки без контекста чаще отклоняют.
- В момент ценности: после оформления заказа («Сообщим, когда курьер выедет»), подписки на товар, записи на приём.
- Мягкий запрос (pre-permission): сначала свой экран с объяснением пользы, и только при согласии — системный диалог. На iOS системный диалог показывается один раз, поэтому его нужно беречь.
- Provisional authorization на iOS: уведомления приходят тихо в центр уведомлений, и пользователь сам решает, оставить их или отключить.
- На Android 13+ разрешение POST_NOTIFICATIONS тоже запрашивается явно.
Сегментация
Одна рассылка всем — самый быстрый путь к отпискам. Делите аудиторию по:
- поведению: новые, активные, «уснувшие», бросившие корзину;
- интересам: категории, город, язык;
- стадии: прошёл онбординг или нет, есть ли покупка.
Разделяйте транзакционные (статус заказа, оплата, сообщение) и маркетинговые уведомления. Первые ждут почти всегда, со вторыми нужна аккуратность.
Время и частота
- Отправляйте по местному времени пользователя, а не по времени сервера.
- Задайте тихие часы — ночью маркетинговых пушей быть не должно.
- Введите лимит частоты на пользователя в день и в неделю для всех маркетинговых кампаний вместе.
- Учитывайте контекст: напоминание о брошенной корзине полезно через несколько часов, а не через месяц.
Текст и персонализация
- Заголовок — суть: что произошло или что человек получит.
- Конкретика вместо общих слов: «Ваш заказ передан курьеру» лучше, чем «У нас для вас новости!».
- Персонализация — это не только имя, а релевантность: товар из избранного, город, язык интерфейса.
- Без капслока, кликбейта и ложной срочности.
- Пишите на языке интерфейса пользователя.
Deep linking
Пуш должен открывать конкретный экран, а не главную страницу:
- передавайте путь в поле
data, напримерscreen: order, id: 1042; - обрабатывайте случай, когда пользователь не авторизован: вход, затем переход на нужный экран;
- если объект удалён или недоступен — покажите понятное сообщение, а не пустой экран.
Каналы на Android
Создайте отдельные notification channels: «Заказы», «Сообщения», «Акции». Тогда пользователь отключит только акции, а не все уведомления сразу.
Что измерять
| Метрика | Что показывает |
|---|---|
| Opt-in rate | Доля пользователей, разрешивших уведомления |
| Delivery rate | Сколько сообщений реально доставлено |
| Open rate | Доля открытий из доставленных |
| Opt-out rate | Сколько людей отключили уведомления после кампании |
| Конверсия | Целевое действие после открытия: покупка, возврат в приложение |
Проверить, разрешены ли уведомления, можно в коде при каждом запуске — так вы увидите отключения, которые не отражаются в отчётах сервиса рассылки. Тестируйте тексты и время через A/B-тесты на части аудитории.
Частые ошибки
- Системный запрос разрешения на первом экране.
- Одинаковая рассылка всем пользователям.
- Пуш ведёт на главную, а не на нужный экран.
- Маркетинг ночью или по времени сервера.
- Смотрят только на открытия, не замечая роста отключений.