Přejít k navigační liště

Zdroják » Různé » Víte, jak uživatelé používají vaši aplikaci?

Víte, jak uživatelé používají vaši aplikaci?

Články Různé

Dle studie Chaos od The Standish Group obsahuje typický softwarový systém 45 % funkcí, které nejsou koncovými zákazníky nikdy použity, 19 % funkcí je použito velmi zřídka, 16 % čas od času, 13 % často a pouze 7 % stále a opakovaně. Udržovat zmíněných 45 % nepoužívaných funkcí stojí firmy obrovské finanční prostředky, které jsou investovány zcela zbytečně.

Nálepky:

Dle studie Chaos od The Standish Group obsahuje typický softwarový systém 45 % funkcí, které nejsou koncovými zákazníky nikdy použity, 19 % funkcí je použito velmi zřídka, 16 % čas od času, 13 % často a pouze 7 % stále a opakovaně. Udržovat zmíněných 45 % nepoužívaných funkcí stojí firmy obrovské finanční prostředky, které jsou investovány zcela zbytečně.

Tento článek vám ukáže, jak správně analyzovat využívanost vašich aplikací a soustředit se tak pouze na rozvoj funkcí, které vaši zákazníci skutečně používají.

Jak získám informace o používání své aplikace?

  1. Přímé otázky na uživatele (použitelné před i po vytvoření nové funkce), kanály: Facebook, Twitter, ale i uživatelské testování prototypů/betaverze.
  2. Analýzou používání aplikace (použitelné až po naprogramování alespoň základní verze nové funkce)

První skupina je pěkně popsána v článku Jak správně vytvořit dotazník. Můj článek se bude věnovat pouze analýze používání aplikace.

Proč bych měl používání své aplikace analyzovat ?

Správně provedená analýza vám pomůže odpovědět na následující otázky:

  • Na které funkce/části naší aplikace bychom se měli soustředit, protože je lidé využívají nejvíce?
  • Které funkce/části aplikace bychom naopak neměli dále rozvíjet, protože je nikdo nepoužívá?
  • Chápou uživatelé základní funkce naší aplikace?
  • Co brání uživatelům v používání vybraných funkcí? Jak zajistit, aby je používali více?

Souhrnně řečeno: Analýza mi pomůže směrovat své úsilí v rozvoji aplikace správným směrem. V naší analytické práci se setkáme s následujícími situacemi:

  1. Uživatelé něco udělali/neudělali: Např. 10 % uživatelů si zobrazilo sekci Reporty, 30 % nastavilo integraci s Google Analytics.
  2. V jakém množství to udělali: Např. 15 % uživatelů vytvořilo alespoň 1 projekt, 50 % uživatelů vygenerovalo 10+ reportů.
  3. Důvody, proč uživatelé nevykonali požadované akce/nevyužili určitou funkci: Např. z předchozí analýzy vyplynulo, že pouze 10 % klientů vytvořilo více než 1 report. My se snažíme zjistit, proč je toto číslo tak nízké a jak by se dalo zvýšit.

Určitě je také vhodné uživatelé naší aplikace vhodně segmentovat. Já jsem například zvlášť analyzoval následující skupiny klientů/uživatelů:

  1. Všichni uživatelé
    Kdokoliv se zaregistroval.
  2. Pouze aktivní uživatelé
    My je definujeme jako uživatele, kteří se přihlásili alespoň jednou za posledních 60 dní.
  3. Pouze platící uživatelé
    Ti nás živí, takže bychom jim měli věnovat nejvíce pozornosti.

Kdo by měl analýzu dělat?

Na následujícím příkladu chci ilustrovat, že analýzu musí provádět osoba, která aplikaci dobře rozumí a zná všechny její důležité zákonitosti. V opačném případě může dospět k neplatným závěrům.

Příklad: Zjistíme, že pouze 10 % uživatelů použilo alespoň jednou funkci „Generuj report“. Z toho bychom mohli nesprávně usoudit, že reporty uživatelé téměř vůbec nepoužívají. Naštěstí ale víme, že generování reportů je přístupné pouze uživatelům, kteří:

  • mají placený tarif,
  • úspěšně nastavili integraci s Google Analytics.

Z výše uvedeného je ideální vytvořit tzv. konverzní trychtýř:

Ve výsledku jsme zjistili konkrétní „ztrátovost“ uživatelů v jednotlivých krocích, které vedou k vytvoření reportu.

Jaká data použít?

Pro analýzu používání našeho SEO nástroje Collabim jsem použil především interní data z naší MySQL databáze.

Příklad přípravy dat: Máme tabulky clients a projects. 1 klient může mít 0..n projektů, 1 projekt je vždy vlastněn 1 klientem. Cílem analýzy je vytvořit jednoduchý přehled počtu projektů a počtu klientů s daným počtem projektů:

Počet projektů Počet klientů s daným počtem projektů
0 20
1 – 5 38
6 – 20 158

Abychom byli schopni zobrazit výše uvedenou tabulku, je potřeba nejdříve získat počty projektů pro všechny klienty. Doporučuji vytvořit jednoduchou souhrnnou tabulku projects_by_clients se sloupci clientId a numberOfProjects. Do tabulky následně vložíme potřebná data např. pomocí dotazu:

INSERT INTO
    projects_by_clients (clientId, numberOfProjects)
SELECT
    clients.id, COUNT(*)
FROM
    clients
    LEFT JOIN projects ON (projects.clientId = clients.id)
GROUP BY
    clients.id

Výslednou tabulku projects_by_clients můžeme pak již velice jednoduše dotazovat např. pomocí:

