Session v mobilní analytice je období nepřetržité interakce uživatele s aplikací, časově omezené. Metrika slouží jako základ pro výpočet retence, zapojení a LTV. Podle údajů Adjust, 2025 je medián délky relace v aplikacích 4–7 minut, ale výrazně se liší mezi kategoriemi. Porozumění metrikám relací je klíčové pro hodnocení kvality uživatelského zážitku.
Hlavní body
Relace je časový úsek, během kterého uživatel aktivně interaguje s aplikací. Relace začíná okamžikem otevření aplikace (nebo návratu z pozadí) a končí po období nečinnosti nebo zavření.
Různé analytické platformy definují hranice relace odlišně. Firebase Analytics považuje relaci za ukončenou po 30 minutách nečinnosti, AppsFlyer — po 60 minutách, Amplitude — po 5 minutách nebo událostí session_end. Neexistuje jednotný standard.
Metriky založené na relacích tvoří základ pro výpočet retence (Retention Rate), hloubky zapojení (Stickiness Ratio) a rozdělení uživatelů podle frekvence používání (Session Frequency). Bez správného definování relace budou všechny odvozené metriky nesprávné.
Podle údajů Mixpanel (2024) vykazují aplikace, které zlepšily Session Duration o 15%, růst LTV o 22% během čtvrtletí. To je přímá korelace mezi časem v aplikaci a monetizací.
Měření relace je založeno na událostech životního cyklu aplikace: open (session_start) a close (session_end). Mezi nimi jsou zaznamenávány všechny akce uživatele.
// Nejjednodušší sledovač relací pro 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
}
}
Kód sleduje začátek a konec relace prostřednictvím systémových callbacků. Parametr SESSION_TIMEOUT (30 minut) určuje, kdy je návrat z pozadí považován za novou relaci, nikoli za pokračování předchozí.
| Platforma | Timeout relace | Způsob určení |
|---|---|---|
| Firebase Analytics | 30 min | Automaticky, bez přizpůsobení |
| Amplitude | 5 min (výchozí) | Nastavitelné přes SDK |
| AppsFlyer | 60 min | Pevný interval |
| Mixpanel | 30 min | Nastavitelné přes volbu minimumSessionDuration |
| Adjust | 60 min | Automaticky, vázáno na životní cyklus |
Výběr timeoutu ovlivňuje metriky: krátký timeout (5 min) vytváří více relací, dlouhý timeout (60 min) — spojuje interakce. Nejdůležitější — stanovit pravidlo a neměnit jej při porovnávání období.
Analýza relací se opírá o čtyři základní metriky. Každá odhaluje určitý aspekt chování uživatele.
Délka relace — průměrný čas, který uživatel stráví v aplikaci během jedné návštěvy. Pro zpravodajské aplikace je norma 2–4 minuty, pro hry — 8–15 minut, pro streamovací služby — 20+ minut. Pokud Session Duration klesá, je to signál problémů s obsahem nebo výkonem.
Interval mezi relacemi — čas mezi koncem předchozí relace a začátkem následující. Krátký interval (minuty nebo hodiny) ukazuje na vysoké zapojení. Dlouhý interval (dny) — na nízký zájem nebo utilitární scénář, kdy je aplikace potřeba zřídka.
Počet relací na uživatele za období (den, týden, měsíc) — ukazatel Stickiness. Vzorec: DAU / MAU (Day Active Users / Monthly Active Users). Hodnota nad 20% je považována za dobrou, nad 50% — za vynikající pro většinu kategorií aplikací.
Hloubka relace — počet obrazovek nebo akcí během jedné relace. Ukazuje, jak hluboko se uživatel noří do funkcionality aplikace. Nízká hloubka při vysoké délce naznačuje problémy s navigací.
Platformní rozdíly v životním cyklu aplikace přímo ovlivňují definici relace. iOS a Android zpracovávají stavy pozadí a oznámení odlišně.
Na Androidu relace začíná voláním onStart() prvního Activity a končí při onStop() posledního Activity. Systém však může zabít proces na pozadí, což falešně ukončí relaci. Doporučuje se používat Application.ActivityLifecycleCallbacks pro spolehlivé sledování.
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()
}
}
})
}
}
Počítadlo activityReferences určuje, zda uživatel vidí alespoň jednu obrazovku. Když se aktivita stane 0 — aplikace přešla na pozadí, relace skončila.
Na iOS je relace vázána na metody applicationDidBecomeActive a applicationDidEnterBackground. Oznámení o kliknutí na push notifikaci mohou uměle zvyšovat počítadlo relací — to je třeba zohlednit v analytice.
Příklad v Swift:
import UIKit
class AppDelegate: UIResponder, UIApplicationDelegate {
func applicationDidBecomeActive(_ application: UIApplication) {
Analytics.trackSessionStart()
}
func applicationDidEnterBackground(_ application: UIApplication) {
Analytics.trackSessionEnd()
}
}
Upozornění: na iOS přepínání mezi aplikacemi (App Switcher) neukončuje relaci — pouze přechod do hlubokého pozadí nebo přejetí pro zavření.
Analýza relací přesahuje prosté počítání. Segmentace a kohortová analýza odhalují vzorce zapojení, které nejsou vidět v agregovaných datech.
Seskupujte uživatele podle týdne instalace a sledujte průměrný počet relací v prvních 7 dnech. Pokud je v kohortě nedávných instalací Sessions Per User nižší než u starších, je to signál zhoršení onboardingu nebo kvality provozu.
Anomálie v metrikách relací jsou časnými indikátory problémů. Náhlý nárůst krátkých relací (do 5 sekund) po vydání ukazuje na chybu při spuštění. Pokles Session Duration o 30% za den — možný výpadek serveru nebo změna API. Nastavte monitorování s prahy: pokud průměrná Session Duration klesla o více než 2 standardní odchylky od 7denního klouzavého průměru — alert v systému.
Používejte segmentaci podle verze aplikace v reportech relací. Verze 3.2.0 ukazuje Session Duration 4 minuty, verze 3.2.1 — 2 minuty. Příčina — změna v onboardingu. Vrácení verze obnoví metriku. Bez segmentace podle verze byste viděli průměrný pokles, ale nenašli byste příčinu.
Power Users (5+ relací denně) — vaše klíčové publikum. Casual Users (1–2 relace týdně) — skupina pro reaktivaci. Dormant Users (0 relací za 30 dní) — kandidáti na retargeting nebo odhlášení z push notifikací.
Pro každý segment počítejte samostatné metriky: Session Duration pro Power Users ukáže hloubku používání, pro Casual — bariéry vstupu. Podle údajů Amplitude (2024) aplikace, které personalizují obsah podle segmentu relací, zvyšují Session Duration v průměru o 18% měsíčně.
Retence se počítá prostřednictvím relací: uživatel je udržen v den N, pokud měl alespoň jednu relaci. Různé produkty však vyžadují různé definice. Pro sociální sítě může být relace 1 sekunda (jen otevřel pro kontrolu notifikací), pro streamovací službu — 15 minut.
Používejte relace odinstalace jako indikátor kvality: pokud po aktualizaci vzrostl počet krátkých relací (méně než 10 sekund), uživatelé nenacházejí potřebnou funkcionalitu. To je časný signál UX problémů před růstem odinstalací.
Propojte relace se zdrojem provozu: uživatelé z placených kanálů by měli mít více relací a delší Session Duration. Pokud organický provoz vykazuje Session Duration o 40% vyšší než placený, problém je v kvalitě cílení. Atribuce relací pomáhá optimalizovat rozpočet na akvizici.
Často kladené otázky
Průměrná délka relace závisí na kategorii: hry — 8–15 minut, sociální sítě — 5–10 minut, utility — 1–3 minuty. Důležitější je trend: pokud Session Duration klesne o 20% za měsíc, je potřeba UX audit.
Mnoho analytických SDK nezaznamenává událost konce při minimalizaci — čekají na timeout. Pokud uživatel minimalizoval aplikaci na 1 minutu a vrátil se, počítá se to jako jedna relace. Teprve po timeoutu (30–60 min) začíná nová relace.
Retence uživatele v den N se vypočítá jako podíl těch, kteří nainstalovali a měli alespoň jednu relaci ten den. Pokud relace nejsou správně sledovány, retence bude systematicky podhodnocena nebo nadhodnocena.
Ano, aktivita na pozadí (přehrávání hudby, navigace, synchronizace) může udržovat aplikaci v aktivním stavu. Je lepší oddělovat relace v popředí (uživatel vidí obrazovku) od procesorových relací (práce na pozadí bez rozhraní).
Pro předplatné služby (streaming, fitness, vzdělávání) se doporučuje timeout 5–10 minut. Uživatelé se často vracejí po krátké přestávce — a každá pauza by měla být počítána jako nová relace, aby nedocházelo ke zkreslování Session Duration.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také