Push-сповіщення в мобільній розробці — суть, типи та як працюють

Автор: IT Sectr Опубліковано: 2026-03-19 Час читання: 8 хв

Push-сповіщення — це повідомлення, які сервер надсилає на мобільний пристрій навіть коли додаток закритий. Згідно з Google Firebase, 2024, Push-сповіщення обробляються через спеціалізовані сервіси — FCM на Android та APNS на iOS, які підтримують доставку в реальному часі мільйонам пристроїв одночасно. Вони стали невід'ємною частиною користувацького досвіду в сучасних мобільних додатках.

Головне

  • Push-сповіщення — повідомлення від сервера, що доставляються через FCM або APNS.
  • FCM (Firebase Cloud Messaging) — основний сервіс для Android з підтримкою iOS.
  • APNS (Apple Push Notification Service) — власний сервіс Apple для iOS та macOS.
  • Типи сповіщень поділяються на текстові, медіа-та тихі сповіщення.
  • Токени пристроїв — унікальні ідентифікатори для адресної доставки Push-повідомлень.

Що таке Push-сповіщення?

Push-сповіщення — це короткі повідомлення, які сервер додатка надсилає на пристрій користувача без його явного запиту. Вони відображаються у вигляді банерів, значків на іконці або звукових сигналів, привертаючи увагу користувача до додатка та інформуючи про важливі події.

Визначення та призначення

Push-сповіщення складається з заголовка, тіла повідомлення та необов'язкових даних (payload). На відміну від SMS, Push-сповіщення є безкоштовними для користувача та доставляються через інфраструктуру хмарних сервісів — FCM для Android та APNS для iOS. Основні цілі Push-сповіщень: підвищення залученості, інформування про події та повернення користувача в додаток.

Статистика використання показує, що правильно налаштовані Push-сповіщення збільшують утримання додатка на 30–60%. Однак надмірна частота сповіщень призводить до відписок — понад 60% користувачів вимикають сповіщення, якщо їх надсилають частіше трьох разів на день.

Архітектура Push-системи

Push-система включає три компоненти: сервер додатка, платформений сервіс (FCM/APNS) та клієнтський додаток на пристрої. Сервер надсилає запит платформеному сервісу, який доставляє сповіщення на цільовий пристрій через постійне з'єднання з ОС.

Як працюють Push-сповіщення?

Механізм доставки Push-сповіщень базується на постійному з'єднанні між пристроєм та платформеним сервісом. Операційна система підтримує зашифрований канал зв'язку, через який проходять всі Push-повідомлення.

Реєстрація та отримання токена

При першому запуску додаток запитує дозвіл на надсилання сповіщень та отримує унікальний токен пристрою від FCM або APNS. Цей токен — рядок довжиною до 4 КБ, який однозначно ідентифікує екземпляр додатка. Токен змінюється при перевстановленні додатка або відновленні пристрою з резервної копії.

kotlin
class FirebaseMessagingService :
    FirebaseMessagingService() {

    override fun onNewToken(token: String) {
        sendTokenToServer(token)
    }

    override fun onMessageReceived(
        message: RemoteMessage
    ) {
        showNotification(message.notification)
    }
}

Відправлення через сервер додатка

Сервер додатка надсилає HTTP-запит до FCM API або APNS API, зазначаючи цільовий токен, заголовок, тіло та додаткові дані. Платформений сервіс відповідає статусом доставки: успіх, недійсний токен (пристрій видалив додаток) або перевищення частоти надсилання.

js
fetch("https://fcm.googleapis.com/fcm/send", {
    method: "POST",
    headers: {
        "Authorization": "key=AIzaSy...",
        "Content-Type": "application/json"
    },
    body: JSON.stringify({
        to: "device_token_here",
        notification: {
            title: "Нове повідомлення",
            body: "У вас нове сповіщення!"
        }
    })
})

FCM vs APNS: порівняння платформ

Вибір між FCM та APNS залежить від цільової платформи. FCM підтримує Android та iOS, APNS — лише екосистему Apple. Розглянемо ключові відмінності, важливі для розробки крос-платформенних мобільних додатків.

Firebase Cloud Messaging (FCM)

FCM — це сервіс Google, що працює поверх Google Play Services. Він підтримує дві схеми доставки: сповіщення з автоматичним відображенням та дата-сповіщення, які додаток обробляє самостійно. FCM безкоштовний і не має обмежень на кількість надісланих повідомлень.

Apple Push Notification Service (APNS)

APNS — це сервіс Apple з підтримкою мультимедійних вкладок (зображення, відео, аудіо) розміром до 10 МБ. Для надсилання через APNS потрібен TLS-сертифікат або ключ аутентифікації. APNS обмежує частоту надсилання на один пристрій — не більше 150 сповіщень на хвилину, після чого вмикається обмеження швидкості.

ХарактеристикаFCMAPNS
ПлатформиAndroid, iOS, WebiOS, macOS, watchOS
ВимогиGoogle Play ServicesApple Developer Program
Медіадо 4 КБ (дані)до 10 МБ (вкладки)
Пріоритетнормальний/високийнегайний/енергозберігаючий
Вартістьбезкоштовнобезкоштовно (потрібен акаунт)

Типи Push-сповіщень

Push-сповіщення класифікуються за способом відображення та призначенням. Розуміння типів допомагає вибрати правильну стратегію для кожного сценарію взаємодії з користувачем.

Сповіщення з текстом (Display Notifications)

Найпоширеніший тип — відображуване сповіщення з заголовком та тілом. ОС автоматично показує його в системній шторці, на екрані блокування та у вигляді банера. Розробник може налаштувати звук, вібрацію, значок на іконці та кнопки дій для прямих дій (відповісти, відкрити, відхилити).

Дата-сповіщення (Data Notifications)

Дата-сповіщення містять лише payload без візуального відображення. Додаток обробляє їх у фоні: синхронізує дані, оновлює кеш або запускає завантаження. На Android дата-сповіщення доставляються гарантовано, на iOS — лише при активному додатку або через фонове оновлення.

Мультимедійні та rich-сповіщення

Сучасні мобільні ОС підтримують розширені та медіа-сповіщення з зображеннями, GIF, відео та аудіо. На iOS це реалізовано через UNNotificationAttachment, на Android — через BigPictureStyle та InboxStyle для кастомізації вигляду сповіщення в системній шторці.

Тихі (silent) сповіщення

Тихі сповіщення не відображаються користувачеві та використовуються для фонової синхронізації. На iOS вони мають високий пріоритет для завдань типу оновлення даних перед відкриттям додатка. Android трактує їх як дата-сповіщення з мінімальним пріоритетом.

Налаштування Push-сповіщень в проєкті

Налаштування Push-сповіщень вимагає дій на рівні інфраструктури, серверної частини та клієнтського коду. Розглянемо типовий процес для крос-платформенного мобільного проєкту.

Налаштування FCM для Android

Для Android необхідно створити проєкт у Firebase Console, додати google-services.json до проєкту та налаштувати FirebaseMessagingService. Токен пристрою отримується через FirebaseInstanceId або FirebaseMessaging.getInstance().token, після чого надсилається на сервер через API при першому запуску або при його зміні.

Налаштування APNS для iOS

Для iOS потрібна підписка на Apple Developer Program, створення Push-сертифіката або APNS-ключа в Developer Portal та вмикання можливості Push Notifications у Xcode. Реєстрація на сповіщення виконується через UIApplication.shared.registerForRemoteNotifications з отриманням deviceToken в AppDelegate.

swift
import UIKit
import UserNotifications

@main
class AppDelegate: UIResponder,
    UIApplicationDelegate {

    func application(
        _ application: UIApplication,
        didRegisterForRemoteNotificationsWithDeviceToken
        deviceToken: Data
    ) {
        let token = deviceToken
            .map { String.format("%02x", $0) }
            .joined()
        // надіслати token на свій сервер
    }
}

Серверне надсилання

На серверному боці Push-сповіщення надсилаються через REST API або Admin SDK. FCM використовує Firebase Admin SDK (доступний для Node.js, Java, Python, Go), APNS — pusher-бібліотеки (pushy для Java, apn2 для Node.js). Рекомендується зберігати токени в базі даних з позначкою часу останнього оновлення.

Безпека Push-сповіщень

