TakéApp analytics, Analytika mobilních aplikací, In-app analyticsPokročilý

Definice

Mobilní analytika je měření chování uživatelů uvnitř mobilní aplikace pomocí událostí, které SDK odesílá ze zařízení na server ke zpracování a vyhodnocení. Sleduje instalace, spuštění, obrazovky, nákupy, pády a retenci. Na rozdíl od webové analytiky pracuje s offline frontou událostí, verzemi aplikace a povinným souhlasem se sledováním.

Kategorie: Mobilní vývojAktualizováno

Než se na to spolehnete: Zdroje: nejsem si jistý, zda projdou ověřením odkazy na developer.apple.com a eur-lex.europa.eu (doména europa.eu je povolena, apple.com v seznamu není, tak by mohl být zahozen). Detaily chování reklamních identifikátorů na Androidu a iOS se mění s verzemi systémů.

Co mobilní analytika měří

Mobilní analytika staví na proudu pojmenovaných událostí. SDK zabudované v aplikaci automaticky hlásí instalaci, první spuštění, otevření relace, aktualizaci verze a pád, vývojář k tomu přidává vlastní události jako add_to_cart, tutorial_complete nebo purchase. Každá událost nese parametry a identifikátor instalace, takže se z nich dá poskládat sekvence kroků jedné osoby napříč dny.

Nad událostmi pak stojí ukazatele, které řídí produkt: podíl uživatelů, kteří se vrátí druhý a sedmý den (retenční míra), délka relace, průchodnost onboardingem, tržby na uživatele a poměr pádů k relacím. Instalace samotná je nejméně zajímavé číslo, protože nevypovídá o ničem, co následuje.

Proč se měření v aplikaci chová jinak než na webu

Aplikace běží i bez sítě, takže SDK události ukládá do lokální fronty a odesílá je v dávkách. Následkem toho může událost dorazit na server s několikahodinovým až několikadenním zpožděním, což rozbíjí naivní denní reporty: čísla za včerejšek se ještě dva dny dopočítávají.

Druhý rozdíl je verzování. Uživatelé neaktualizují najednou, takže v datech současně žije pět verzí aplikace s odlišnou sadou událostí. Bez parametru s verzí a bez plánu, jak události přejmenovávat, se historie stane nečitelnou.

Třetí rozdíl je identita. Web pracuje s cookie, mobil s identifikátorem zařízení nebo instalace. Na iOS je přístup k reklamnímu identifikátoru podmíněn dotazem přes App Tracking Transparency, na Androidu má uživatel Advertising ID k dispozici resetovat či smazat. Atribuce instalace ke kampani proto stojí na agregovaných a zpožděných reportech, ne na spolehlivém spojení jednoho kliknutí s jednou instalací.

Typická architektura sběru

Nejjednodušší varianta je jedno SDK od poskytovatele analytiky, které si drží vlastní frontu i síťovou vrstvu. Jakmile ale roste počet nástrojů (produktová analytika, atribuce, marketing, crash reporting), vyplatí se posílat události přes vlastní vrstvu: aplikace volá jednu funkci track(), ta zapíše událost do interního skladu a server ji rozešle dál. Výhodou je jediné místo, kde se řeší schéma událostí, souhlas a anonymizace.

Serverová vs. klientská událost

Události jako nákup, obnova předplatného nebo storno je lepší měřit na serveru, protože klient je může ztratit i podvrhnout. Klientská strana zůstává pro to, co server nevidí: scroll, otevření obrazovky, chyba formuláře.

Souhlas a právní rámec

Sledování pro marketingové účely vyžaduje souhlas podle GDPR a u přístupu k údajům v zařízení i podle pravidel o elektronických komunikacích. Praktický důsledek: SDK se inicializuje až po rozhodnutí uživatele, nikoli při startu aplikace, a události nasbírané před souhlasem se buď nepošlou, nebo se pošlou bez identifikátorů.

Kde měření nejčastěji selhává

Nejběžnější příčinou nepoužitelných dat není chybějící nástroj, ale chybějící slovník událostí. Když tři vývojáři pojmenují nákup jako purchase, Purchase a buy_done, žádný report to nespraví. Druhou příčinou je měření všeho: tisíc událostí bez vlastníka znamená, že se nikdo neptá, jaké rozhodnutí z nich má vzejít.

Příklady z praxe

  1. Onboarding, který ztrácí polovinu lidí

    E-shopová aplikace měří čtyři kroky registrace jako samostatné události. Report ukáže, že mezi krokem ověření telefonu a dokončením zmizí 48 % uživatelů, přičemž na Androidu je propad dvojnásobný. Příčinou byla SMS brána, která v jedné síti doručovala kód se zpožděním. Bez rozpadu události podle platformy a verze aplikace by tým hledal chybu v designu formuláře.

  2. Vlastní vrstva pro odesílání událostí

    Aplikace nevolá SDK přímo, ale jedinou funkci, která doplní společné parametry a respektuje souhlas. Díky tomu jde nástroj vyměnit na jednom místě a události nasbírané bez souhlasu se odešlou bez identifikátoru zařízení.

    type EventName = 'screen_view' | 'add_to_cart' | 'purchase';
    
    export function track(name: EventName, params: Record<string, string | number> = {}) {
      if (!consent.analytics) return;
    
      analytics.logEvent(name, {
        ...params,
        app_version: Constants.appVersion,
        platform: Platform.OS,
        session_id: session.id,
      });
    }
    
    track('purchase', { value: 1290, currency: 'CZK', items: 2 });

Časté omyly

MýtusMáme Google Analytics na webu, tak ho jen nasadíme i do appky.
Ve skutečnostiMěření v aplikaci pracuje s událostmi a identifikátory instalace, ne s pageview a cookie. Nástroje pro aplikace mají vlastní SDK a odlišný datový model, takže se webová konfigurace nepřenese jedna ku jedné.
MýtusPočet instalací je hlavní ukazatel úspěchu aplikace.
Ve skutečnostiInstalace jen otevírá možnost, že aplikaci někdo použije. Rozhodující je podíl lidí, kteří se vrátí druhý a sedmý den, a kolik z nich dojde ke klíčové akci. Kampaň umí instalace koupit, retenci ne.
MýtusData v přehledu za včerejšek jsou finální.
Ve skutečnostiZařízení odesílají fronty událostí se zpožděním, když je uživatel offline nebo má aplikaci zavřenou. Čísla za posledních několik dní se proto dopočítávají a srovnávat se dají až po ustálení.

Časté dotazy

Jaké události má smysl v mobilní aplikaci měřit jako první?
Na začátku stačí pět až deset událostí navázaných na hlavní cestu produktu: první spuštění, dokončení onboardingu, klíčová akce (odeslání objednávky, založení záznamu, přehrání obsahu), nákup nebo start předplatného a pád aplikace. Ke každé události patří jasně definované parametry a jeden vlastník, který ví, jaké rozhodnutí z ní vzejde. Rozšiřovat sadu je snadné, opravovat tisíc nekonzistentně pojmenovaných událostí zpětně nikoli. Platí, že přesně měřená malá sada je cennější než široké, ale nedůvěryhodné pokrytí.
Jak mobilní analytika funguje, když je uživatel offline?
SDK ukládá události do lokální fronty na zařízení, obvykle do souboru nebo SQLite databáze, a odesílá je v dávkách, jakmile je k dispozici síť a aplikace běží. Fronta má limit velikosti i stáří, takže při dlouhé nedostupnosti se nejstarší události zahazují. Pro analýzu to znamená rozlišovat čas vzniku události na zařízení od času přijetí serverem: reporty se počítají podle prvního, ale kompletní jsou až s odstupem, typicky po několika dnech.
Potřebuje mobilní analytika souhlas uživatele?
Souhlas je potřeba všude, kde měření sleduje jednotlivce nebo slouží marketingu a personalizaci. Podle GDPR jde o zpracování osobních údajů, protože identifikátor zařízení je osobním údajem, a přístup k údajům uloženým v zařízení navíc řeší pravidla o elektronických komunikacích. Na iOS přistupuje ještě App Tracking Transparency, tedy systémový dotaz před použitím reklamního identifikátoru napříč aplikacemi. Praktické řešení je inicializovat analytické SDK až po rozhodnutí uživatele a bez souhlasu měřit jen agregovaně a bez identifikátorů.
Proč se čísla z analytiky rozcházejí s výkazem z App Store nebo Google Play?
Obchody počítají stahování a účty, analytika v aplikaci počítá spuštění a instalace, které skutečně proběhly a odeslaly první událost. Rozdíl vzniká z několika příčin: stažení bez spuštění, sdílení jednoho účtu na více zařízeních, reinstalace, odmítnutí souhlasu se sledováním a zpožděné doručení událostí. Rozdíl v řádu jednotek až nižších desítek procent je běžný. Důležité je používat jeden zdroj konzistentně pro trend a nesnažit se obě čísla srovnat do rovnosti.
Vyplatí se posílat události ze serveru místo z aplikace?
Serverové měření se vyplatí u všeho, co má finanční nebo právní dopad: nákup, obnova a zrušení předplatného, vrácení peněz, změna stavu objednávky. Server tato data zná spolehlivě, klient je může ztratit při zavření aplikace nebo podvrhnout. Klientské události zůstávají nezastupitelné tam, kde server do dění nevidí: zobrazení obrazovky, gesta, chyby ve formuláři, doba načítání na zařízení. Většina zralých nasazení kombinuje obojí a spojuje je společným identifikátorem uživatele nebo relace.

Zdroje

  1. Google Analytics for Firebase(otevře se v novém okně)Google
  2. Nařízení (EU) 2016/679 (obecné nařízení o ochraně osobních údajů)(otevře se v novém okně)Úřad pro publikace EU, 2016
  3. Úřad pro ochranu osobních údajů(otevře se v novém okně)ÚOOÚ

Související pojmy

Potřebujete to vyřešit v praxi?

Poradíme, jak na to ve vašem projektu

Vysvětlit pojem je jedna věc, navrhnout kolem něj funkční řešení druhá. Ozvěte se a probereme, co dává smysl u vás.