Налаштування 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 ₽ |
Оцінка вартості вашого проєкту — безкоштовно. Замовте консультацію інженера, щоб обговорити деталі.







