Screen View v mobilní analytice — co to je, jaké metriky a jak sledovat

Autor: IT Sectr Publikováno: 2026-04-21 Doba čtení: 9 min

Screen View — událost mobilní analytiky, která zaznamenává otevření každé obrazovky v aplikaci. Je to obdoba page_view pro web, přizpůsobená navigačnímu modelu mobilních rozhraní. Podle údajů Amplitude, 2024 je Screen View nejčastější událostí v analytice aplikací, tvoří až 40 % všech odeslaných událostí. Správná implementace screen tracking je základem pro analýzu uživatelských cest a trychtýřů.

Hlavní body

  • Screen View — událost zaznamenávající otevření obrazovky v mobilní aplikaci s uvedením jejího názvu.
  • Screen View vs Page View: mobilní aplikace nepoužívá URL — identifikace probíhá podle názvu Activity, ViewController nebo trasy.
  • Automatické sledování obrazovek je realizováno pomocí NavigationObserver na iOS a NavigationController na Androidu.
  • Screen Name — klíčový parametr události, musí být srozumitelný analytikovi bez znalosti kódu.
  • Screen Flow — posloupnost obrazovek během relace, základ pro vytváření trychtýřů a analýzu odchodů.

Co je Screen View?

Screen View — událost analytiky, která se odesílá při otevření obrazovky mobilní aplikace. Událost obsahuje název obrazovky (screen_name), třídu (screen_class) a časové razítko. Na rozdíl od webové analytiky, kde je page_view vázán na URL, v mobilních aplikacích jsou obrazovky identifikovány podle názvu Activity, Fragment, ViewController nebo Custom View.

Struktura události Screen View

ParametrTypPříklad
screen_nameString„Product Details”
screen_classString„ProductDetailActivity”
previous_screenString„CatalogScreen”
timestampLong1719876543000
duration_secInt45

Parametr previous_screen je obzvláště důležitý: umožňuje rekonstrukci posloupnosti přechodů a vytvoření Screen Flow — mapy uživatelských cest v aplikaci.

Screen View vs Page View: klíčové rozdíly

Screen View a Page View řeší stejný úkol — zaznamenání zobrazení — ale v různých prostředích. Na webu URL jednoznačně identifikuje stránku a Page View je vázán na načtení dokumentu. V mobilních aplikacích je obrazovka stav UI, který nemusí nutně odpovídat samostatné adrese.

  • Page View je vázán na HTTP požadavek a URL — Screen View je vázán na událost životního cyklu Activity/ViewController
  • Page View se při návratu zpět nezdvojuje (používá cache) — Screen View se znovu odesílá při každém otevření obrazovky
  • Page View je v průměru kratší — uživatel prohlíží webovou stránku rychleji než mobilní obrazovku s interaktivními prvky

Dalším rozdílem je hloubka kontextu. Screen View v mobilní aplikaci zahrnuje parametry stavu: zda je uživatel přihlášen, jaká data jsou načtena, zda je obrazovka otevřena v režimu úprav. Page View na webu jen zřídka nese takový kontext — zaznamenává pouze skutečnost načtení URL. To činí Screen View informativnějším pro produktovou analytiku, protože každou událost lze segmentovat podle stavu.

Typické chyby při práci s Screen View

První chyba — odesílání screen_view při každé změně stavu uvnitř obrazovky (přepínání karet, otevření pop-upu). Screen View by měl zaznamenávat pouze úplný přechod na novou obrazovku, nikoli mikrointerakce.

Druhá chyba — použití technického názvu třídy místo čitelného názvu. „ProductDetailActivityKt” je pro analytika nepoužitelné — použijte „Product Details” v screen_name.

Třetí chyba — odesílání screen_view bez odpovídajících polí. Prázdný screen_name vytváří sadu neužitečných záznamů, které nelze seskupit. Vždy odesílejte alespoň screen_name a screen_class, i na testovacích obrazovkách.

Jak sledovat Screen View?

Implementace sledování Screen View závisí na architektuře navigace. Podívejme se na automatický a ruční přístup na příkladu Jetpack Compose a SwiftUI.

Android: automatické sledování v Jetpack Compose

Použijte LifecycleEventObserver na úrovni NavigationComponent. Pokaždé, když uživatel přejde na novou trasu, spustí se událost screen_view.

kotlin
class ScreenTrackingObserver(
    private val analytics: AnalyticsProvider
) : LifecycleEventObserver {

    override fun onStateChanged(
        source: LifecycleOwner,
        event: Lifecycle.Event
    ) {
        if (event == Lifecycle.Event.ON_RESUME) {
            val route = source.getRouteFromLifecycleOwner()
            analytics.logScreenView(
                screenName = route.screenName,
                screenClass = source.getLocalClassName()
            )
        }
    }
}

// Připojení v NavHost
fun NavBackStackEntry.trackScreenView(analytics: AnalyticsProvider) {
    lifecycle.addObserver(ScreenTrackingObserver(analytics))
}

Tento přístup zaručuje, že screen_view je odeslán při každém návratu obrazovky do popředí, včetně návratu z pozadí. Lifecycle.Event.ON_RESUME je správný okamžik pro sledování, nikoli ON_START nebo ON_CREATE.

iOS: automatické sledování ve SwiftUI

Ve SwiftUI se používá modifikátor onAppear integrovaný v každém View. Pro automatizaci se vytváří ViewModifier.

swift
struct ScreenTrackingModifier: ViewModifier {

    let screenName: String

    func body(content: Content) -> some View {
        content.onAppear {
            Analytics.shared().logScreenView(
                name: screenName,
                className: "\(Self.self)"
            )
        }
    }
}

extension View {
    func trackScreen(_ name: String) -> some View {
        modifier(ScreenTrackingModifier(screenName: name))
    }
}

// Použití:
ProductDetailView()
    .trackScreen("Product Details")

Modifikátor trackScreen se přidá k libovolnému View jedním řádkem. Je to čisté a škálovatelné řešení pro SwiftUI projekty.

Screen View ve vícemodulových projektech

V projektech s modulární architekturou může každý modul používat vlastní pojmenování obrazovek, což vede k duplicitě screen_name. Centralizovaný enum ScreenName řeší problém — všechny obrazovky jsou pojmenovány podle jednotného standardu na jednom místě. Přidání nové obrazovky vyžaduje pouze novou konstantu v enum, nikoli prohledávání celého kódu.

Použijte sealed class pro popis screen_name se seskupením podle funkcí: ProfileScreen.CHANGE_PASSWORD, OrdersScreen.ORDER_HISTORY, CatalogScreen.SEARCH_RESULTS. To zjednodušuje filtrování v analytických reportech.

Screen Flow: analýza přechodů mezi obrazovkami

Screen Flow (nebo Path Analysis) — vizualizace posloupnosti obrazovek, kterými uživatel prochází. Je to hlavní nástroj pro identifikaci úzkých míst v navigaci.

Vytvoření Screen Flow

Každý Screen View s parametrem previous_screen vytváří hranu grafu: CatalogScreen → ProductDetails → CartScreen. Agregací všech přechodů se vytvoří mapa cest. Tříkrokový trychtýř založený na Screen Flow ukazuje, kde uživatelé odcházejí.

  • Krok 1: HomeScreen → CatalogScreen (95 % projde)
  • Krok 2: CatalogScreen → ProductDetails (65 % projde — 35 % odejde)
  • Krok 3: ProductDetails → AddToCart (30 % projde — ztrácíme dalších 35 %)

Podle údajů Mixpanel (2024) analýza Screen Flow odhaluje až 40 % problémů s UX, které nejsou viditelné při analýze jednotlivých událostí. Například častý přechod ProductDetails → HomeScreen bez nákupu ukazuje na problém s cenou nebo popisem produktu.

Drop-off analýza

Drop-off — bod, ve kterém uživatel opouští scénář. Pokud po načítací obrazovce 60 % uživatelů odejde, problém je v rychlosti načítání nebo animaci. Pokud po Paywall — v ceně nebo hodnotě předplatného.

Screen Flow ve Firebase a BigQuery

Firebase neposkytuje hotový Screen Flow report, ale data screen_view jsou dostupná v BigQuery. Vytvořte dotaz, který seskupuje přechody podle dvojice (previous_screen, screen_name) a počítá frekvenci. Výsledkem je matice přechodů, kterou lze vizualizovat v Looker Studio jako Sankey diagram.

Doplňte Screen Flow segmentací: zvlášť pro nové uživatele (prvních 7 dní) a pro vracející se. Noví uživatelé častěji uvíznou na onboardingu, zkušení se rychleji dostanou k cílovým akcím. Porovnání dvou toků odhaluje úzká místa adaptace.

Nástroje pro Screen View analytiku

Výběr nástroje pro Screen View závisí na rozpočtu, technologickém stacku a požadované podrobnosti. Podívejme se na tři populární řešení.

Firebase Analytics (zdarma)

Firebase automaticky sleduje obrazovky pomocí parametru screen_view v každé události. Po integraci SDK nevyžaduje další kód. Omezení: screen_name je generován z Activity/ViewController, což ne vždy poskytuje čitelné názvy.

Amplitude (profesionální)

Amplitude nabízí vestavěný Pathfinder — vizuální tvůrce Screen Flow. Podporuje user property a segmentaci podle kohort. Umožňuje přejmenovávání obrazovek na straně serveru bez změn v kódu aplikace.

Mixpanel (střední segment)

Mixpanel poskytuje Flows report v reálném čase. Dokáže zobrazit nejen lineární přechody, ale také větvení — které obrazovky jsou navštěvovány po konkrétní obrazovce. Integruje se s iOS, Android, Flutter a React Native SDK.

Vliv Screen View na výkon

Každá událost screen_view je síťové odesílání dat. Pokud aplikace odesílá screen_view při každém přepnutí karty (20+ za minutu), vytváří to dodatečnou zátěž. Optimalizace: bufferujte screen_view a odesílejte dávkově každých 5 sekund. Firebase automaticky agreguje události, ale vlastní SDK mohou odesílat každé volání okamžitě.

Měřte režii sledování: přidejte časové razítko do každého screen_view a vypočítejte zpoždění od onResume k odeslání. Pokud zpoždění přesahuje 100 ms, sledování ovlivňuje UX. Použijte vlákno na pozadí pro odesílání, aby nedošlo k blokování UI vlákna. Na zařízeních nižší třídy je rozdíl znatelný.

Často kladené dotazy

Je nutné odesílat Screen View pro každý fragment v TabLayout?

Ano, každý fragment s vlastním obsahem je samostatná obrazovka. TabLayout se třemi kartami by měl při přepínání odesílat tři různé screen_view. Výjimka: pop-up karty bez samostatné navigace.

Čím se screen_name liší od screen_class?

screen_class — technický název třídy (např. „MainActivity”), používaný vývojáři. screen_name — čitelný název („Hlavní obrazovka”), používaný v reportech. SDK často vyplňuje screen_class automaticky, screen_name je třeba nastavit ručně.

Jak zabránit duplikování Screen View při otočení obrazovky?

Při otočení zařízení znovu vytváří Activity, což způsobuje opakovaný screen_view. Použijte kontrolu stavu: odesílejte událost pouze při změně obrazovky, ne při každém ON_RESUME. Firebase a Amplitude automaticky deduplikují screen_view.

Kolik Screen View událostí je normálních pro jednoho uživatele denně?

Pro průměrnou aplikaci — 10–30 screen_view na uživatele denně. Zpravodajské aplikace: 15–20. Hry: 20–40. Nástroje: 5–10. Pokud počet přesahuje 100, zkontrolujte, zda se obrazovky odesílají při každém klepnutí, nikoli při úplném přechodu.

Lze Screen View použít pro analýzu A/B testů?

Ano, screen_view je jedním z indikátorů v A/B testech. Porovnejte počet zobrazení obrazovky mezi variantami A a B. Pokud varianta B obrazovky „Checkout” dostává o 15 % méně screen_view, je to signál problému v kartě produktu.

Shrnutí

  • Screen View — základní událost analytiky zaznamenávající otevření obrazovky v mobilní aplikaci.
  • Screen View vs Page View: mobilní obrazovka je identifikována podle názvu Activity/ViewController, nikoli URL.
  • Automatické sledování pomocí LifecycleObserver (Android) nebo ViewModifier (iOS) je průmyslovým standardem.
  • Screen Flow — graf přechodů mezi obrazovkami, odhaluje až 40 % problémů s UX.
  • Drop-off analýza založená na screen_view ukazuje přesná místa ztráty uživatelů v trychtýři.
  • Firebase, Amplitude a Mixpanel jsou hlavními nástroji pro Screen View analytiku.
  • Správný název obrazovky (screen_name) je povinnou podmínkou pro čitelné reporty.

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í.

Prodiskutovat projekt

Přečtěte si také