Летом 2026 года Google опубликовала цифру, от которой у маркетологов заныло под ложечкой: только за первый квартал Chrome блокировал больше 7 миллиардов нежелательных уведомлений в сутки на одном лишь Android. Не всех подряд, а тех, что летели с сайтов, на которые человек однажды нажал «Разрешить» и забыл.
Push-уведомление придумали как удобство: сообщение приходит на экран, даже когда приложение закрыто, а вкладка браузера давно захлопнута. За пятнадцать лет канал успел стать и спасением для служб доставки, и главным раздражителем для владельца телефона.
В этом материале разбираем пуши со всех сторон: что это за технология и почему сообщение доходит при выключенном приложении, какие бывают виды уведомлений, как отключить надоевшие за минуту на любом устройстве, и что под капотом видит разработчик, которому поручили «прикрутить пуши».
Если вы только начинаете разбираться, как вообще устроено взаимодействие сайта с вашим устройством, полезно сначала прочитать наш разбор файлов cookie: логика согласия и хранения идентификатора там ровно та же.
Статья пригодится трём разным людям. Обычному пользователю, которого достали баннеры «Сайт хочет отправлять вам уведомления». Маркетологу, который считает пуш каналом продаж и хочет не сжечь базу за месяц. И начинающему разработчику мобильных приложений, которому в первом же коммерческом проекте прилетит задача с формулировкой «сделай уведомления как у всех».
Если хочется освоить ремесло системно, а не по обрывкам документации, загляните в подборку курсов по разработке мобильных приложений: там программы от коротких интенсивов до годовых, и в большинстве работа с уведомлениями входит в обязательную часть.
Что такое push-уведомление простыми словами

