Разработка 9 мин чтения

Push-уведомления на сайте: как работают и нужны ли бизнесу

Разбираю web push по первоисточникам: как устроена подписка, где работает (на iPhone только для сайта на экране «Домой»), как Chrome блокирует навязчивые запросы, что с FCM и законом, когда push окупается и чем его дублировать.

push-уведомленияweb pushсайтPWAрассылки

Коротко (TL;DR)

  • Web push показывает уведомление в браузере, даже когда сайт закрыт. Нужны HTTPS, service worker, разрешение человека и ключи VAPID на вашем сервере.
  • Работает в Chrome, Edge, Firefox и Safari на macOS. На iPhone, по данным WebKit, только у сайта, добавленного на экран «Домой», начиная с iOS 16.4.
  • Разрешение просите после клика, не при загрузке страницы. Chrome блокирует навязчивые сайты и переводит запросы в тихий режим, а после отказа человек включит уведомления только сам в настройках.
  • В Chrome доставка идёт через инфраструктуру Google, RuStore Push SDK для сайтов не подходит. Критичное дублируйте другим каналом.
  • Для рекламных пушей берите явное согласие по статье 18 закона «О рекламе». Применимость к браузерным пушам спорная, проверьте с юристом.
  • Окупаются статус заказа, брошенная корзина, срочные новости и напоминания. Рассылка «всем и каждый день» кончается отписками.
Хотите внедрить это у себя?

Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.

Подключить push к сайту или PWA

Push-уведомления на сайте (web push) это сообщения, которые браузер показывает человеку, даже если страница закрыта, при условии что он заранее разрешил их этому сайту. Работают service worker, Push API для подписки и Notification API для показа, а сервер сайта шлёт сообщение через push-службу браузера, подписывая запрос ключами VAPID.

Web push: что это и как работает уведомление на сайте

Схему сверил с MDN и web.dev на 14.10.2026.

  1. Сайт регистрирует service worker, небольшой скрипт, который живёт в браузере отдельно от страницы.
  2. После клика сайт вызывает Notification.requestPermission(), и браузер показывает свой запрос.
  3. Если человек согласился, сайт подписывает его через Push API с открытым ключом VAPID. Браузер обращается к push-службе и возвращает подписку: адрес (endpoint) и ключи шифрования. Её сохраняете в базе.
  4. Когда нужно написать, ваш сервер шлёт запрос на этот адрес. Сообщение шифруется ключами подписки и подписывается вашим закрытым ключом VAPID.
  5. Браузер будит service worker, тот получает событие push и показывает уведомление.
self.addEventListener('push', (event) => {
  const data = event.data ? event.data.json() : {};
  event.waitUntil(
    self.registration.showNotification(data.title || 'Новое сообщение', { body: data.body, data: { url: data.url } })
  );
});

По MDN, адрес подписки это секретная ссылка: кто её знает, может слать сообщения.

Где работает: Chrome, Edge, Firefox, Safari, Яндекс Браузер

БраузерЧто подтвердил
ChromePush API с версии 50 (caniuse)
Edgeс версии 79 (caniuse)
Firefoxс версии 44 (caniuse)
Safari на macOSстандартный Web Push с Safari 16.1 на macOS Ventura (блог WebKit)
iPhone и iPadс iOS и iPadOS 16.4, только для сайта на экране «Домой», запрос по прямому действию (блог WebKit)
Яндекс Браузерспрашивает разрешение у сайтов, запросы можно отключить в настройках (справка Яндекса)

Для Safari caniuse помечает поддержку как частичную, тестируйте на живых устройствах. По WebKit, в iOS 26 сайт с экрана «Домой» по умолчанию открывается как веб-приложение, а отмены требования установки для пушей я не нашёл. Значит, iPhone-посетителей этим каналом достанете, только если научите ставить сайт на экран. Как это сделать, я разбирал в статье про PWA из обычного сайта.

Ограничения: запрос разрешения, автоблокировка, тихий режим

Только по действию. MDN прямо указывает, что запрос разрешения нужно делать в ответ на действие пользователя, а WebKit требует этого для iOS. Из iframe чужого домена Chrome и Firefox запрашивать разрешение не дают (MDN).

Отказ почти окончателен. Статус denied значит, что человек явно заблокировал сайт. Программно спросить ещё раз нельзя, включить уведомления он сможет только сам в настройках сайта.

