Коллеги, добрый день. Если вы читаете этот материал, значит, вопрос интеграции push-уведомлений в ваш проект уже перешел из разряда «когда-нибудь» в категорию «прямо сейчас». И бюджет, как это часто бывает, стремится к нулю. Не беспокойтесь. Ваш покорный слуга, прошедший через ад деплоя сотен сервисов, с радостью проведу для вас краткий, но насыщенный ликбез по бесплатным платформам для отправки push-нотификаций. Забудьте про «велосипеды» — зачем изобретать SMPP для веба, когда есть готовые и, что немаловажно, бесплатные решения?
Сразу оговорюсь: «бесплатный» не значит «профессионально непригодный». Речь пойдет о сервисах с щедрым free-тиром, которого хватит для стартапа, pet-проекта или внутреннего инструментария. Мы оценим их не по красоте лендинга, а по ключевым для нас, как инженеров, параметрам: надежность доставки, латентность, наличие WebSocket/FCM/APNs прокси, удобство API и, конечно, прозрачность лимитов.
Зачем внешний сервис? Или немного архитектурной лирики
Самостоятельная реализация полноценной системы пуш-уведомлений — это не только бэкенд для рассылки. Это поддержание персистентных соединений (WebSocket, долгий polling), интеграция с Firebase Cloud Messaging (FCM) для Android и Apple Push Notification service (APNs) для iOS, масштабирование, обработка ретраев, мониторинг доставки и отказов. Головной боли — на годы. Гораздо рациональнее делегировать этот сложный инфраструктурный слой специализированному провайдеру.
Топ-5 бесплатных сервисов для push-уведомлений: взгляд под капот
1. OneSignal — безоговорочный лидер free-сегмента.
- Лимиты: До 10 000 активных подписчиков, неограниченное количество уведомлений. Для мобильных приложений — 1 млн push-нотификаций в месяц.
- Архитектурные плюсы: Нативная поддержка веб (свой скрипт и SDK), iOS (через собственный APNs-мост), Android (через FCM). Имеет мощный сегментатор аудитории и A/B-тестирование даже на бесплатном тарифе.
- Минус: На бесплатном тарифе отображается их брендинг в prompt на подписку (но не в самих уведомлениях).
2. Firebase Cloud Messaging (FCM) — инструмент от Google для разработчиков.
- Лимиты: Фактически бесплатен без явных лимитов на количество сообщений или устройств. Ограничения носят скорее «разумный» характер (пропускная способность, скорость).
- Архитектурные плюсы: Канонический способ отправки пушей на Android. Имеет SDK для iOS и веба. Интеграция напрямую, без посредников, что дает минимальную задержку.
- Минус: Требует настройки проекта в Google Firebase Console. Для веба нужен Service Worker. Меньше «магии» и готовых виджетов подписки по сравнению с OneSignal.
3. Pushpad
- Лимиты: До 100 активных подписчиков бесплатно.
- Архитектурные плюсы: Простейшая интеграция (один скрипт). Поддерживает HTTPS, VAPID. Нет брендинга в prompt на бесплатном тарифе.
- Минус: Слишком скромный лимит подписчиков. Подходит только для тестирования или крошечных проектов.
4. PushCrew (теперь часть SendPulse)
- Лимиты: До 500 подписчиков и 1500 отправленных пушей в месяц.
- Архитектурные плюсы: Удобный конструктор уведомлений, планировщик, аналитика. Работает через свой JS SDK.
- Минус: Лимит на отправку, а не только на подписчиков. После перехода под крыло SendPulse изменилась модель тарификации.
5. WonderPush
- Лимиты: 10 000 активных устройств, неограниченные push-уведомления.
- Архитектурные плюсы: Очень быстрая настройка для мобильных приложений (React Native, Flutter, Cordova). Прозрачная прокси-прослойка для APNs и FCM. Хорошая документация с примерами для API.
- Минус: Для веб-пушей функционал скромнее, чем у OneSignal.
Пять практических примеров интеграции (краткий код-ревью)
Пример 1: Быстрая интеграция OneSignal для веб-сайта.
<!-- В head вашего сайта --> <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20src%3D%22https%3A%2F%2Fcdn.onesignal.com%2Fsdks%2FOneSignalSDK.js%22%20async%3E%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object mce-object-script" width="20" height="20" alt="&lt;script&gt;" /> <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%3E%0A%20%20%20%20window.OneSignal%20%3D%20window.OneSignal%20%7C%7C%20%5B%5D%3B%0A%20%20%20%20OneSignal.push(function()%20%7B%0A%20%20%20%20%20%20OneSignal.init(%7B%0A%20%20%20%20%20%20%20%20appId%3A%20%22YOUR_APP_ID%22%2C%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D)%3B%0A%20%20%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object mce-object-script" width="20" height="20" alt="&lt;script&gt;" />
После инициализации скрипт сам покажет prompt на подписку (если пользователь еще не подписан) и начнет получать push.
Пример 2: Отправка тестового пуша через cURL (FCM REST API).
Предполагается, что у вас есть ключ сервера (SERVER_KEY) и токен устройства (DEVICE_TOKEN).
curl -X POST \
-H "Authorization: key=SERVER_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "DEVICE_TOKEN",
"notification": {
"title": "Сервер лежит!",
"body": "Проверьте Nginx на host-01",
"icon": "/icon.png"
}
}' \
"https://fcm.googleapis.com/fcm/send"
Идеально для мониторинга и алертинга через собственные скрипты.
Пример 3: Сегментированная рассылка в OneSignal через API.
Отправка уведомления только пользователям, подписанным на тэг «plan:pro».
curl --include \
--request POST \
--header "Content-Type: application/json; charset=utf-8" \
--header "Authorization: Basic YOUR_REST_API_KEY" \
-d '{
"app_id": "YOUR_APP_ID",
"filters": [{"field": "tag", "key": "plan", "relation": "=", "value": "pro"}],
"contents": {"en": "Новый функционал для PRO уже доступен!"},
"headings": {"en": "Обновление для вас"}
}' \
"https://onesignal.com/api/v1/notifications"
Пример 4: Обработка входящего веб-пуша на вашем бэкенде (Node.js).
Проверка подлинности подписки VAPID (актуально для многих сервисов).
const webpush = require('web-push');
// Устанавливаем VAPID ключи (генерируются один раз)
webpush.setVapidDetails(
'mailto:admin@yourdomain.com',
process.env.PUBLIC_VAPID_KEY,
process.env.PRIVATE_VAPID_KEY
);
// Отправка
const subscription = {...}; // Объект подписки, полученный с фронтенда
webpush.sendNotification(subscription, JSON.stringify({
title: 'Время бэкапа',
body: 'Запущен процесс резервного копирования БД.'
})).catch(error => console.error('Ошибка отправки push:', error));
Пример 5: Мониторинг статуса доставки через коллбэк (WonderPush).
Настройка webhook для получения событий о доставке/открытии уведомлений.
# В админке WonderPush укажите URL вашего обработчика, например:
# https://api.yourproject.com/webhook/push-status
# Пример тела POST-запроса, который придет вам:
# {
# "event": "notification.sent", // или "notification.clicked"
# "notificationId": "abc123",
# "deviceId": "def456",
# "timestamp": 1634567890000
# }
# Это позволяет строить точную аналитику доставки.
Резюмируя: Для быстрого старта веб-проекта берите OneSignal. Для мобильного приложения с фокусом на Android/iOS — смотрите в сторону FCM и WonderPush. Для кастомных алертов и мониторинга освойте отправку через FCM API. Главное — не залипайте на этапе выбора. Интегрируйте любой, протестируйте поток доставки от бэкенда до девайса, а дальше будет видно. Инфраструктура должна работать на вас, а не вы на нее.
Стабильных вам соединений и 100% delivery rate. Не перегревайтесь.