Push-уведомление — это короткое сообщение, которое приложение или сайт показывает поверх экрана, когда вы им прямо сейчас не пользуетесь. Слово push переводится как «толкать», и оно описывает суть: не вы приходите за информацией, а информация приходит к вам.
Противоположная модель называется pull: программа сама раз в минуту стучится на сервер и спрашивает «ну что, есть новости?». Так работала почта в нулевые, и так до сих пор садится батарея у неаккуратно написанных приложений. Push экономнее: телефон держит одно спящее соединение с сервером операционной системы и будит нужное приложение только тогда, когда для него что-то пришло.
Внешне пуш выглядит одинаково почти везде: иконка отправителя, заголовок, одна-две строки текста, иногда картинка и кнопки. Внутри же за этой карточкой стоят три разных механизма, и путать их не стоит.
- Mobile push — уведомление от установленного приложения на телефоне. Классика: банк, доставка, мессенджер.
- Web push — уведомление от сайта, на котором вы однажды нажали «Разрешить». Приходит, даже если браузер свёрнут.
- In-app уведомление — всплывашка внутри открытого приложения. Технически это вообще не пуш, потому что ничего с сервера операционной системы не прилетает, но в маркетинговых отчётах его часто считают вместе с остальными.
Короткая проверка на практике. Если сообщение пришло при полностью закрытом приложении — это push. Если появилось, пока вы листали ленту внутри приложения — это in-app, и отключается он совсем в другом месте настроек.
Как работают push-уведомления: три участника и один токен
В доставке любого пуша участвуют три стороны, и понимание этой тройки снимает почти все вопросы вроде «почему уведомление пришло с опозданием» или «почему оно вообще перестало приходить».
Первая сторона — ваше устройство с приложением или браузером. Вторая — push-сервис: серверы Apple, Google, Mozilla, VK или другого поставщика, которые держат постоянное соединение со всеми устройствами мира. Третья — сервер отправителя: бэкенд банка, магазина или блога, у которого появился повод вам написать.
Шаг 1: подписка и выдача токена
Когда вы соглашаетесь получать уведомления, устройство обращается к push-сервису и получает от него уникальный идентификатор. В мобильной разработке его называют push-токен, в вебе — подпиской (subscription), внутри которой лежит адрес доставки, он же endpoint.
Строка длинная и нечитаемая. Главное её свойство: она указывает не на вас как на человека, а на конкретную связку «это приложение на этом устройстве». Переустановили приложение, и токен сменился. Почистили данные браузера, и подписка умерла.
Шаг 2: токен уезжает на сервер отправителя
Приложение отдаёт полученный токен своему бэкенду, и тот кладёт его в базу рядом с вашим профилем. С этого момента у компании есть техническая возможность вас потревожить.
Шаг 3: доставка сообщения
Когда наступает повод, сервер отправителя не пишет вам напрямую. Он отправляет запрос в push-сервис: вот токен, вот текст, доставь. Push-сервис находит нужное спящее соединение и будит устройство. Операционная система показывает карточку.
Отсюда растёт важный вывод: отправитель не управляет моментом показа. Если телефон в авиарежиме, push-сервис подержит сообщение у себя (обычно до четырёх недель, точный срок задаёт отправитель полем TTL) и отдаст его, когда связь вернётся. Поэтому иногда прилетает пачка вчерашних уведомлений разом.
Канал основателя Checkroi Вани Буявца3 700 человек читают мой Телеграм-канал про нейросетиСобрал промпты для Claude Code и ChatGPT, разборы ИИ-инструментов и лайфхаки по продвижению бизнеса в одном местеПрисоединитьсяКакие бывают push-уведомления
По содержанию и поводу пуши делят на четыре группы, и граница между ними — это в первую очередь юридический и репутационный вопрос, а не технический.
| Тип | Повод для отправки | Пример | Нужно ли согласие на рекламу |
|---|---|---|---|
| Транзакционный | Действие пользователя | «Заказ № 4417 передан курьеру» | Нет, это сервисная информация |
| Триггерный | Поведение пользователя | «Вы оставили товар в корзине» | Да, если внутри есть скидка или призыв купить |
| Маркетинговый | План отдела маркетинга | «Чёрная пятница: до 70 %» | Да, обязательно |
| Контентный | Новая публикация | «Вышла новая статья в блоге» | Спорная зона, зависит от формулировки |
Разница не косметическая. По данным бенчмарков Airship за 2024 год, транзакционные пуши составляют около 16 % отправок и дают больше 40 % всех кликов: человек ждёт эту информацию и реагирует на неё. Массовая маркетинговая рассылка работает ровно наоборот: много отправок, мало реакции и быстрый рост отписок.
Чем push отличается от SMS, email и мессенджеров
Каналов коммуникации у бизнеса пять, и выбирают между ними обычно по трём параметрам: цена сообщения, скорость доставки и то, насколько легко человеку от вас избавиться.
| Параметр | Push | SMS | Мессенджер | |
|---|---|---|---|---|
| Цена отправки | Почти нулевая | Несколько рублей за штуку | Копейки | Зависит от платформы |
| Объём текста | 2–3 строки | 70 символов на сегмент | Не ограничен | Не ограничен |
| Нужен интернет | Да | Нет | Да | Да |
| Нужно установленное приложение | Да, кроме web push | Нет | Нет | Да |
| Как отписаться | Два тапа в настройках | Отдельный запрос оператору | Ссылка внизу письма | Блокировка отправителя |
| Живёт ли история | Нет, карточка исчезает | Да, лежит в переписке | Да, лежит в ящике | Да |
Главная особенность пуша именно в последней строке. Уведомление живёт секунды: смахнули, и оно исчезло навсегда, вернуться к нему нельзя. Поэтому пуш плохо годится для информации, к которой человек захочет вернуться (номер брони, промокод, реквизиты), и хорошо подходит для того, что важно ровно сейчас.
Если сравниваете каналы для рассылок всерьёз, у нас есть подробный разбор email-маркетинга: там про базу, сегментацию и метрики, и половина принципов один в один переносится на пуши.
Как отключить push-уведомления

Самый частый запрос по теме звучит не «как настроить», а «как это выключить». Разберём по платформам. Общий принцип везде одинаковый: разрешение выдаётся конкретному сайту или приложению, и отзывается оно там же, где выдавалось.
Chrome, Яндекс.Браузер и Edge на компьютере
- Откройте настройки браузера и найдите раздел «Настройки сайтов» (в Chrome он спрятан внутри «Конфиденциальность и безопасность»).
- Выберите пункт «Уведомления».
- В списке разрешённых сайтов найдите надоевший и переключите его в «Блокировать» или удалите строку целиком.
- Чтобы больше никто не спрашивал, включите верхний переключатель «Не разрешать сайтам отправлять уведомления».
Быстрый способ для одного сайта: нажмите на иконку слева от адресной строки прямо на открытой странице и выключите уведомления там.
Android
Уведомления от сайтов приходят от имени браузера, поэтому искать их надо в двух местах. В самом браузере путь тот же, что и на компьютере: «Настройки» → «Настройки сайтов» → «Уведомления». А в системных настройках телефона откройте «Приложения» → нужное приложение → «Уведомления» и снимите главный переключатель.
С Android 13 приложение обязано отдельно спросить разрешение на уведомления при первом запуске, так что случайно подписаться на свежем телефоне стало сложнее. На старых версиях всё включалось по умолчанию, и именно оттуда тянутся истории про сто уведомлений в день.
iPhone и iPad
Откройте «Настройки» → «Уведомления», найдите приложение в списке и выключите «Допуск уведомлений». Для сайтов, добавленных на домашний экран, всё работает так же: они лежат в том же списке отдельными строками.
Отдельно стоит знать про «Сводку» и режим фокусирования: они не выключают уведомления, а складывают их в пачку и показывают в удобное время. Если кажется, что пуши приходят с задержкой в пару часов, скорее всего, дело именно в этой настройке.
Windows и macOS
В Windows: «Параметры» → «Система» → «Уведомления», дальше список приложений с переключателями. В macOS: «Системные настройки» → «Уведомления», выбираете приложение и снимаете «Разрешить уведомления».
Если уведомления приходят от сайта, которого вы не помните. Не ищите вирус: почти всегда это подписка, выданная случайным нажатием на «Разрешить» на пиратском или новостном сайте. Лечится удалением строки из списка разрешений, переустановка системы не нужна.
Почему в пушах столько спама и что с этим сделал Chrome
Веб-пуши стали каналом для мошенников по простой причине: разрешение выдаётся одним нажатием, живёт бессрочно, а нарисовать на экране можно карточку с любой иконкой. Отсюда классические сценарии с «вашим устройством заражено» и поддельными уведомлениями от банков.
В 2026 году Google взялась за это всерьёз, и механизм получился трёхслойный. Chrome сам отзывает разрешения у сайтов, на которые вы давно не заходили. Safe Browsing помечает домены с обманными уведомлениями. Плюс появился анализ поведения service worker’ов, который вылавливает сети сайтов, раздающие одно и то же мошенничество.
Для добросовестного отправителя из этого следуют две практические вещи. Во-первых, в Firebase Cloud Messaging действует лимит в 1000 сообщений в минуту на домен, признанный назойливым, а превышение возвращает ошибку 429. Во-вторых, отозванные разрешения не восстанавливаются сами: база подписчиков теперь тает не только от отписок, но и оттого, что человек полгода не заходил на сайт.
Что нужно знать разработчику: Web Push API, Service Worker и VAPID
Дальше идёт технический раздел. Если вы читали статью ради кнопки «отключить», смело листайте к блоку про ошибки, ничего важного не пропустите.
Из чего собран веб-пуш
Веб-пуш держится на трёх стандартах, которые обычно путают в один. Все три — обычные браузерные API, и работать с ними приходится из JavaScript.
- Service Worker — фоновый скрипт, который живёт отдельно от страницы и продолжает работать при закрытой вкладке. Именно он принимает событие
push. - Push API — отвечает за подписку и доставку сообщения до service worker’а.
- Notifications API — рисует саму карточку на экране через
showNotification().
Разделение важное: получить пуш и показать уведомление — два разных действия, и за них отвечают разные интерфейсы. Браузеры, впрочем, требуют показать уведомление почти всегда: «тихий» пуш без визуального следа разрешают редко и ограниченно.
Обязательные условия
- HTTPS. На http service worker не зарегистрируется вовсе. Исключение одно — localhost для разработки.
- Явное разрешение пользователя. Запрос показывается только в ответ на действие человека, автоматический вызов при загрузке страницы браузеры глушат.
- Зарегистрированный service worker с обработчиком события
push.
Как выглядит подписка в коде
const reg = await navigator.serviceWorker.register('//selcdn.checkroi.ru/sw.js');
const sub = await reg.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: VAPID_PUBLIC_KEY
});
// sub.endpoint — адрес доставки на стороне push-сервиса
// sub.keys.p256dh и sub.keys.auth — ключи для шифрования тела
await fetch('/api/subscriptions', {
method: 'POST',
body: JSON.stringify(sub)
});
Дальше объект подписки уезжает на ваш бэкенд и хранится там до тех пор, пока push-сервис не ответит на отправку кодом 404 или 410: это значит, что подписка мертва и строку из базы пора удалять. Чистка мёртвых подписок — первое, что забывают сделать в пилотном проекте, и первое, из-за чего потом врут все метрики.
VAPID: зачем нужны две ключевые строки
Аббревиатура расшифровывается как Voluntary Application Server Identification и описана в RFC 8292. Смысл простой: пара ключей, публичный и приватный, которой ваш сервер представляется push-сервису.
Публичный ключ уходит в браузер при подписке, приватный лежит на сервере и подписывает каждый запрос на отправку. Push-сервис по подписи понимает, что сообщение идёт от того же отправителя, которому эту подписку выдали. Побочный, но приятный эффект: чужой сервер не сможет отправить пуш по вашей утёкшей подписке.
Сгенерировать пару можно одной командой из библиотеки web-push:
npm install -g web-push
web-push generate-vapid-keys
Ключи генерируются один раз на проект. Поменяете пару, и все существующие подписки станут недействительными, и собирать базу придётся заново. Тело сообщения шифруется отдельно, по RFC 8291, и push-сервис содержимое не видит.
Грабли, о которых узнают поздно