Автоблокировка в Chrome. По справке Google, Chrome блокирует уведомления от сайтов с навязчивыми или вводящими в заблуждение сообщениями и может снимать разрешение с сайтов, которые давно не открывали. Есть и тихий режим: вместо всплывающего окна в адресной строке появляется колокольчик. По анонсу блога Chromium от января 2020 года, сайты с очень низкой долей согласий переводятся в тихий режим автоматически, как и пользователи, которые часто отказывают. Актуальность деталей 2020 года не проверял, ориентируйтесь на справку Chrome.

Российский контекст: FCM, RuStore и российские сервисы

Каждый вендор браузера выбирает свою push-службу, и владелец сайта на этот выбор не влияет (web.dev). В примере из документации web.dev адрес подписки указывает на сервер fcm.googleapis.com, то есть на Firebase Cloud Messaging от Google. В своём проекте я это проверял: до воркера сообщение доходило через FCM. Safari использует APNs, Firefox службу Mozilla.

Отсюда два следствия. Первое: доставка зависит от чужой инфраструктуры, поэтому важное сообщение в один push не кладите. Второе, юридическое: по описанию web.dev сообщение шифруется ключами подписки, но адрес подписки и факт отправки проходят через серверы вендора браузера. Считать ли это трансграничной передачей персональных данных, однозначной позиции я не нашёл. Тему я разбирал в статье про трансграничную передачу на сайте, свой случай покажите юристу. Я держусь такого правила: в тексте уведомления никаких ФИО, телефонов и сумм, только нейтральная фраза и ссылка.

RuStore Push SDK создан для Android-приложений и описан в документации RuStore как альтернатива FCM, про сайты и браузеры там ничего нет. Для приложения нужен (публикацию разбирал в статье про RuStore), для web push не подходит.

Российские сервисы. Sendsay и Altcraft на своих официальных сайтах указывают web push среди каналов (проверено 14.10.2026). Sendsay называет себя полностью российским сервисом с серверами в России, Altcraft заявляет о включении в реестр российского ПО. Важный нюанс: такой сервис заменит вам админку, сегменты и сценарии, но push-службу браузера он не заменит. Доставка в Chrome всё равно пойдёт тем путём, что описан выше. Тарифы я не проверял. Другие платформы разобраны в статье про рассылки в РФ.

Право: подписка на push и согласие на рекламу

Часть 1 статьи 18 закона «О рекламе» разрешает рекламу по сетям электросвязи, включая телефонную, факсимильную и подвижную радиотелефонную связь, только с предварительного согласия адресата. Если рекламораспространитель не докажет, что согласие было, считается, что его не было. По требованию человека рассылку нужно прекратить немедленно (текст закона в редакции от 04.08.2026, проверено 14.10.2026).

Спорно, относится ли показ уведомления в браузере к «сетям электросвязи». Прямой позиции ФАС по web push я не нашёл. Нажатие «Разрешить» не говорит, на что человек согласился: на новости, акции или только на статусы заказа. Осторожный путь такой.

  • Перед системным запросом показать свой экран: что именно будете присылать.
  • Хранить дату, страницу и текст, который видел человек. Доказывать согласие придётся вам.
  • Дать простой способ отключиться.
  • Не смешивать сервисное и рекламное: статус заказа остаётся сервисным сообщением, а акция внутри него уже реклама (это общий подход, спорные случаи обсуждайте с юристом).

По 152-ФЗ: подписка это адрес браузера и ключи, имени в ней нет. Но если вы привязали её к аккаунту, почте или заказу, это данные клиента, и они должны попасть в политику и согласие. Запрос разрешения на уведомления и баннер cookie, по моему пониманию, друг друга не заменяют. Это не юридическая консультация, сверьте с юристом.

Когда push окупается, а когда нет

Цифры конверсии не называю: проверяемых общих данных не нашёл. Считайте на своём сайте показы, клики и отписки.

Подходит. Статус заказа и доставки, человеку это нужно здесь и сейчас (страница статуса заказа закрывает ту же боль без звонков). Брошенная корзина как часть триггерной цепочки. «Товар появился в наличии», если человек сам нажал «сообщить». Срочные новости для медиа. Напоминание о записи. Рабочие уведомления в кабинете.

Не подходит. Просить подписку у каждого, кто зашёл в первый раз по поиску. Писать «всем сразу» без повода. Делать push единственным каналом для важного. И там, где аудитория на iPhone и не ставит сайт на экран.

