Jak obejít sampling dat v Google Analytics

Tento článek popisuje jedno zásadní omezení Google Analytics, které tomuto jinak velmi užitečnému nástroji dost zásadně ubírá na reálné využitelnosti při rozhodování o klíčových záležitostech.

Řeč je o samplingu dat (česky tzv. vzorkování), které je aplikováno za účelem urychlení celé aplikace. Zjednodušeně řečeno spočívá v použití statistických metod pro odhady jednotlivých metrik na základě určitého „vzorku“ dat.

Zpracování menšího objemu dat má pozitivní vliv na svižnost generování reportů, ovšem rovněž dost negativní vliv na jejich přesnost a spolehlivost. Tento článek popisuje případ 88% odchylky u metriky průměrné hodnoty objednávky v rámci A/B testu u jednoho z našich klientů. Souhrnný přehled a detailní srovnání (ne)přesnosti samplovaných reportů detailně popisuje například článek Can You Trust Your Google Analytics Data, který v závěru konstatuje, že reporty konverzí či e-commerce s aplikovaným samplingem jsou de facto nepoužitelné.

Na rozdíl od Adobe/Omniture SiteCatalyst, ve kterém se s tímto omezením nesetkáte, Google Analytics aplikují sampling v jednotlivých reportech pokud:

  • Je překročena maximální možná míra kombinace 1 000 000 unikátních dimenzí pro jakýkoliv tip dotazu,
  • anebo (častější případ) je překročen maximální počet 500 000 návštěv pro vytvoření požadovaného ad-hoc reportu, který nemá předpřipravená data (toto je mimochodem důvod, proč na standardní reporty sampling aplikován není).

Scénářů, kdy se se samplingem setkáte, je celá řada: Vyhodnocujete nějaký A/B test a chcete mít jistotu, že u vytyčených KPI došlo opravdu ke zlepšení? Potřebujete vyhodnotit celoroční snažení na poli e-mailingu s přesným zhodnocením efektivnosti jednotlivých kampaní? Analyzujete chování skupiny návštěvníků označené pomocí kombinace více vlastních proměnných? Máte nadefinovány vlastní segmenty s poměrně komplikovanými podmínkami a potřebujete vědět, jak se liší nákupní chování mezi nimi?

Podobných situací je celá řada. Obecně by se dalo říci, že při jakémkoliv intenzivnějším (tj. užitečnějším) „páčení“ čísel z Google Analytics narazíte dříve či později čelem do zdi. A v pravém horním rohu se při tomto nárazu zobrazí obávaná hláška:

GA-Sampling

Naštěstí se toto omezení dá obejít poměrně snadným řešením přes Google Analytics API. Jeho princip spočívá v tom, že se daný dotaz na data „rozdělí“ na několik postupných dotazů kratších časových období (typicky jednotky dní), při kterém se objem získaných dat vejde do výše uvedených limitů.

Pokud jste se samplingem doposud „nebojovali“, máte na výběr dvě možnosti:

  1. Využít specializovaných nástrojů typu Next Analytics či Analytics Canvas, které jsou na toto přímo stavěny a které nabízí pohodlí grafického rozhraní a další užitečné funkcionality.
  2. Napsat si vlastní aplikaci či využít jiné dostupné knihovny, které obnáší trošku více práce, ale na druhou stranu jsou následně o něco flexibilnější a mj. také bez licenčních poplatků. A hlavně je to taky větší zábava a dobrodružství :)

V tomto článku se dále zaměřím na 2. cestu, konkrétně pak využití statistického nástroje R a dostupných balíčků pro získání a následnou analýzu dat z Google Analytics.

Co budeme potřebovat:

Postup je následující:

  1. Nainstalovat poslední verzi R společně s RStudiem (začněte R, až poté RStudio).
  2. Pomocí této sady příkazů nastavit vše potřebné pro samotné získání dat a práci s nimi.
  3. Zkontrolovat status „konektoru“ do Google Analytics pomocí příkazu: ga$sta­tus()
  4. Pokud je vše v pořádku (hodnota token_valid = TRUE), tak můžeme začít tahat „čistá“ data.

Způsob práce s R přesahuje rámec tohoto článku, ale i úplným začátečníkům postačí znalost tzv. dataframe (zjednodušeně základní datový objekt – tabulka), které usnadní práci s následnými exporty například do CSV souborů. Pro většinu čtenářů bude stejně mnohem pohodlnější a plně dostačující zpracovávat získaná hrubá data v Excelu.

Získání dat z GA do R

DataFrame1 <- ga$getData(123456789, # ID profilu
batch = TRUE, walk = TRUE, # kratší časové období požadavku (1 den)
„2012–01–01“, „2013–01–01“, # rozsah reportu od – do
metrics =„ga:visitors,ga:tran­sactions,ga:tran­sactionRevenu­e“, # metriky
dimensions=„ga:da­te,ga:medium,ga:cam­paign,ga:custom­VarValue5“, # dimenze
filter=„ga:sou­rce=~(e-mail|email)“) # filtry

Výše uvedený příkaz nám poskytne kompletní přehled emailingových kampaní za rok 2012 a všech klíčových souvisejících metrik: unikátní návštěvníci, počet objednávek a vygenerovaný obrat. To vše po dnech a s příslušným segmentem zákazníka, který je nadefinovaných v jedné z vlastních proměnných (CustomVarValu­e5). Získání unsampled dat zajistí zvýrazněné příkazy batch = TRUEwalk = TRUE.

