Session в мобильной аналитике: что это, как считается и какие метрики

Автор: IT Sectr Опубликовано: 2026-04-21 Время чтения: 10 мин

Session в мобильной аналитике — это период непрерывного взаимодействия пользователя с приложением, ограниченный по времени. Метрика служит базой для расчёта удержания, вовлечённости и LTV. По данным Adjust, 2025, медианная длина сессии в приложениях составляет 4–7 минут, но сильно варьируется между категориями. Понимание сессионных метрик критично для оценки качества пользовательского опыта.

Главное

  • Сессия — непрерывный период взаимодействия пользователя с приложением без длительного перерыва.
  • Длительность сессии (Session Duration) — ключевая метрика вовлечённости, измеряется в минутах.
  • Интервал между сессиями (Session Interval) показывает, как часто пользователь возвращается в приложение.
  • iOS и Android по-разному определяют начало и конец сессии из-за различий в жизненном цикле приложения.
  • Анализ сессий позволяет сегментировать аудиторию по уровню вовлечённости и выявлять проблемные сценарии.

Что такое сессия в мобильной аналитике?

Сессия — это временной отрезок, в течение которого пользователь активно взаимодействует с приложением. Сессия начинается с момента открытия приложения (или возвращения из background) и заканчивается после периода бездействия или закрытия.

Разные аналитические платформы по-разному определяют границы сессии. Firebase Analytics считает сессию завершённой после 30 минут бездействия, AppsFlyer — после 60 минут, Amplitude — после 5 минут или по событию session_end. Единого стандарта не существует.

Почему сессии важны

Метрики на основе сессий — основа для расчёта удержания (Retention Rate), глубины вовлечённости (Stickiness Ratio) и распределения пользователей по частоте использования (Session Frequency). Без корректного определения сессии все производные метрики будут неверными.

По данным Mixpanel (2024), приложения, улучшившие Session Duration на 15%, демонстрируют рост LTV на 22% в течение квартала. Это прямая корреляция между временем в приложении и монетизацией.

Как измеряется сессия?

Измерение сессии базируется на событиях жизненного цикла приложения: open (session_start) и close (session_end). В перерыве между ними регистрируются все пользовательские действия.

kotlin
// Простейший трекер сессий для Android
class SessionTracker {

    private var sessionStart: Long = 0L
    private val SESSION_TIMEOUT = 30 * 60 * 1000L

    fun onAppOpened() {
        sessionStart = System.currentTimeMillis()
        Analytics.logEvent("session_start")
    }

    fun onAppClosed() {
        val duration = System.currentTimeMillis() - sessionStart
        Analytics.logEvent("session_end") {
            param("duration_ms", duration)
        }
    }

    fun isNewSession(lastActive: Long): Boolean {
        return (System.currentTimeMillis() - lastActive) > SESSION_TIMEOUT
    }
}

Код отслеживает начало и конец сессии через системные колбэки. Параметр SESSION_TIMEOUT (30 минут) определяет, когда возврат из фона считается новой сессией, а не продолжением предыдущей.

Timeout-правила разных платформ

ПлатформаTimeout сессииСпособ определения
Firebase Analytics30 минАвтоматически, без кастомизации
Amplitude5 мин (по умолчанию)Настраивается через SDK
AppsFlyer60 минФиксированный интервал
Mixpanel30 минНастраивается через опцию minimumSessionDuration
Adjust60 минАвтоматически, привязан к жизненному циклу

Выбор timeout влияет на метрики: короткий timeout (5 мин) создаёт больше сессий, длинный (60 мин) — объединяет взаимодействия. Главное — зафиксировать правило и не менять его при сравнении периодов.

Ключевые метрики сессий

Анализ сессий опирается на четыре базовые метрики. Каждая раскрывает определённый аспект поведения пользователя.

Session Duration

Длительность сессии — среднее время, которое пользователь проводит в приложении за один визит. Для новостных приложений норма — 2–4 минуты, для игр — 8–15 минут, для стриминговых сервисов — 20+ минут. Если Session Duration падает, это сигнал проблем с контентом или производительностью.

Session Interval

Интервал между сессиями — время между окончанием предыдущей сессии и началом следующей. Короткий интервал (минуты или часы) указывает на высокую вовлечённость. Длинный интервал (дни) — на низкий интерес или утилитарный сценарий использования, когда приложение нужно редко.

Sessions Per User

Число сессий на пользователя за период (день, неделю, месяц) — индикатор Stickiness. Формула: DAU / MAU (Day Active Users / Monthly Active Users). Значение выше 20% считается хорошим, выше 50% — отличным для большинства категорий приложений.

Session Depth

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

  • Session Duration — время в приложении за визит
  • Session Interval — частота возвратов
  • Sessions Per User — уровень вовлечённости
  • Session Depth — качество взаимодействия

Сессия в iOS и Android

Платформенные различия в жизненном цикле приложения напрямую влияют на определение сессии. iOS и Android по-разному обрабатывают background-состояния и уведомления.

Android — жизненный цикл Activity

На Android сессия начинается при вызове onStart() первого Activity и заканчивается при onStop() последнего Activity. Однако система может убить процесс в фоне, что ложно завершит сессию. Рекомендуется использовать Application.ActivityLifecycleCallbacks для надёжного отслеживания.

kotlin
class AnalyticsApp : Application() {

    private var activityReferences = 0

    override fun onCreate() {
        super.onCreate()
        registerActivityLifecycleCallbacks(object : ActivityLifecycleCallbacks {
            override fun onActivityStarted(act: Activity) {
                if (++activityReferences == 1) {
                    Analytics.trackSessionStart()
                }
            }
            override fun onActivityStopped(act: Activity) {
                if (--activityReferences == 0) {
                    Analytics.trackSessionEnd()
                }
            }
        })
    }
}

Счётчик activityReferences определяет, видит ли пользователь хотя бы один экран. Когда активность становится 0 — приложение ушло в фон, сессия завершена.

iOS — UIApplicationDelegate

На iOS сессия привязана к методам applicationDidBecomeActive и applicationDidEnterBackground. Уведомления о нажатии на push-уведомление могут искусственно поднимать счётчик сессий — это нужно учитывать при аналитике.

Swift пример:

swift
import UIKit

class AppDelegate: UIResponder, UIApplicationDelegate {

    func applicationDidBecomeActive(_ application: UIApplication) {
        Analytics.trackSessionStart()
    }

    func applicationDidEnterBackground(_ application: UIApplication) {
        Analytics.trackSessionEnd()
    }
}

Обратите внимание: на iOS переключение между приложениями (App Switcher) не завершает сессию — срабатывает только уход в глубокий фон или свайп закрытия.

Как анализировать сессии пользователей?

Анализ сессий выходит за рамки простого подсчёта. Сегментация и когортный анализ раскрывают паттерны вовлечённости, которые нельзя увидеть на агрегированных данных.

Когортный анализ сессий

Группируйте пользователей по неделе установки и смотрите среднее число сессий за первые 7 дней. Если у когорты последних установок Sessions Per User ниже, чем у старых, это сигнал ухудшения онбординга или качества трафика.

  • Day 0 — установка + первая сессия
  • Day 1–3 — период активации (ожидается 3+ сессии)
  • Day 7–30 — формирование привычки (стабильные 1–2 сессии в день)
  • Day 30+ — удержание лояльных пользователей

Аномалии сессий: как их выявлять

Аномалии в сессионных метриках — ранние индикаторы проблем. Внезапный рост Short Sessions (до 5 секунд) после релиза указывает на баг при запуске. Падение Session Duration на 30% за день — возможный сбой сервера или смена API. Настройте мониторинг с порогами: если средняя Session Duration упала более чем на 2 стандартных отклонения от 7-дневного скользящего среднего — алерт в систему.

Используйте сегментацию по версии приложения в сессионных отчётах. Версия 3.2.0 показывает Session Duration 4 минуты, версия 3.2.1 — 2 минуты. Причина — изменение в онбординге. Откат версии восстанавливает метрику. Без сегментации по версии вы бы увидели среднее падение, но не нашли бы причину.

Сегментация по частоте сессий

Power Users (5+ сессий в день) — ваша ключевая аудитория. Casual Users (1–2 сессии в неделю) — группа для реактивации. Dormant Users (0 сессий за 30 дней) — кандидаты на ретаргетинг или отписку от пушей.

Для каждого сегмента считайте отдельные метрики: Session Duration для Power Users покажет глубину использования, а для Casual — барьеры входа. По данным Amplitude (2024), приложения, персонализирующие контент под сегмент сессий, увеличивают Session Duration на 18% в среднем за месяц.

Использование сессий в Retention-отчётах

Retention считается через сессии: пользователь удержан на Day N, если у него была хотя бы одна сессия. Однако разные продукты требуют разного определения. Для социальных сетей сессия может быть 1 секунда (просто открыл проверить уведомления), для стримингового сервиса — 15 минут.

Используйте Uninstall-сессии как индикатор качества: если после обновления выросло число коротких сессий (менее 10 секунд), пользователи не находят нужный функционал. Это ранний сигнал UX-проблемы до роста деинсталлов.

Сессионная атрибуция трафика

Свяжите сессии с источником трафика: пользователи из платных каналов должны иметь больше сессий и большую Session Duration. Если органический трафик показывает Session Duration на 40% выше платного, проблема в качестве таргетинга. Сессионная атрибуция помогает оптимизировать бюджет на привлечение.

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

Сколько должна длиться средняя сессия в мобильном приложении?

Средняя длительность сессии зависит от категории: игры — 8–15 минут, соцсети — 5–10 минут, утилиты — 1–3 минуты. Важнее тренд: если Session Duration падает на 20% за месяц, нужен аудит UX.

Почему сессия не заканчивается при сворачивании приложения?

Многие аналитические SDK не фиксируют end-событие при сворачивании — они ждут timeout. Если пользователь свернул приложение на 1 минуту и вернулся, это считается одной сессией. Только после timeout (30–60 мин) начинается новая сессия.

Как сессии связаны с удержанием?

Retention пользователя на Day N рассчитывается как доля установивших, у кого была хотя бы одна сессия в этот день. Если сессии не отслеживаются корректно, удержание будет систематически занижено или завышено.

Влияет ли работа в фоне на подсчёт сессий?

Да, background-активность (плейбек музыки, навигация, синхронизация) может удерживать приложение в активном состоянии. Лучше отделять foreground-сессии (пользователь видит экран) от processor-сессий (работа в фоне без UI).

Какой timeout сессии выбрать для подписочного приложения?

Для подписочных сервисов (стриминг, фитнес, обучение) рекомендуется timeout 5–10 минут. Пользователи часто возвращаются после короткого перерыва — и каждая пауза должна считаться новой сессией, чтобы не искажать Session Duration.

Итоги

  • Сессия — базовый элемент мобильной аналитики, определяющий период взаимодействия пользователя с приложением.
  • Timeout сессии варьируется от 5 до 60 минут в зависимости от платформы и настроек SDK.
  • Session Duration — метрика вовлечённости, норма зависит от категории приложения.
  • Session Interval показывает частоту возвратов и помогает выявлять утилитарные сценарии.
  • iOS и Android требуют разного подхода к отслеживанию из-за отличий в жизненном цикле.
  • Когортный анализ сессий выявляет ухудшение онбординга или качества трафика.
  • Сегментация по частоте сессий позволяет персонализировать контент и повышать вовлечённость.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

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