Реализация Retention-анализа по когортам для мобильного приложения

Зачем нужен когортный анализ? В нашей практике это одна из частых проблем: маркетинг показывает рост установок, а MAU стоит на месте. Без когортного retention-анализа продукт не видит, когда именно пользователи уходят — на второй день, через неделю или после первой транзакции. Метрики Day 1, Day

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Реализация Retention-анализа по когортам для мобильного приложения
Сложный
~3-5 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Зачем нужен когортный анализ?

В нашей практике это одна из частых проблем: маркетинг показывает рост установок, а MAU стоит на месте. Без когортного retention-анализа продукт не видит, когда именно пользователи уходят — на второй день, через неделю или после первой транзакции. Метрики Day 1, Day 7, Day 30 Retention — это не просто цифры для дашборда, а диагностический инструмент, указывающий на конкретную точку отвала. Наш опыт 10+ лет в мобильной аналитике и 50+ проектов подтверждают: правильно настроенный когортный анализ экономит до 30% маркетингового бюджета и ускоряет продуктовые решения.

Как работает когортный анализ?

Когорта — группа пользователей, объединённых датой первого события. Чаще всего это дата установки (install_date), реже — дата первой покупки или регистрации.

Без когортной разбивки retention считается по формуле: активные сегодня / активные за период. Это усреднение смешивает новых и старых. Приложение может показывать стабильный 30-дневный retention 20%, хотя последние когорты деградируют до 8% — старые пользователи тянут среднее вверх.

Когортный анализ считает для каждой когорты отдельно:

Day N Retention = unique_users_active_on_day_N / cohort_size 

Отметим: где Day 0 — день установки, Day 1 — следующий календарный день (не 24 часа). Разница в интерпретации дня важна: Firebase по умолчанию считает по календарным дням в timezone пользователя (Firebase Documentation).

Как настроить когортный анализ через BigQuery?

Пошаговая инструкция:

  1. Подключите экспорт данных из Firebase в BigQuery. Это бесплатный Spark-план Firebase поддерживает с лимитами.
  2. Настройте логирование meaningful_action на клиенте. Ниже примеры для iOS и Android.
  3. Напишите SQL-запрос, объединяющий first_open и session_start по user_pseudo_id, с учётом timezone.
  4. Постройте тепловую карту в Looker Studio, Metabase или Redash.

Что трекать на клиенте

Минимальный набор для retention-анализа:

  • app_open — факт запуска (Firebase Analytics логирует автоматически как session_start)
  • user_engagement — лучше определить своё meaningful_action — действие, которое означает «пользователь нашёл ценность»
  • install — атрибуция установки, нужна для правильного определения cohort_date

На iOS через Firebase SDK:

// AppDelegate или SceneDelegate Analytics.logEvent("meaningful_action", parameters: [ "action_type": "first_purchase" as NSObject, "item_category": product.category as NSObject ]) 

На Android (Kotlin):

firebaseAnalytics.logEvent("meaningful_action") { param("action_type", "first_purchase") param("item_category", product.category) } 

Ключевая ошибка — логировать app_open вместо meaningful_action. Тогда retention считается от факта запуска, а не от реального использования.

SQL-запрос для BigQuery

После подключения BigQuery события льются в таблицы вида events_YYYYMMDD. Запрос для когортной таблицы Day 0–7:

WITH installs AS ( SELECT user_pseudo_id, DATE(TIMESTAMP_MICROS(event_timestamp), "Europe/Moscow") AS cohort_date FROM `project.analytics_XXXXXXXXX.events_*` WHERE event_name = 'first_open' ), activity AS ( SELECT user_pseudo_id, DATE(TIMESTAMP_MICROS(event_timestamp), "Europe/Moscow") AS activity_date FROM `project.analytics_XXXXXXXXX.events_*` WHERE event_name = 'session_start' ) SELECT i.cohort_date, COUNT(DISTINCT i.user_pseudo_id) AS cohort_size, DATE_DIFF(a.activity_date, i.cohort_date, DAY) AS day_n, COUNT(DISTINCT a.user_pseudo_id) AS retained_users, ROUND(COUNT(DISTINCT a.user_pseudo_id) / COUNT(DISTINCT i.user_pseudo_id), 3) AS retention_rate FROM installs i LEFT JOIN activity a ON i.user_pseudo_id = a.user_pseudo_id AND a.activity_date BETWEEN i.cohort_date AND DATE_ADD(i.cohort_date, INTERVAL 30 DAY) GROUP BY 1, 3 ORDER BY 1, 3 

Этот запрос даёт таблицу: каждая строка — когорта + день + retention rate. Из неё строится тепловая карта.

Amplitude и Mixpanel как альтернатива

Для продуктов без BigQuery-экспертизы Amplitude — удобнее. Встроенный Retention Analysis строит когортные таблицы в несколько кликов. Но важно правильно настроить User ID. На iOS нужно передавать стабильный идентификатор до первого identify:

Amplitude.instance().setUserId(user.stableId) Amplitude.instance().logEvent("meaningful_action") 

Если userId не задан, Amplitude создаёт device-based identity — один пользователь на двух устройствах считается двумя разными. Retention занижается.

Сравнение инструментов

Инструмент Требуемая экспертиза Визуализация Гибкость запросов Цена
Firebase + BigQuery SQL Looker Studio, Metabase, Redash Высокая Бесплатно (до лимитов)
Amplitude Низкая Встроенные дашборды Средняя От $1,000/год
Mixpanel Средняя Встроенные дашборды Средняя От $25/мес

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

Смешение timezone

Если сервер логирует события в UTC, а Firebase считает Day N по локальному времени пользователя — когорты расползаются. Пользователь установил приложение в 23:50 по московскому времени, сервер записал это в UTC следующего дня. Когорта сдвигается на сутки.

Пересчёт cohort_date при переустановке

После удаления и повторной установки Firebase генерирует новый instance_id и новый first_open. Пользователь попадает в новую когорту. Если это не учесть, retention занижается — возвращающиеся пользователи выглядят как новые.

Маленькие когорты и статистический шум

Когорта из 15 пользователей даёт бессмысленные цифры: ±1 пользователь — это ±7% retention. Когортный анализ даёт надёжные данные при размере когорты от 200–300 пользователей.

Визуализация и продуктовые выводы

Стандартная тепловая карта выглядит так:

Когорта Размер Day 1 Day 3 Day 7 Day 14 Day 30
01-01 420 38% 22% 14% 9% 6%
01-08 380 41% 25% 16% 11% 7%
01-15 510 29% 18% 11% 7% 4%

Когорта от 15 января резко хуже — совпадает с релизом версии 2.3.0. Продукт видит это немедленно и откатывает или фиксит до того, как деградация распространится. По нашим оценкам, настройка когортного анализа окупается за 1–2 месяца за счёт снижения затрат на неэффективные каналы.

Что входит в работу

  • Аудит текущей схемы событий, проверка наличия first_open / meaningful_action
  • Настройка BigQuery-экспорта из Firebase или конфигурация Amplitude Retention
  • SQL-запросы для когортных таблиц с учётом timezone
  • Дашборд в Looker Studio / Metabase / Redash
  • Документация: словарь событий, описание cohort_date logic

Сроки и стоимость

Настройка с нуля: 3–5 дней (зависит от текущего состояния аналитики и наличия BigQuery). Если события уже настроены — 1–2 дня на запросы и дашборд. Стоимость рассчитывается индивидуально после анализа требований.

Готовы внедрить когортный анализ? Закажите консультацию — мы поможем настроить все этапы. Свяжитесь с нами, чтобы обсудить ваш проект.