Частота, сегменты и как не раздражать

Мои правила. Подписку делю по темам: заказ, новости раздела, акции. Рекламу начинаю с одного сообщения в неделю и добавляю, пока растёт доля кликов и не растут отписки. У акций короткий срок жизни сообщения, чтобы вчерашняя не приходила завтра.

Чем заменить или дополнить: бот, email, SMS

Бот в Telegram или MAX работает на любом телефоне, подписка идёт по кнопке. Что боту по силам вместо приложения, я разобрал в статье про бот вместо приложения. Email подходит для длинного содержания. SMS платный, зато достаёт без интернета, стоимость сравнивал в статье про SMS и мессенджеры. Моя схема: push быстрый слой, критичное дублируется ботом или SMS.

Как я это делаю

Web push по VAPID я подключал в нескольких проектах, в том числе в CRM для строительной компании. Вот что вынес.

  1. Сначала сценарий. Список событий, о которых нужно знать сразу, остальное показываю внутри страницы.
  2. Двухшаговый запрос. Свой экран с объяснением, потом клик, потом системное окно.
  3. Ключи VAPID храню и бэкаплю отдельно. С новым ключом все подписки перестают работать, и людям придётся разрешать заново.
  4. Срок жизни и приоритет. Библиотека для Python по умолчанию ставила время жизни сообщения ноль секунд: если телефон спал, уведомление пропадало. Я выставил сутки и высокий приоритет.
  5. Диагностика. В базе храню устройство и ответ push-службы, а в списке сотрудников есть колонка, у кого уведомления включены.
  6. Привязка. При выходе из аккаунта отвязываю устройство, при входе привязываю снова.
  7. Запасной канал. На iPhone пуш работает только в установленном приложении, и если человек открыл ссылку из мессенджера, уведомлений не будет, причём молча. Поэтому в одном проекте основной канал бот, а web push вторичный.

Звук и всплывающее окно решают настройки телефона. Если канал нужен вам, смотрите страницу разработки сайтов и приложений. Отдельной строки «web push» в прайсе нет, пуши входят в описание PWA-приложения от 150 000 ₽. Для магазина (от 200 000 ₽) и корпоративного сайта (от 100 000 ₽) подключение оцениваю в рамках проекта, для готового сайта считаю отдельно.

Частые вопросы

Push уведомления на сайте: что это простыми словами?

Короткие сообщения от сайта, которые появляются на экране устройства. Работают, только если человек сам нажал «Разрешить», и приходят даже при закрытой вкладке.

Как подключить push уведомления на сайте?

Два пути. Готовый сервис (например Sendsay или Altcraft) даёт интерфейс рассылок и сегменты. Свой сервер на VAPID даёт контроль над подписками, но требует разработки. Нужны HTTPS и service worker.

Работают ли push уведомления на iPhone?

Да, но по данным WebKit для сайта, добавленного на экран «Домой», с iOS 16.4, и запрос должен идти по прямому нажатию. Для посетителей, которые не ставят сайт на экран, заранее предусмотрите запасной канал.

Нужно ли согласие на push уведомления на сайте?

Системное «Разрешить» нужно технически. Для рекламы статья 18 закона «О рекламе» требует предварительного согласия, и доказывать его вам. Применимость к браузерным пушам спорная, поэтому веду журнал и показываю свой экран с объяснением. Проверьте с юристом.

Коротко о главном

Web push полезен, когда человеку нужно быстро узнать о событии, которого он сам ждёт. Единственным каналом он быть не может: iPhone требует установки сайта, Chrome блокирует навязчивых, доставка идёт через чужую инфраструктуру, а границы для рекламных пушей спорные. Начните со статусов и напоминаний, спрашивайте разрешение после клика и дублируйте важное ботом, email или SMS.

Подключу push к вашему сайту, магазину или PWA и настрою запасные каналы. Напишите мне в Telegram кодовое слово «ПУШ», и мы разберём, какие события стоит отправлять и какой канал подойдёт вашей аудитории.

Обсудим вашу задачу

Push-уведомления и связанные каналы

Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.

  • Web push на сайт, в магазин и в PWA
  • Экран запроса разрешения и сегменты подписки
  • Запасной канал: бот в Telegram или MAX
  • Цепочки: корзина, статус заказа, напоминания
Пишу о разработке, ИИ и законах для бизнеса

Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх