Session у мобилној аналитици је период непрекидне интеракције корисника са апликацијом, ограничен временом. Метрика служи као основа за израчунавање задржавања, ангажовања и 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% у току квартала. Ово је директна корелација између времена у апликацији и монетизације.
Мерење сесије заснива се на догађајима животног циклуса апликације: open (session_start) и close (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 (Day Active Users / Monthly Active Users). Вредност изнад 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. Обавештења о клику на пусх обавештење могу вештачки подизати бројач сесија — то треба узети у обзир у аналитици.
Пример у 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 дана) — кандидати за ретаргетинг или одјаву са пусх обавештења.
За сваки сегмент рачунајте засебне метрике: Session Duration за Power Users показаће дубину коришћења, а за Casual — баријере уласка. Према подацима Amplitude (2024), апликације које персонализују садржај према сегменту сесија повећавају Session Duration у просеку за 18% месечно.
Задржавање се рачуна преко сесија: корисник је задржан на Day N ако је имао бар једну сесију. Међутим, различити производи захтевају различите дефиниције. За друштвене мреже сесија може бити 1 секунд (само отворио да провери обавештења), за стриминг сервис — 15 минута.
Користите сесије деинсталације као индикатор квалитета: ако је након ажурирања порастао број кратких сесија (мање од 10 секунди), корисници не проналазе потребну функционалност. Ово је рани сигнал UX проблема пре раста деинсталација.
Повежите сесије са извором саобраћаја: корисници из плаћених канала треба да имају више сесија и већу Session Duration. Ако органски саобраћај показује Session Duration 40% виши од плаћеног, проблем је у квалитету циљања. Сесијска атрибуција помаже у оптимизацији буџета за привлачење.
Често постављана питања
Просечно трајање сесије зависи од категорије: игре — 8–15 минута, друштвене мреже — 5–10 минута, алати — 1–3 минута. Важнији је тренд: ако Session Duration падне за 20% за месец дана, потребан је UX аудит.
Многи аналитички SDK-ови не бележе догађај завршетка при минимизацији — чекају тајмаут. Ако је корисник минимизовао апликацију на 1 минут и вратио се, то се рачуна као једна сесија. Тек након тајмаута (30–60 мин) почиње нова сесија.
Задржавање корисника на Day N рачуна се као удео оних који су инсталирали и имали бар једну сесију тог дана. Ако се сесије не прате исправно, задржавање ће бити систематски потцењено или прецењено.
Да, позадинска активност (репродукција музике, навигација, синхронизација) може задржати апликацију у активном стању. Боље је одвајати сесије у првом плану (корисник види екран) од процесорских сесија (рад у позадини без интерфејса).
За претплатничке услуге (стриминг, фитнес, образовање) препоручује се тајмаут од 5–10 минута. Корисници се често враћају након кратке паузе — и свака пауза треба да се рачуна као нова сесија како не би искривила Session Duration.
Закључци
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође