Сесія в мобільній аналітиці — це період неперервної взаємодії користувача з додатком, обмежений часом. Ця метрика служить основою для розрахунку утримання, залученості та LTV. За даними Adjust, 2025, медіанна довжина сесії в додатках становить 4–7 хвилин, але сильно варіюється між категоріями. Розуміння сесійних метрик критично важливе для оцінки якості користувацького досвіду.
Головне
Сесія — це період часу, протягом якого користувач активно взаємодіє з додатком. Сесія починається з моменту відкриття додатка (або повернення з фону) і закінчується після періоду бездіяльності або закриття.
Різні аналітичні платформи по-різному визначають межі сесії. Firebase Analytics вважає сесію завершеною після 30 хвилин бездіяльності, AppsFlyer — після 60 хвилин, Amplitude — після 5 хвилин або події session_end. Єдиного стандарту не існує.
Метрики на основі сесій — основа для розрахунку утримання (Retention Rate), глибини залученості (Stickiness Ratio) та розподілу користувачів за частотою використання (Session Frequency). Без коректного визначення сесії всі похідні метрики будуть неправильними.
За даними Mixpanel (2024), додатки, які покращили Session Duration на 15%, показали зростання LTV на 22% протягом кварталу. Це пряма кореляція між часом в додатку та монетизацією.
Вимірювання сесії базується на подіях життєвого циклу додатка: відкриття (session_start) та закриття (session_end). Пміж ними реєструються всі дії користувача.
// Базовий трекер сесій для 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 хвилин) визначає, коли повернення з фону вважається новою сесією, а не продовженням попередньої.
| Платформа | Таймаут сесії | Спосіб визначення |
|---|---|---|
| Firebase Analytics | 30 хв | Автоматично, без кастомізації |
| Amplitude | 5 хв (типово) | Налаштовується через SDK |
| AppsFlyer | 60 хв | Фіксований інтервал |
| Mixpanel | 30 хв | Налаштовується через опцію minimumSessionDuration |
| Adjust | 60 хв | Автоматично, прив’язано до життєвого циклу |
Вибір таймауту впливає на метрики: короткий таймаут (5 хв) створює більше сесій, довгий (60 хв) об’єднує взаємодії. Головне — зафіксувати правило і не змінювати його при порівнянні періодів.
Аналіз сесій спирається на чотири базові метрики. Кожна розкриває певний аспект поведінки користувача.
Тривалість сесії — це середній час, який користувач проводить в додатку за один візит. Для новинних додатків норма становить 2–4 хвилини, для ігор — 8–15 хвилин, для стрімінгових сервісів — 20+ хвилин. Якщо Session Duration падає, це сигнал проблем з контентом або продуктивністю.
Інтервал між сесіями — час між закінченням попередньої сесії та початком наступної. Короткий інтервал (хвилини або години) вказує на високу залученість. Довгий інтервал (дні) вказує на низький інтерес або утилітарний сценарій використання, коли додаток потрібний рідко.
Кількість сесій на користувача за період (день, тиждень, місяць) — індикатор липкості (Stickiness). Формула: DAU / MAU (денні активні користувачі / місячні активні користувачі). Значення вище 20% вважається хорошим, вище 50% — відмінним для більшості категорій додатків.
Глибина сесії — кількість екранів або дій за одну сесію. Показує, наскільки глибоко користувач занурюється в функціонал додатка. Низька глибина при високій тривалості вказує на проблеми з навігацією.
Платформені відмінності в життєвому циклі додатка безпосередньо впливають на визначення сесії. iOS та Android по-різному обробляють фонові стани та сповіщення.
На Android сесія починається при виклику onStart() першого Activity і закінчується при onStop() останнього Activity. Однак система може знищити процес в фоні, що помилково завершує сесію. Рекомендується використовувати Application.ActivityLifecycleCallbacks для надійного відстеження.
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 сесія прив’язана до методів applicationDidBecomeActive та applicationDidEnterBackground. Натискання на push-повідомлення може штучно збільшити кількість сесій — це необхідно враховувати в аналітиці.
Приклад на 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 нижчий, ніж у старих, це сигнал погіршення онбордингу або якості трафіку.
Аномалії в сесійних метриках — ранні індикатори проблем. Раптове зростання кількості коротких сесій (до 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 днів) — кандидати для ретаргетингу або відписки від push-повідомлень.
Для кожного сегменту рахуйте окремі метрики: Session Duration для Power Users показує глибину використання, а для Casual Users — бар’єри входу. За даними Amplitude (2024), додатки, які персоналізують контент під сегмент сесій, збільшують Session Duration в середньому на 18% за місяць.
Утримання розраховується через сесії: користувач утриманий на День N, якщо в нього була хоча б одна сесія. Однак різні продукти потребують різних визначень. Для соціальних мереж сесія може тривати 1 секунду, а для стрімінгового сервісу — 15 хвилин.
Використовуйте сесії деінсталяції як індикатор якості: якщо після оновлення кількість коротких сесій (менше 10 секунд) зросла, користувачі не знаходять потрібний функціонал. Це ранній сигнал UX-проблеми до зростання деінсталяцій.
Пов’яжіть сесії з джерелами трафіку: користувачі з платних каналів повинні мати більше сесій та більшу Session Duration. Якщо органічний трафік показує Session Duration на 40% вищу за платний, проблема в якості таргетингу. Сесійна атрибуція допомагає оптимізувати бюджет на залучення.
Часто задавані питання
Середня тривалість сесії залежить від категорії: ігри — 8–15 хвилин, соцмережі — 5–10 хвилин, утиліти — 1–3 хвилини. Важливіший тренд: якщо Session Duration падає на 20% за місяць, потрібен аудит UX.
Багато аналітичних SDK не фіксують подію завершення при згортанні — вони чекають таймаут. Якщо користувач згорнув додаток на 1 хвилину і повернувся, це вважається однією сесією. Тільки після таймауту (30–60 хв) починається нова сесія.
Утримання користувача на День N розраховується як частка тих, хто встановив і мав хоча б одну сесію цього дня. Якщо сесії не відстежуються коректно, утримання буде систематично занижено або завищено.
Так, фонова активність (програвання музики, навігація, синхронізація) може утримувати додаток в активному стані. Краще відокремлювати форграунд-сесії (користувач бачить екран) від процесорних сесій (фонова робота без інтерфейсу).
Для підписних сервісів (стрімінг, фітнес, освіта) рекомендується таймаут 5–10 хвилин. Користувачі часто повертаються після короткої перерви — і кожна пауза має вважатися новою сесією, щоб не спотворювати Session Duration.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також