Analýza server logů aneb jak získat cenné informace o webu

Nejčastějším nástrojem pro marketingovou a webovou analýzu je dnes bezpochyby Google Analytics. Tento nástroj ale zdaleka není jediným, který k analýze vaší webové stránky můžete použít. Rozšířením může být například srovnávací analýza server logů. Server log je protokol zaznamenávající reálný provoz na vašem webu, zatímco výstupem z Google Analytics jsou spíše trendy chování vašich návštěvníků. Jsou však výsledná data shodná nebo každá poskytují jiný výstup? Pojďme se na obě metody podívat blíže.

Každý, kdo se věnuje webové analytice, by chtěl mít úplný přehled o tom, co se děje na jeho webu. Jsou opravdu informace, které můžeme získat z nástrojů typu Google Analytics, kompletní a vypovídají o celkovém provozu na webu? A pokud ne, jak poznat, o jaké informace přicházíme a kolik jich vlastně chybí? Se zodpovězením těchto otázek nám může pomoci analýza server logů, díky které si můžete udělat přehled o objemu a struktuře návštěv, které nejsou v Google Analytics zaznamenány.

Server logy a Google Analytics Pageview: co mají společného?

Server logy jsou jednoduché textové záznamy automaticky vytvářené a ukládané serverem (vlastním, cloud, i webhosting), který tak dokumentuje veškeré požadavky, které na něj byly vyslány. Tyto protokoly mají standardizovanou podobu a poskytují širokou škálu informací o tom, jak, kdo a kdy se zatoulal na Váš web.  Na jejich strukturu se podíváme podrobněji v další části.

Chceme-li porovnávat server logy s Google Analytics, je třeba si uvědomit, kdy a jak je informace o zobrazení webu do GA odesílána, protože oba systémy získávají data v rozdílném okamžiku.

Google Analytics sbírá data o webu na základě cookies a javascriptového měřícího kódu, který musíte umístit na každou stránku, kterou chcete měřit. Kód se spustí až při načtení dané stránky a metrika pageviews díky tomu zaznamenává jednotlivá načtení sledované stránky. Server logy naproti tomu dokumentují všechny požadavky, které přijmou, nezávisle na načtení jednotlivých webových stránek.

Struktura server logů

Nejčastější podoba server logů, se kterou se můžeme potkat, odpovídá CLF (Common Log Format) souborům, který může vypadat např. takto:

66.249.76.9 – [01/Sep/2020:07:06:53 +0200] “GET /2020/03/14/vizualizace-vyvoj-covid-19-v-cesku-powerbi/ HTTP/1.1” 200 18868 “-” “Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.92 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”

Hromada zajímavých informací. Jak ji rozklíčovat? 

66.249.76.9 je IP adresa uživatele, který vyslal požadavek na náš web.

 Zde se může nacházet user-identifier, ale v našem případě tuto informaci nemáme.
 Zde se může nacházet user-ID, ale my tuto informaci opět nemáme.

[01/Sep/2020:07:06:53 +0200] Časový údaj o momentu, kdy server přijal požadavek. Jedná se časový typ strtime ve formátu %d/%b/%Y:%H:%M:%S %z. 

“GET /2020/03/14/vizualizace-vyvoj-covid-19-v-cesku-powerbi/ HTTP/1.1” Konkrétní požadavek, který server přijal, se skládá z více zajímavých částí. “GET” je dotazovací metoda HTTP protokolu  – nejčastěji narazíte na GET, HEAD, POST – více viz dotazovací metody. Následuje url požadované stránky a její HTTP protokol. 

200   Stavový kód HTTP – upřesňuje, jak byly požadavky serverem zpracovány – trojmístná čísla začínající 2 značí úspěch, 3 přesměrování, 4 chybu na straně klienta atd. Podrobněji viz stavové kódy.

18868 Je velikost objektu vyslaného klientovi, měřeno v bajtech. 

“Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.92 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”

Poslední část, kterou v našem server logu můžeme vidět, se nazývá user agent a přináší širokou škálu informací o uživateli, resp. jeho prohlížeči. Z jednotlivých částí tohoto vlákna můžete získat detailní informace o systému a prohlížeči uživatele, jakou platformu využívá jeho prohlížeč a informace o ní a v neposlední řadě můžeme také zjistit, zda se jedná o běžnou uživatelskou návštěvu či požadavek, který nám na server generoval bot či crawler – tak jak to máme v našem případě. Tento user agent odkazuje na Googlebot crawlera, který prohledával stránky, aby získal co nejčerstvější informace pro svůj search engine. Kompletní sadu informací, kterou lze extrahovat z tohoto konkrétního user agenta, najdete zde.

Úprava dat a čištění

Teď už víme, jaký typ informací ze server logů můžeme získat. Množství dat je to ohromné a abychom byli schopni alespoň základního srovnávání s GA metrikou pageview, musíme naše data řádně pročistit. 

Prvním krokem by měla být úprava našich dat ze server logů do takové podoby, aby byly porovnatelné s GA pageview, vyčistit a ořezat je do takové míry, aby odpovídaly způsobu, jakým GA reportuje naše webové stránky. 

Při extrakci přebytečných dat z url získáme v samostatných polích informace, které použijeme pro další filtraci dat – konkrétně HTTP metodu a stavové kódy. Pro naše srovnání využijeme pouze takové řádky protokolu, které mají stavový kód 200. To je standardní odpověď pro úspěšný HTTP požadavek. V takovém případě byla totiž požadované stránka načtena a pokud na ni byl vložen GA kód, tak i zaznamenána do Analytics. 

Další z filtrů, který bychom měli na naše data aplikovat je, že pro srovnávací analýzu budeme pracovat pouze s takovými řádky, které obsahují HTTP metodu GET, což je výchozí metoda pro zobrazení hypertextových stránek. 

Server logy archivují veškeré požadavky, které na server přišly, ale ne vždy se jednalo o požadavek, jehož cílem bylo načtení konkrétní stránky. Mohlo se jednat o požadavek na obrázek, či jiný typ souboru, a proto je třeba vyloučit všechny ostatní formáty – např. .jpg, .png, .gif,, ale i php či .js, vše začínající /wp, máte-li postavený web ve WordPressu atd. Je důležité si uvědomit, že v protokolech jsou záznamy i o práci adminů a dalších uživatelů, kteří mohou být v GA odfiltrováni, je tedy nutné se zamyslet i nad tím, jak tato nastavení během analýzy server logů zohlednit. 

Na závěr je nutné z našich dat vyloučit veškerou “non-human traffic”. V posledních letech počet všemožných botů a crawlerů stále narůstá, a tak je tento krok jeden z nejobtížnějších. Můžete namítnout, že v této fázi by bylo možné porovnávat data nefiltrovaná, protože většinou i v GA máme k dispozici unfiltered view, ale nedoporučovala bych to. Množství botů, které GA zaznamenají je minimální, a to z důvodu, že většina botů či crawlerů nepodporuje javascript, a tím pádem GA kód nespustí. Porovnávání tedy doporučuji provádět na vyčištěných datech, aby došlo k co nejmenšímu zkreslení. Jak tedy všemožné boty a crawlery najít? 

Pro identifikaci botů či crawlerů můžeme využít informace z user agentů – 

“Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.92 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”

– v koncové části tohoto vlákna najdete informaci, že se jedná o bota. Stejně tak u většiny těch oficiálních. Pak stačí nastavit filtr, které Vám všechen tento provoz eliminují a máte vyhráno.

Tak zní teorie, v praxi je to o něco složitější. Je nutné si prohlédnout, co Vám říkají data, jak vypadá struktura user agenta, a co vše obsahuje. Pokud je user agent ve nestandardní podobě, tak se může jednat o bota – to si můžete ověřit v různých databázích botů, které jsou dostupné na webu, např. https://user-agents.net/bots. Existují  různé placené i veřejné seznamy botů, které můžete ke svým datům připojit a zkusit data vyfiltrovat na jejich základě, ale to se nám neosvědčilo. 

Závěr

Tímto způsobem můžeme připravit data pro srovnávací analýzu. Jestliže na začátku vstupní data ze serverů několikanásobně převyšovala data z Google Analytics, v tomto momentě už bychom se měli blížit k číslům, která odpovídají struktuře a objemu dat v Analytics. Nikdy se však nebudou rovnat, ale to by nemělo vadit. Berme to tak, že Analytics ukazují spíše trendy chování návštěvníků na Vašem webu, zatímco ze server logů získáte přehled o reálném provozu na webu. Jsou to dva rozdílné pohledy na stejnou činnost, a je nutné tak k nim přistupovat. 

Přejít nahoru
Scroll to Top