Три вещи регулярно ломают сроки на первом проекте с уведомлениями.
iPhone требует установки на домашний экран. Safari умеет веб-пуши с iOS 16.4, но только для сайтов, добавленных через кнопку «Поделиться» и пункт «На экран Домой». В обычной вкладке pushManager просто недоступен, и это официальное ограничение Apple, а не баг вашего кода. На macOS такого требования нет.
Endpoint нельзя показывать наружу. Адрес подписки — это capability URL: кто им владеет, тот при наличии ваших ключей может отправлять сообщения. Логировать его в открытую аналитику не стоит.
Доставка не гарантирована. Push-сервис старается, но не обещает. Если уведомление несёт критичные данные, дублируйте канал и не стройте на пушах бизнес-логику вида «пользователь точно узнал».
Пуши в мобильных приложениях: APNs, FCM и RuStore
В мобильной разработке набор транспортов другой, и российским командам приходится держать в голове сразу три.
APNs (Apple Push Notification service) — единственный канал для iOS. Работает через постоянное соединение операционной системы с серверами Apple, авторизация через токен на эллиптической кривой или сертификат. Из России доступен без плясок.
FCM (Firebase Cloud Messaging) — основной канал для Android и заодно транспорт веб-пушей в Chrome. Главное, что здесь стоит помнить: старый legacy-протокол Google выключила 22 июля 2024 года, и живым остался только HTTP v1 с авторизацией через сервисный аккаунт вместо старого серверного ключа. Инструкции старше 2024 года по этой части безнадёжно устарели.
Второй нюанс с FCM: он требует сервисов Google Play на устройстве. На телефонах Huawei и на части российских сборок их нет, а значит нет и пушей.
RuStore Push — российский транспорт, работающий через инфраструктуру VK. Отправка идёт POST-запросом на vkpns.rustore.ru, логика та же, что у FCM: SDK получает токен, токен уезжает на ваш сервер, сервер шлёт сообщение. Для приложений, которые раздаются через RuStore, это единственный надёжный канал.
Чтобы не писать три интеграции руками, RuStore выпустила универсальный SDK: он выбирает доступный транспорт (FCM, HMS у Huawei или собственный) в зависимости от того, где приложение установлено. Это сейчас практический дефолт для российского Android-проекта, который живёт сразу в нескольких магазинах.
Что выбрать, если непонятно. Пишете только под iOS, берите APNs напрямую. Android для международной аудитории: FCM HTTP v1. Android для России с раздачей через RuStore: универсальный SDK от RuStore. Сайт: Web Push с VAPID, без всяких SDK.
Что нужно знать маркетологу: согласие, частота и метрики
Юридическая рамка в России простая: реклама по любому каналу, включая пуши, требует согласия получателя — это статья 18 закона «О рекламе». Системное разрешение на уведомления, выданное в телефоне, согласием на рекламу не считается: человек соглашался получать информацию от приложения, а не акции. ФАС отдельно предлагала прописать это для пушей и мессенджеров прямым текстом.
Отсюда рабочая схема: транзакционные и сервисные пуши отправляем всем, рекламные отправляем только тем, у кого есть отдельная галочка в профиле, и эту галочку храним с датой и источником.
По метрикам смотреть стоит на четыре цифры.
- Opt-in rate — доля согласившихся. Для веб-пушей средний ориентир около 7–8 % от уникальных посетителей, в мобильных приложениях на iOS примерно половина аудитории.
- Delivery rate — сколько сообщений дошло. Разрыв с отправленными показывает, сколько мёртвых токенов накопилось в базе.
- CTR — доля нажатий. У транзакционных пушей он в разы выше, чем у массовых рассылок, и смешивать их в одном отчёте бессмысленно.
- Opt-out rate — скорость, с которой база отписывается. Главный индикатор перебора с частотой.
Если пуши для вас часть работы с клиентской базой, а не разовая задача, имеет смысл посмотреть курсы по маркетингу: работу с удержанием и коммуникациями там разбирают вместе с аналитикой, а не отдельным вебинаром.
Как правильно ставить эксперименты с текстами и временем отправки, разбирали в материале про A/B-тестирование: для пушей это единственный честный способ понять, что заходит вашей аудитории.
Семь ошибок, из-за которых пуши отключают