SELECT
    COUNT(*)
FROM
    projects_by_clients
WHERE
    numberOfProjects
BETWEEN
    1 AND 5

Výhody vytvoření souhrnné tabulky:

  • vyhneme se složitým SQL dotazům plným JOINů atd., které můžou způsobit, že výsledná data budou chybná,
  • data se nebudou „měnit pod rukama“, pokud analýzu děláme delší dobu,
  • omezíme práci s produkčními daty, čímž snížíme riziko, že si nějaká data omylem změníme/smažeme.

Už tě nebaví bušit e-shopy a pořád stejné klientské webíky, chceš se místo bastlení naučit pořádně programovat v PHP? Pojď si s námi vyzkoušet práci v Amazon cloudu, pojď s námi dělat Collabim.

Další tipy

U každé důležité funkce/tlačítka své aplikace si ukládejte čas prvního použití. Zpětně totiž už tato data získáte jen velmi těžko. Pomůže vám to následně analyzovat např. následující:

  • Uživatel vytvořil první report 15:18, tedy 3 minuty po registraci.
  • Uživatel poprvé navštívil stránku „Seznam projektů“ v 15:21, tedy později, než vytvořil report.

Stejně tak ukládejte čas vytvoření (nikoliv pouze datum!) ke všem záznamům, které ve své aplikaci vytváříte. Pomůže to nejen v analytice.

Dejte si pozor na uživatele, kteří se zaregistrovali na okrajích analyzovaného období. Příklad: Zjišťujete počet uživatelů, kteří se zaregistrovali mezi 1.1. a 1.12. a vytvořili více než 10 reportů. Uživatelé zaregistrovaní např. 25. listopadu pak pravděpodobně „nestihnou“ vygenerovat požadovaných 10 reportů a proto do této skupiny patřit nebudou, i když třeba zanedlouho požadovaných 10+ reportů vytvoří.

Závěry analýzy proberte s kolegy. Určitě je napadnou další zajímavé metriky a souvislosti, které je vhodné sledovat.

Jak často bych měl analýzu provádět?

Pokud jste analýzu nikdy nedělali, doporučuji ji provést pro všechny důležité části aplikace najednou. Objevíte tak mnohem více souvislostí, než kdybyste se zaměřili pouze na jednu úzkou část aplikace. Po této „velké analýze“ se již můžete zaměřit na analýzu konkrétních funkcí.

Prvotní analýza může zabrat klidně několik dní. Několikrát pravděpodobně začnete úplně od začátku, protože zjistíte, že vaše předchozí výpočty byly založeny na nesprávných předpokladech.

Pro většinu aplikací by mělo stačit provádět komplexnější analýzu jednou za kvartál. V mezičase provádějte menší analýzy nově nasazených funkcí nebo jiných větších změn v aplikaci.

Jak analyzujete své aplikace vy?

Používáte nějaké speciální analytické nástroje? Máte jiná zajímavá doporučení? Podělte se o ně v komentářích.

Komentáře

Subscribe
Upozornit na
guest
6 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
patrik.sima

Téměř v každé aplikaci loguji činnost uživatele. Jednak pro helpdesk, tak kvůli analýze chování. A dále se dá dobře využít analytics s parametry jako utc_campaing, content…

Jiří Koutný

utc_campaing, content…myslíte umt_campaign atd? Tyhle parametry se dají použít AFAIK jen v případě, že vaše aplikace není schovaná za přihlášením.

Jinak je obecně vhodné mít ve své webové aplikaci Google Analytics měřící skript. Data se pak dají buď zpracovávat v rozhraní, nebo stáhnout přes API, uložit do MySQL a dělat nad nimi nějakou další analytiku.

To se pokusím popsat v nějakém navazujícím článku.

keff

Dají se z GA dostat neagregovaná data (cesta konkétního uživatele)? Imo ne, používám kvůli tomu getclicky.com (ukládají všechny akce všech uživatelů po 2 měsíce).

patrik.sima

Cesta uživatelů tam je, což by mělo pro zkoumání stačit. Cesta jednoho konkrétního uživatele tam zřejmě není. Ale nejsem expert na GA. Nicméně k čemu je dobré znát cestu jednoho konkrétního návštěvníka/u­živatele?

Jiří Koutný

Přes Google Analytics API můžete AFAIK získat jen data, která vidíte ve webovém rozhraní.

Webové rozhraní ale ne vždy umožňuje všechny pohledy nad daty. My jsme třeba potřebovali pageviews jednotlivých stránek seskupené podle subdomén. Proto bylo nutné data stáhnout na MySQL databáze a následně nad nimi dělat SQL dotazy.

Jsem si celkem jistý, že cestu konkrétního uživatele v GA nezískáte. Na to jednoduše nejsou stavěny.

marrra

Já si ukládám do databáze počty zobrazenych stranek/provedených akcí v jednotlivých dnech. Konkrétně v Zend Frameworku ukládám jméno controlleru a action. Tyto data se z GA získávají obtížně (pokud je obsah generován uživateli – jako v mém případě na http://www.karaoketexty.cz).

Důležité je ukládat počet zobrazení zvlášt pro přihlášené/nep­řihlášené resp. platící/neplatící.

Díky jedné tabulce a pár řádkům kódu (max. půl hodiny práce) získáte kompletní přehled o využívání jednotlivých funkcí celého webu.

Jednoznačně mohu potvrdit studii uvedenou v článku – více než polovinu funkcí uživatelé téměř nepoužívají…

Obecně doporučuji ukládat do databáze co nejvíce informací. Místa na disku je dost a nikdy nevíte, kdy se budou data hodit…

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.