Настройка сегментации 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-уведомлений в мобильном приложении

Отправлять одно и то же уведомление всей базе — это не сегментация, это спам. CTR падает, отписки растут, iOS начинает ограничивать доставку через Apple's notification throttling для приложений с низким engagement rate. Грамотная сегментация — техническая задача, а не маркетинговая.

Как работает сегментация на уровне SDK

Любая платформа рассылок (OneSignal, Firebase, Braze, Airship) строит сегменты на основе двух источников: атрибуты пользователя (теги, properties) и поведенческие данные (события, сессии, покупки).

На клиенте задача одна — корректно передавать данные:

// Android — после каждого значимого действия
OneSignal.User.addTag("subscription_tier", "premium")
OneSignal.User.addTag("last_active_days", "0")
OneSignal.User.addTag("preferred_category", "electronics")

// При изменении локации (с разрешения пользователя)
OneSignal.User.addTag("region", "UA-30") // ISO 3166-2
// iOS — то же самое
OneSignal.User.addTag("onboarding_completed", "true")
OneSignal.User.addTag("cart_items_count", "\(cart.items.count)")

Теги — строки. Всё сравнение серверное. Важно: не отправляйте тег при каждом запуске приложения — это лишний трафик. Отправляйте только при изменении значения.

Поведенческие сегменты и триггеры

Самый частый кейс — триггерная отправка по событию: пользователь бросил корзину, не открывал приложение 7 дней, прошёл онбординг но не совершил первое действие.

Для этого нужна серверная логика. Мобильный клиент только фиксирует events:

// Firebase Analytics — события автоматически доступны в Audience Builder
FirebaseAnalytics.getInstance(context).logEvent("checkout_started") {
    param("cart_value", 1250.0)
    param("items_count", 3L)
}

В Firebase Audiences можно построить сегмент: «пользователи, которые запустили checkout_started но не запустили purchase_complete за последние 24 часа» — и отправить им уведомление через FCM напрямую или через Firebase In-App Messaging.

Если используется Braze — там сегменты строятся через Canvas с условными ветвями. Клиентская интеграция через Braze SDK:

// iOS
Appboy.sharedInstance()?.logCustomEvent("item_viewed", withProperties: [
    "item_id": "SKU-4892",
    "category": "shoes"
])

Геосегментация

Геосегментация в push — не «находится в Киеве прямо сейчас», а «регион пользователя из профиля» или геозоны (geofences).

OneSignal поддерживает автоматическое определение локации при включённом setLocationShared(true). Но Apple и Google всё жёстче относятся к фоновой геолокации. Надёжнее — передавать регион из профиля пользователя как тег.

Для реальных геозон (уведомление при входе в зону) — CoreLocation на iOS с CLLocationManager.startMonitoring(for:) или Geofencing API на Android через GeofencingClient. Это работает через local notifications или silent push для обновления данных.

Сегменты по устройствам и платформам

// Отправка только iOS-пользователям с версией приложения >= 3.0
{
  "filters": [
    { "field": "device_type", "relation": "=", "value": "iOS" },
    { "operator": "AND" },
    { "field": "app_version", "relation": ">=", "value": "3.0" }
  ]
}

Это полезно при релизе feature, доступной только в новой версии — не отправлять deep link на экран, которого нет в старом приложении.

Типичные ошибки при настройке сегментации

Теги пишутся непоследовательно: одни разработчики пишут "true"/"false", другие "1"/"0", третьи просто добавляют или удаляют тег. В результате сегмент «пользователи с тегом notifications_enabled = true» не захватывает тех, у кого просто есть этот тег без значения.

Лучше зафиксировать схему тегов в отдельном enum:

object UserTags {
    const val SUBSCRIPTION = "subscription_tier"
    const val REGION = "region_iso"
    const val LAST_ORDER_DAYS = "last_order_days_ago"

    fun updateLastOrderDays(daysSince: Int) {
        OneSignal.User.addTag(LAST_ORDER_DAYS, daysSince.toString())
    }
}

Сроки

Проектирование схемы тегов и поведенческих событий, реализация SDK-интеграции на iOS + Android (или Flutter), настройка автоматических сегментов на стороне платформы — 5–8 рабочих дней. Сложные триггерные цепочки с серверной логикой (например, Braze Canvas или собственный cron-воркер) — от 2 недель.