Níže je uveden snímek obrazovky z RStudia, které zobrazuje práci s dataframes a rychlou možnost kontroly získaných dat.

Prostředí R

Kompletní přehled možností využití RGA včetně zápisu pro využití segmentů, řazení atd. pak najdete v jeho oficiální dokumentaci. Určitě bude nápomocná také oficiální dokumentace Google k používání API, která shrnuje jednotlivá omezení, syntaxi filtrů atd.

Export dat do CSV

write.table(Da­taFrame1, file=„emailing-2012.csv“, 
  sep=„;“, row.names = FALSE)

Tímto příkazem zajistíme snadné vygenerování CSV souboru s názvem emailing-2012.csv. Jako oddělovač jednotlivých dat bude použit středník (bude se hodit při následném importu v Excelu).

Vyhodnocení získaných dat je už nyní „pouze“ závislé na tom, co potřebujete zjistit a jak si se získanými daty poradíme. Vytvoření reportu o výkonu jednotlivých typů kampaní s přehledem po týdnech a jejich procentuální přínos na celkovém obratu s možností filtrace na jednotlivé segmenty zákazníků? Pomocí pivot tabulky v Excelu je to s nadsázkou záležitost na pár minut:

Excel - vizualizace dat

Pokud pro vizualizaci dat upřednostňuje­te Tableau, tak ze stejného zdrojového CSV souboru můžete poměrně snadno a rychle vytvořit přehledné grafické výstupy:

Tableau - vizualizace dat

Na závěr článku ještě pro názornost uvedu, jak vypadá vliv samplingu na konkrétním příkladu, a sice na vyhodnocení A/B testu emailingové kampaně. Vzhledem k citlivé povaze zobrazených dat je většina údajů nečitelných, ponechal jsem pouze průměrnou hodnotu objednávky (sloupec Average Value).

Rozdíly v hodnotách jednotlivých variant jsou zde opravdu kritické. Zatímco u kontrolní varianty A činí rozdíl kvůli samplingu přibližně 3 %, u alternativní varianty B ovšem rozdíl v číslech představuje téměř 88 %!

Čísla v reportu s aplikovaným samplingem Čísla v reportu bez vlivu samplingu

V tomto případě lze vzhledem k relativně malému počtu návštěv eliminovat sampling přímo v rozhraní GA pomocí výběru kratšího časového období. To také ukazují snímky obrazovek uvedené výše. Nicméně toto řešení je při jakékoliv větší analýze neefektivní neřkuli neproveditelné.

Vliv samplingu

Tímto je snad jakákoliv diskuse o použitelnosti reportů založených na samplovaných datech zbytečná. Jak bojujete se samplingem vy? Podělte se o zkušenosti, připomínky či tipy v komentářích.


Poznámka 1: Výše popsaná metoda přestává fungovat v okamžiku, kdy se i na denní bázi dostanete přes stanovené limity.

Poznámka 2: Inspirací pro tento článek byla nedávná publikace na blogu StatsRavingMad, která analyzovala dobu načítání webu.

Tipy pro efektivní práci s Google Analytics API:

  • Skripty odkazované v článku si stáhněte jako samostatné R soubory z GitHub.com. Poté je stačí upravit dle vašich potřeb a jednoduše spustit.
  • Samotnou strukturu jednotlivých dotazů doporučuji nejdříve „naklikat“ v QueryEditoru. Usnadní vám jejich přípravu mj. také z toho důvodu, že zobrazuje srozumitelné chybové hlášky API (typicky příklad je nevalidní kombinace dimenzí a metrik, což je velké téma samo o sobě – viz tento výborný shrnující článek od Avinashe Kaushika).
  • Pro import CSV souboru do Excelu použijte doplněk od Microsoftu pro práci s externími zdroji dat, DataExplorer. Výrazně rozšiřuje možnosti zpracování datových souborů, usnadňuje manipulaci s nimi a jejich aktualizaci, pokud potřebujete nějaký report zautomatizovat.

DataExplorer

  • Exportovaná data z Google Analytics do CSV někdy dělají „paseku“ vzhledem k odlišným regionálním formátům čísel (typicky americká desetinná tečka namísto české čárky). Příslušnou změnu nastavení pro zajištění správnosti formátu lze udělat přímo v Excelu:
    File > Advanced > Editing Options > Use system separators.

GA-9

 

Související články:

Post to Twitter  

Líbil se vám tento článek? Sledujte nás a žádný další už vám neunikne:
E-mail  |  RSS  |  Twitter  |  Facebook

Komentáře čtenářů (2)

1 Lucka | 19.6.2013 20.28

Díky za článek, je to pro mě zrovna aktuální. Vyzkoušíme tahle řešení, sampling nám výrazně komplikuje vyhodnocování některých typů kampaní.


2 Petr Havlík | 24.6.2013 16.18

Lucko, dej prosím vědět, jestli článek pomohl :)

Komentáře k tomuto článku již byly uzavřeny. Komentovat se dají pouze aktuální články.

Newsletter

Přihlaste se do našeho e-mailového magazínu a každý měsíc obdržíte užitečné články a studie přímo do vaši schránky!

Více

RSS článků
Krátce z Twitteru Sledujte nás na Twitteru

Sledujte nás na Twitteru