Безпека Push-сповіщень критично важлива, оскільки через них можуть передаватися конфіденційні дані. Обидві платформи надають базові механізми захисту, але розробник зобов'язаний правильно їх використовувати.

Шифрування payload

Payload Push-сповіщення може містити персональні дані користувачів: імена, суми транзакцій, посилання на повідомлення. Навіть якщо канал зв'язку між FCM/APNS та пристроєм зашифрований, дані можуть бути перехоплені на рівні додатка при перехопленні сповіщення стороннім ПЗ. Рекомендується шифрувати чутливий payload на сервері алгоритмом AES-256 та дешифровувати його на пристрої за допомогою ключа, що зберігається в Keychain (iOS) або EncryptedSharedPreferences (Android).

Валідація токенів на сервері

Токен пристрою — це ідентифікатор сесії, який може бути скомпрометований при зламі пристрою або перехопленні трафіку. Сервер додатка повинен перевіряти токени перед надсиланням: звіряти їх з БД, відстежувати неактивні токени та видаляти їх при повторюваних помилках InvalidToken. FCM та APNS повертають статус InvalidRegistration для недійсних токенів — не ігноруйте його.

Захист від спаму сповіщеннями

Без контролю частоти Push-сповіщення можуть стати інструментом спаму, який дратує користувачів та знижує утримання. Встановіть ліміти на сервері: не більше 5 сповіщень на годину одному користувачеві та не більше 3 однакових повідомлень. Для транзакційних сповіщень (підтвердження замовлення, зміна пароля) ліміти можуть бути вищими — до 10 на годину, оскільки вони несуть критично важливу інформацію. Використовуйте rate limiting на рівні API надсилання, щоб зловмисник не зміг запустити масову розсилку через ваш сервер.

Часто запитувані питання

Чи можна надсилати Push-сповіщення без FCM на Android?

Так, через пряме підключення до APNS не підтримується на Android — для пристроїв без Google Play Services використовуються альтернативи на кшталт Huawei Mobile Services (HMS) та власні WebSocket-з'єднання. Однак FCM залишається стандартом для більшості додатків завдяки безкоштовності та надійності.

Як працює доставка Push при вимкненому інтернеті?

FCM та APNS зберігають останнє сповіщення на своїх серверах та доставляють його при відновленні з'єднання. На кожному пристрої зберігається лише останнє сповіщення від кожного додатка, тому при тривалій відсутності мережі проміжні повідомлення втрачаються.

Чому Push-сповіщення не приходять на iOS?

Найчастіші причини — прострочений Push-сертифікат (дійсний 1 рік), недійсний токен пристрою, відключені сповіщення в налаштуваннях або увімкнений режим енергозбереження. Перевірте сертифікат в Apple Developer Console та переконайтеся, що додаток запитує дозвіл через UNUserNotificationCenter.

Як відстежити, що користувач відкрив Push-сповіщення?

На Android використовуйте PendingIntent в NotificationCompat.Builder з відстеженням відкриття через Intent. На iOS — метод UNUserNotificationCenterDelegate.userNotificationCenter(_:didReceive:withCompletionHandler:). FCM надає звіти про доставку та відкриття для кожного надісланого сповіщення.

Чи впливають Push-сповіщення на заряд батареї?

Незначно — Push-сповіщення не утримують постійне з'єднання; ОС використовує єдиний системний канал для всіх додатків, що мінімізує загальне енергоспоживання. Часте надсилання (кожні 5 хвилин) споживає більше енергії на пробудження пристрою зі спячого режиму. Тихі сповіщення на iOS витрачають більше заряду через активацію додатка в фоні для обробки отриманих даних.

Підсумки

  • Push-сповіщення — повідомлення на пристрій через FCM або APNS.
  • Токен пристрою — унікальний ідентифікатор для адресної доставки Push.
  • FCM підтримує Android, iOS та Web; APNS — лише екосистему Apple.
  • Дата-сповіщення обробляються в фоні без відображення користувачеві.
  • Медіа-сповіщення на iOS підтримують вкладки до 10 МБ, на Android — через розширені стилі.
  • Сертифікати APNS потребують щорічного оновлення в Apple Developer Portal.
  • Rate limiting FCM та APNS захищає користувачів від спаму сповіщеннями, обмежуючи частоту надсилання на кожен пристрій.

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також