Настройка push-уведомлений мобильного приложения 1С-Битрикс
Мобильное приложение на платформе 1С-Битрикс (Bitrix Mobile) имеет встроенный механизм push-уведомлений. Но без правильной настройки уведомления не доходят. Мы настраиваем push от получения ключей до кастомных сценариев с сегментацией и контролем частоты. Опыт работы с Битрикс24 — более 7 лет, выполнено более 50 проектов с мобильными приложениями. Типичный кейс: интернет-магазин с 10 000+ товаров, где push-уведомления о снижении цены повысили возврат пользователей на 25%. Настройка заняла 3 дня, а бюджет составил около 80 000 ₽ (включая кастомный сценарий). Свяжитесь с нами — оценим ваш проект бесплатно.
Почему push-уведомления не работают после сборки приложения?
Разработчики часто сталкиваются с ситуацией: приложение собрано, опубликовано, но push не приходят. Причина — неверно указаны ключи Firebase Cloud Messaging (Android) или APNs (iOS), или не настроены шаблоны уведомлений в панели Битрикс. По статистике, 60% проблем с push решаются правильной регистрацией ключей.
Firebase Cloud Messaging (Android)
- В Firebase Console создаём проект, добавляем Android-приложение с bundle ID.
- Скачиваем
google-services.json, кладём в проект Bitrix Mobile. - Копируем Server Key из Firebase Console → Cloud Messaging.
В панели управления Битрикс: Настройки → Настройки продукта → Мобильные приложения → Push и Pull — вставляем Server Key Firebase.
APNs (iOS)
- В Apple Developer: создаём APNs Key (.p8 файл), запоминаем Key ID и Team ID.
- В Битрикс: вставляем содержимое .p8 файла, Key ID, Team ID, Bundle ID.
После этого стандартные push-уведомления Битрикс (новый заказ, смена статуса через стандартные события) начнут работать.
Сравнение FCM и APNs
| Характеристика | FCM (Android) | APNs (iOS) |
|---|---|---|
| Тип ключа | Server Key (строка или JSON) | .p8-файл с Key ID и Team ID |
| Безопасность | Требуется дополнительная настройка SHA | Встроенная проверка сертификата |
| Доставка в фоне | WorkManager/JobScheduler | Background Task Framework |
| Срок действия токена | Может меняться при обновлении приложения | Стабилен до удаления приложения |
| Деактивация устаревших токенов | Автоматическая при ответе FCM | Ручная при статусе 410 от APNs |
Как реализовать кастомные push-уведомления для сценариев интернет-магазина?
Для отправки нестандартных уведомлений (например, «Ваш заказ отправлен» с трекинг-номером или «Снижение цены на товар из вишлиста») используется модуль pull Битрикс и класс \Bitrix\Pull\MobileNotify. Готовый механизм в 3 раза сокращает время разработки по сравнению с ручной реализацией через WebSocket.
use Bitrix\Pull\MobileNotify; // Уведомление о статусе заказа public function sendOrderStatusPush(int $userId, array $order): void { if (!\Bitrix\Main\Loader::includeModule('pull')) return; $message = [ 'module_id' => 'local.shop', 'command' => 'orderStatusChanged', 'expiry' => 3600, // секунды 'user_list' => [$userId], 'message' => "Заказ #{$order['ID']}: статус изменён на «{$order['STATUS']}»", 'params' => [ 'orderId' => $order['ID'], 'status' => $order['STATUS'], 'trackCode' => $order['TRACK_CODE'] ?? '', ], 'push' => [ 'sound' => 'default', 'badge' => 1, ], ]; MobileNotify::send($message); } В мобильном приложении (если кастомное на React Native) — обработчик события module.local.shop.orderStatusChanged обновляет экран заказа.
Уведомления о снижении цены (wishlist)
Триггер — обработчик события обновления цены в каталоге:
\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'catalog', 'OnPriceUpdate', function (\Bitrix\Main\Event $event) { $priceData = $event->getParameter('fields'); $productId = $priceData['PRODUCT_ID']; $newPrice = $priceData['PRICE']; // Находим пользователей, у которых товар в вишлисте $wishlistUsers = WishlistTable::getUsersByProduct($productId); foreach ($wishlistUsers as $userId) { $oldPrice = $this->getLastNotifiedPrice($userId, $productId); if ($newPrice < $oldPrice * 0.95) { // скидка более 5% $this->sendPricePush($userId, $productId, $oldPrice, $newPrice); } } } ); Сегментация и ограничение частоты
Массовая рассылка push через Битрикс — выполняется через цикл по пользователям с ограничением частоты. Пользователи могут отключить уведомления определённого типа в настройках приложения. Битрикс хранит device_token в таблице b_pull_client, статус разрешений — в b_pull_push_settings.
Ограничение: не более 1 push определённого типа в течение N часов для одного пользователя — логика на PHP, check перед отправкой.
if ($this->canSendPush($userId, 'price_drop', 24)) { // не чаще раза в сутки MobileNotify::send($message); $this->recordPushSent($userId, 'price_drop'); } Мониторинг доставки
FCM и APNs возвращают статусы доставки. Недоставленные токены (приложение удалено, устройство заменено) нужно деактивировать — иначе таблица токенов засоряется. Битрикс обрабатывает ответы FCM автоматически при корректной настройке. Для APNs при использовании кастомной отправки — проверяйте статус 410 (токен недействителен) и удаляйте токен из b_pull_client. Экономия на поддержке чистой таблицы токенов составляет до 30% времени администратора.
Этапы работы
Развернуть подробный план работ
- Аудит текущей инфраструктуры — проверка версии Битрикс, модуля pull, существующих токенов.
- Получение ключей — регистрация в Firebase Console и Apple Developer, выпуск ключей.
- Настройка панели Битрикс — ввод Server Key, APNs-ключей, тестовый запуск.
- Разработка кастомных сценариев — написание команд, событий, интеграция с мобильным приложением.
- Тестирование — проверка на Android и iOS, эмуляция сбоев доставки.
- Деплой и мониторинг — включение в боевую среду, отслеживание доставки 2 недели.
Что входит в работу
- Создание проектов Firebase и Apple Developer, получение и регистрация ключей
- Настройка FCM и APNs в панели управления Битрикс
- Тестирование стандартных уведомлений (заказы, статусы)
- Разработка кастомных push: снижение цены, новые акции, напоминания
- Сегментация: отправка по группам пользователей
- Ограничение частоты, деактивация устаревших токенов
- Документация по интеграции и передача доступов
- Гарантия доставки: мониторинг в течение 2 недель после запуска
Сроки
- Стандартные уведомления: от 1 до 2 дней
- Кастомные сценарии с сегментацией: от 1 до 2 недель
Сравнение стандартного и кастомного подхода
| Параметр | Стандартные push | Кастомные push |
|---|---|---|
| Время настройки | 1–2 дня | 1–2 недели |
| Гибкость | Только системные события | Любые сценарии бизнеса |
| Сегментация | Нет | По группам, частоте, интересам |
| Контроль доставки | Через логи Битрикс | Кастомный мониторинг, ретраи |
| Бюджет | от 30 000 ₽ | от 120 000 ₽ |
Оценка стоимости вашего проекта — бесплатно. Закажите консультацию инженера, чтобы обсудить детали.







