Как устроен FCM

FCM — посредник между вашим сервером и устройством пользователя. Сам сервер не может «толкнуть» сообщение напрямую: нет прямого соединения с конкретным смартфоном. FCM решает эту задачу: поддерживает постоянное соединение с миллиардами устройств и маршрутизирует сообщения.

Ваш сервер → FCM API → Google серверы → Устройство (Android / браузер)
                                     → APNs → Устройство (iOS)

Маршрутизация по push-токену: уникальный идентификатор устройства в экосистеме FCM. При первом запуске приложение получает токен и должно сохранить его на сервере.

Типы сообщений FCM

Тип Показывается как Приложение Подходит для
Notification message Системный баннер автоматически Не нужно Простые уведомления, промо
Data message Приложение решает Должно быть активно или фоновый сервис Rich Push, кастомная логика
Комбинированное Системный баннер + данные Фоновый обработчик Диплинк + уведомление

FCM в e-commerce

Типичные сценарии для push через FCM:

  • Статус заказа. «Ваш заказ передан курьеру» — транзакционные сообщения, высокий приоритет доставки.
  • Персональные акции. Скидка на категорию по affinity-профилю. Триггер — ручная или автоматическая кампания.
  • Price drop. Цена снизилась на товар из вишлиста или просматриваемый ранее.
  • Back in stock. Товар из вишлиста снова доступен.

Важно: quality delivery зависит от нескольких факторов одновременно: актуальный токен, правильный TTL, корректный приоритет (HIGH для важных, NORMAL для маркетинговых). Проверяйте delivery rate в FCM Console — норма > 85%.

Управление токенами

Самая распространённая техническая проблема с FCM — устаревшие токены в базе. Как избежать:

  • Подписывайтесь на onTokenRefresh и обновляйте токен в базе при каждом изменении
  • При получении ошибки NotRegistered или InvalidRegistration — немедленно удаляйте токен
  • Проводите регулярную чистку токенов, которые не использовались более 3 месяцев
  • Храните дату последнего обновления токена для диагностики