1. Запрос разрешения на первой секунде. Человек ещё не понял, что за сайт открылся, а ему уже предлагают подписаться. Конверсия в согласие падает в разы, и повторно спросить браузер уже не даст.
2. Отправка по всей базе разом. Сегментация решает: пуш про распродажу ноутбуков человеку, который покупал корм для кошки, работает как реклама на заборе.
3. Перебор с частотой. Больше одного-двух маркетинговых сообщений в неделю, и отписки начинают обгонять подписки.
4. Ночные отправки. Push-сервис доставит сообщение в три часа ночи ровно так же старательно, как днём. Часовые пояса аудитории учитывать обязательно.
5. Заголовок, который обрезается. На узких экранах видно около 40 символов заголовка и две строки текста. Смысл должен помещаться в первую половину.
6. Ссылка на главную вместо нужного экрана. Если пуш обещает скидку на конкретный товар, deep link должен вести на карточку этого товара.
7. Ноль работы с мёртвыми токенами. База не чистится, доставляемость падает, отчёты показывают рост аудитории при падающей выручке.
Где научиться работать с уведомлениями
Отдельного курса «про пуши» не существует, и это нормально: уведомления — часть большой темы, будь то мобильная разработка или CRM-маркетинг. Разработчику логика подписок и токенов даётся на любом полноценном курсе по Android или iOS, маркетологу их дают на программах по удержанию и коммуникациям.
Мы собрали в одном месте программы по мобильной разработке от школ, которые сами держат приложения в продакшене, и отсортировали их по отзывам и цене.
| Курс | Школа | Стоимость со скидкой | В рассрочку | Длительность | Обзор курса от Checkroi |
|---|---|---|---|---|---|
| Профессия «Android-разработчик с нуля» Перейти на сайт курса | 149 600 ₽ | 5300 ₽/мес. | 15 месяцев | Обзор курса | |
| Профессия «iOS-разработчик» Перейти на сайт курса | 132 000 ₽ | 5500 ₽/мес. | 12 месяцев | Обзор курса | |
| IOS-Разработчик Перейти на сайт курса | 133 900 ₽ | 5579 ₽/мес. | 7 месяцев | Обзор курса | |
| Профессия «Android-разработчик» Перейти на сайт курса | 153 065 ₽ | 4502 ₽/мес. | 7 месяцев | Обзор курса | |
| iOS-разработчик с нуля Перейти на сайт курса | 125 800 ₽ | 3882 ₽/мес. | 11 месяцев | Обзор курса | |
| Факультет Android-разработки Перейти на сайт курса | 179 600 ₽ | 4989 ₽/мес. | 12 месяцев | Обзор курса | |
| Flutter Перейти на сайт курса | 40 993 ₽ | 3416 ₽/мес. | 4 месяца | Обзор курса | |
| Android-разработчик Перейти на сайт курса | 180 500 ₽ | 16 500 ₽/мес. | 12 месяцев | Обзор курса | |
| Профессия «iOS-разработчик с нуля» Перейти на сайт курса | 168 840 ₽ | 4690 ₽/мес. | 12 месяцев | Обзор курса | |
| Android-разработчик с нуля Перейти на сайт курса | 19 890 ₽ | 2191 ₽/мес. | 4 месяца | Обзор курса |
Больше программ — в полном каталоге курсов по разработке мобильных приложений
Если тянет не в код, а в коммуникации с клиентами, посмотрите, чем занимается CRM-маркетолог: пуши там один из рабочих инструментов наравне с письмами и мессенджерами. А тем, кто пока выбирает направление в разработке, пригодится наш план на 12 месяцев для мобильного разработчика.




