Настройка персонализации push-уведомлений в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Настройка персонализации push-уведомлений в мобильном приложении
Средняя
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Настройка персонализации push-уведомлений в мобильном приложении

Уведомление «Привет, {{имя}}!» — это не персонализация. Настоящая персонализация — это когда пользователь получает сообщение о скидке именно на ту категорию товаров, которую просматривал три дня назад, в то время суток, когда он обычно открывает приложение. Разберём, как это реализуется технически.

Динамические переменные в payload

Любая серьёзная платформа — OneSignal, Braze, CleverTap, Firebase + собственный бэкенд — поддерживает шаблоны с переменными. Серверная сторона рендерит финальный текст перед отправкой.

В OneSignal это выглядит так на уровне API:

{
  "app_id": "YOUR_APP_ID",
  "include_aliases": { "external_id": ["user_88234"] },
  "headings": { "ru": "{{first_name}}, ваш избранный товар подешевел" },
  "contents": { "ru": "{{product_name}} теперь стоит {{new_price}} ₴ — на {{discount_percent}}% меньше" },
  "data": { "product_id": "{{product_id}}", "screen": "product_detail" }
}

Значения переменных берутся из тегов пользователя в OneSignal или передаются в substitutions при отправке через API. Тег first_name должен быть установлен заранее на клиенте:

OneSignal.User.addTag("first_name", user.firstName)
OneSignal.User.addTag("preferred_category", user.topCategory)

Персонализация на основе поведения

Это сложнее — требует аналитического слоя на бэкенде. Типичная схема:

  1. Клиент логирует события (просмотр товара, добавление в вишлист, категория).
  2. Бэкенд или ML-сервис формирует рекомендации по пользователю.
  3. При отправке уведомления payload обогащается рекомендованным контентом.

Если нет собственного рекомендательного движка — можно использовать Firebase Personalization (ML-based оптимизация контента A/B тестов) или Braze Recommendations, которые строят модель на основе истории событий SDK.

// Логируем поведение через Firebase Analytics
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_ITEM) {
    param(FirebaseAnalytics.Param.ITEM_ID, product.id)
    param(FirebaseAnalytics.Param.ITEM_CATEGORY, product.category)
    param(FirebaseAnalytics.Param.PRICE, product.price)
}

Оптимальное время отправки (Intelligent Delivery)

OneSignal Intelligent Delivery и Braze Optimal Time отслеживают паттерны активности каждого пользователя и откладывают доставку до периода наибольшей вероятности открытия. Для одного пользователя это 8 утра, для другого — 23:00.

Включается одним параметром при отправке:

{
  "delayed_option": "last-active",
  "delivery_time_of_day": "9:00AM"
}

last-active — доставить в то же время суток, когда пользователь последний раз был активен. Это не ML, но уже лучше batch-рассылки в одно время для всех.

Более точный вариант в OneSignal — intelligent_delivery: true. Платформа сама выбирает окно по истории open rate конкретного пользователя.

A/B тестирование

Без A/B нельзя утверждать, что персонализация работает. OneSignal поддерживает A/B тесты нативно:

{
  "name": "price_drop_ab_test",
  "messages": [
    {
      "variant_id": "A",
      "contents": { "ru": "{{product_name}} подешевел на {{discount}}%" },
      "weight": 50
    },
    {
      "variant_id": "B",
      "contents": { "ru": "Скидка {{discount}}% на товар из вашего вишлиста" },
      "weight": 50
    }
  ]
}

После завершения теста OneSignal показывает CTR по каждому варианту. Победивший вариант внедряем в шаблон.

Отслеживание конверсий

CTR уведомления — промежуточная метрика. Важнее — did the user actually complete the action? Для этого нужны outcome events:

// В обработчике открытия уведомления
OneSignal.Notifications.addClickListener { event ->
    val productId = event.notification.additionalData?.getString("product_id")
    // Пользователь перешёл к товару
    OneSignal.Session.addOutcome("notification_click_to_product")
}

// После завершения покупки (в другом месте кода)
OneSignal.Session.addOutcomeWithValue("purchase_from_notification", orderValue.toFloat())

Это связывает конверсию с конкретным уведомлением даже если между кликом и покупкой прошло несколько минут.

Сроки

Реализация динамических переменных и шаблонов, настройка Intelligent Delivery, интеграция outcome events и базового A/B тестирования — 6–10 рабочих дней. Если требуется собственный рекомендательный слой на бэкенде или интеграция с внешней ML-системой — сроки обсуждаются отдельно.