Adaptive Mind

Posts Tagged ‘development

Málokdo dělá A/B nebo multi-variantní testování bez souběžného měření návštěvnosti. Tímto článkem bych chtěl shrnout, jaké potíže vás mohou potkat, pokud zvolíte nejběžnější kombinaci nástrojů od Googlu (celý článek se týká pouze multi-variantních testů, protože toto nastavení doporučuji i pro testy se dvěma variantami – důvody mohu zájemcům vysvětlit v jiném článku nebo v komentářích). Mohlo by se totiž zdát, že když oba nástroje pocházejí od stejného výrobce a využívá dokonce shodnou technologii sběru dat, bude jejich integrace bezbolestná. Omyl.

Zásadním problémem je, že vývoj obou nástrojů probíhá nezávisle. Ačkoliv Google o integraci již nějakou chvíli sám hovoří a je ze stran agentur i koncových klientů bombardován žádostmi o řešení, stále se v tomto ohledu příliš nestalo. Nějaké pokusy již na webu lze nalézt (většinou v angličtině), ale žádné z nich neuvažuje všechny případy užití a navíc zatím ještě neřeší nový asynchronní sledovací kód.

Takže co všechno vás čeká, pokud se rozhodnete na svém webu využívat Google Analytics (dále GA) a Google Website Optimizer (dále GWO) současně?

Jak zajistit, aby se to nepralo?

Na testovací stránce řešíme spuštění dvou měřících skriptů (GA a GWO). Jsou-li oba skripty nakonfigurovány podobně, přepisují si cookies s údaji o návštěvníkovi a mohou tak poškodit vaše nasbíraná data.

GWO je totiž založen na starší verzi měřicího skriptu GA z dob, kdy se ještě jmenovalo toto řešení Urchin Software. Skripty tedy používají stejnou metodu sběru dat – JavaScriptem nashromážděná data v kombinaci s identifikací návštěvníků ve stejných cookies (__utma, __utmb, __utmc, __utmz a potažmo __utmv), která jsou odesílána na servery Googlu v podobě requestu na stejný jedno-pixelový obrázek s parametry.

Kontrolní skript navíc využívá své vlastní cookies (__utmx a __utmxx), kterými zajišťuje trvalost přiřazení jedné kombinace k danému návštěvníkovi.

Asynchronní kód

Kontrolní skript GWO je nutně synchronní (musíme jej spustit ještě před začátkem vykreslování vlastní stránky, aby mohl měnit její obsah podle nastavení experimentu), proto také musí vždy být přímo v hlavičce dokumentu. K plné kontrole dvou měřících skriptů na stránce ale potřebujete, aby se skripty spustily v určeném pořadí. Toho nelze dosáhnout, kombinujeme-li nový asynchronní skript GA a starý synchronní měřicí skript, který vygeneruje nastavení experimentu v GWO.

Pokud použijeme skripty vygenerované jednotlivými nástroji a umístíme je, jak nám Google doporučuje, bude navíc stránka zbytečně vyhodnocovat dvakrát hlavní měřicí skript. To si můžete prohlédnout na prvním příkladu.

Doporučuji proto využívat i pro měření GWO experimentů asynchronní syntax, který navíc umožňuje snazší inicializaci druhého trackeru.

Nastavení domén cookies

Abychom zabránili vzájemnému přepisování cookies identifikujících návštěvníka, můžeme se pokusit cookies pro oba nástroje oddělit (každý bude mít svoje) nebo si ohlídáme pořadí skriptů a druhému zakážeme přepisovat alespoň cookie s informací o zdroji návštěvnosti (__utmz). Jinak se může stát, že nám vyhledávač přidaný v nastavení GA (v dalším příkladu jde o vyhledávač „search.cataluc.cz“) nerozpozná skript GWO, který dané nastavení nemá, a zdroj přepíše (když z předchozího odkazu přejdete na testovací stránku, nastaví nejdříve skript GA správně zdroj na vyhledávač „search.mrkef.net“, ale v zápětí jej přepíše měřicí skript GWO na vyhledávač „search“).

Já doporučuji druhou cestu. U ní je třeba zajistit zejména shodné nastavení domény a jejího hashování v hodnotách cookies. To je nutné učinit nejen pro oba měřicí skripty, ale také pro kontrolní skript GWO. Nejlépe se mi k tomu osvědčila definice globálních proměnných, které zná kontrolní skript GWO (_udn a _uhash) a jejich využití při nastavení obou trackerů – jenom pozor na to, že nastavení těchto proměnných budete muset udělat na každé stránce, nikoliv pouze na testovací.

Data o testu v Analytics

Co umí Website Optimizer?

Chcete-li vyhodnocovat experimenty pouze v GWO, jste značně omezení – měří totiž pouze konverzní poměr k jednomu definovanému cíli (Jaký podíl návštěv, který obsahoval testovanou stránku, obsahoval zároveň cílovou stránku?).

Co nás dále může zajímat?

Často ale potřebujeme data bohatší. Zajímá nás další chování návštěvníků po zhlédnutí testované stránky, vyhodnocování testu i podle dalších parametrů (Jaký je Bounce Rate testovaných variant? Má na test vliv i prohlížeč a jeho verze nebo rozlišení obrazovky?). Statisticky zdatnější experimentátoři mohou pak tato data využít také k ověření, že vyhodnocovaný konverzní poměr je statisticky nezávislý na způsobu volby skupin, kterým se obě varianty zobrazují.

Varianty integrace dat

Naším cílem je tedy dostat do GA informaci o tom, která z variant se danému návštěvníkovi zobrazila (pokud navštívil testovací stránku).

Tuto informaci můžeme zaznamenat buď do tzv. „User-defined Variable“ nebo do nových „Custom Variables“, které mají časem tuto jedinou proměnnou plně nahradit. Aktuálně má stále „User-defined Variable“ jednu podstatnou výhodu – lze podle ní filtrovat návštěvnost. Díky tomu můžete u vybraných testů vyrobit profily, které budou obsahovat pouze data o chování návštěvníků, kteří viděli některou konkrétní variantu. U „Custom Variables“ si budete muset vystačit s vyhodnocováním pomocí pokročilých segmentů, které mohou za určitých okolností zobrazovat zkreslená data (díky tzv. vzorkování).

Další nepříliš známou variantou může být ještě sledování testů prostřednictvím „Site Search“, kdy do GA místo URL adresy testované stránky zaznamenáte URL prodlouženou o dva parametry (např. test=IDTESTU a varianta=IDVARIANTY). Ale o tomto nastavení zase někdy jindy.

Shrnutí

Během psaní tohoto článku jsem narazil na spousty dalších možností a souvislostí, které se mi do jednoho postu jednoduše nevejdou. Je proto možné, že se tomuto tématu budu věnovat i nadále. Očekávám ale v budoucnosti razantnější změny ze strany Googlu a těším se, že se bez takovýchto složitostí nakonec obejdeme.

Všechny příklady, včetně finálního řešení najdete na rozcestníku, který jste již možná v rámci jednotlivých příkladů objevili.

Umění správně určit, na kterých měřitelných údajích přímo závisí úspěch online aktivit, je mnohem důležitější než zvolit ten nejlepší měřicí nástroj. Měření je navíc nutné upravovat, protože portfolio takových aktivit se neustále rozšiřuje společně s tím, jak se mění prostředí internetu – narůstá jeho populace, mění se způsoby komunikace, o své místo na slunci zápasí poskytovatelé obsahu, online nástroje, vyhledávače, katalogy, reklamní systémy i platformy pro sociální sítě.

Bod nula – současnost

Nástup nástrojů webové analytiky, které jsou poskytovány zdarma, přinesl většímu množství provozovatelů webů poznání o možnostech měření. Jedná se ale stále o poznání základní. Počty unikátních návštěvníků nejsou přesné – lidé často využívají více počítačů a mobilní telefony, nebo naopak jedno zařízení sdílí. Čas strávený na stránce nevypovídá o tom, zda se návštěvník po celou dobu stránce opravdu věnuje. Neodečítáme čas potřebný k jejímu načtení a čas strávený na poslední stránce návštěvy lze měřit jen velice obtížně. Návštěvy, počty zobrazených stránek nebo hůře měřitelné počty unikátních návštěvníků a čas strávený na stránce v naprosté většině případů nevypovídají nic o vaší úspěšnosti.

Pohled shora

Pokusím se celý pohled na věc zjednodušit prostřednictvím diagramu, který jsem si kdysi vytvořil, abych si uspořádal vlastní myšlenky.

Tento životní cyklus obsahuje zajímavé měřitelné kroky, na jejichž optimalizaci by nám mělo záležet.

Úroveň 0 – Internetová populace a externí vlivy

Na této úrovni lze získat nejméně přesná čísla, jelikož zde vyhodnocujeme hůře měřitelné ukazatele jako pokrytí cílové skupinypodíl návštěvnosti v rámci konkurenčních webů a zejména srovnání trendů návštěvnosti celkové internetové populace s trendy na našem webu.

Mezi externí vlivy zde řadím přesnost používaných měřicích nástrojůměřitelnost samotných cílů – i tyto veličiny bychom měli neustále zlepšovat.

Úroveň 1 – Akvizice návštěvnosti

Na této úrovni do hry vstupují peníze. Do placených zdrojů investujeme přímo (bannery, PPC…), nebo nepřímo (tvorba obsahu, SEO, aktivity v sociálních sítích…). Vždy je ale třeba soustředit se zejména na návratnost investic. Obrovskou výhodou pak je, že lze poměrně snadno všechny tyto aktivity měřit odděleně (segmentovat). Ukazatele, které popisují úspěšnost jednotlivých aktivit, mohou vypadat například následovně:

  • počet zpětných odkazů (tvorba obsahu),
  • počet unikátních frází (SEO),
  • cena za zákazníka (PPC).

Úroveň 2 – Konverze

Nejpřesnější čísla získáme z provozu vlastního webu, jelikož nad ním máme plnou kontrolu. Můžeme ovlivnit umístění měřicích skriptů, ukládání logů na serverech a další interní systémy.

Naše aktivity sloužící k akvizici návštěvnosti nemusejí vždy směřovat pouze ke snaze prodávat, ale také k posílení návštěvnosti za účelem zvýšení zisků z inzerce nebo posílení značky. Proto je třeba vyhodnocovat výkonnost těchto aktivit také odděleně.

Za nejdůležitější na této úrovni považuji zejména šíři vyhodnocování. Doporučuji vyhodnocovat například:

  • konverzní poměr k realizaci obchodu,
  • mikrokonverze (registrace uživatele, opt-in k příjmu novinkových e-mailů, komentář k produktu…),
  • čas do konverze (dny a počet návštěv),
  • spokojenost uživatelů:
    • počet zobrazených chybových stránek,
    • počet vyhledávání bez vyhovujících výsledků,
    • úspěšnost vyplňování formulářů,
    • počet stížností v klientském centru,
  • a je-li to aplikovatelné, pak i průměrnou výši objednávky, rychlost jejího vyřízení, analýzu celé cesty nákupem a mnoho dalšího.

Shrnutí

Každou aktivitu si lze v rámci diagramu představit jako jeden konkrétní proud nebo cyklus a pak ji analyzovat více do hloubky. Je možné se více zaměřit na schopnost ze zapojených uživatelů dělat zákazníky, zda mají aktivity v sociálních sítích vliv na míru zapojení uživatelů – hloubka této disciplíny zdaleka překračuje rozsah jednoho článku.

Na měření všech zde uvedených věcí neexistuje jediný správný nástroj. Navíc se zajištění měřitelnosti kvůli technickému řešení nebo nákladnějšímu nástroji nemusí vždy vyplatit. Pokaždé však usilujte o co nejširší a nejpřesnější možné měření, protože jedině tak dokážete úspěšnost svých online aktivit zvyšovat.

Update

Díky odezvě zde i na Facebooku jsem se pokusil ještě o další zjednodušení, které ale nic nemění na faktu, že na každé úrovni je třeba pečlivě segmentovat a analyzovat data do hloubky.

Vlastnosti: ,

Nějakou tu chvíli už se snažím nějak si v hlavě zformulovat, co pro mě znamená „vytvoření webu“. Úspěšného, fungujícího, oblíbeného, uznávaného, inovativního – jednoduše skvělého webu. Už jsem napověděl titulkem – je to o vhodném skloubení nepřeberného množství věcí. Paralel existuje hodně – výroba osobního vozu, stavba domu, příprava slavnostní večeře. Jelikož také velice rád vařím, pokusím se použít poslední příměr – dejme se tedy do toho.

Záměr

Nejprve je vhodné zvážit všechny vstupní informace. Některé nemusíme znát, ale zkusíme nějak odhadnout. Komplikovanější je situace zejména v tom, že většinou takový záměr formuluje zadavatel (zákazník).

Obsazení

Zajímá nás, pro jaké strávníky – kolik jich bude, jaké jsou jejich preference. Babička nemůže tučná jídla, přítelkyni posledně nechutnaly ryby a kamarádka nesnáší olivy. Nevíme-li to zcela jistě, musíme to odhadnout. Děti pravděpodobně neocení něco příliš ostrého. Vegetariáni nebo dokonce vegani nám situaci také neulehčí.

U webových projektů většinou příliš přesně uživatele neznáme. Na řadu přicházejí expertní odhady, průzkumy a testy, ale nakonec vždy uvažujeme pouze velice zjednodušený pohled.

Informace, které bychom ale určitě neměli opomenout? Věkový rozptyl, sociální úroveň, vzdělání, zkušenost s IT, komunikativnost, motivace, ochota sdílet informace, předpokládaný užitek z navrhovaného webu oproti dostupným alternativám a mnoho dalšího.

Kontext

Půjde nejspíš o večeři. Zvolíme počet chodů, uděláme si představu o výzdobě a celkové atmosféře. Je léto, k dispozici bude tedy sezónní ovoce a zelenina.

Do této kategorie patří: dostupné grafické manuály, zvyky a zaběhlé metody v daném segmentu, možnosti integrace, struktura trhu, metody propagace, využitelnost současné uživatelské základny nebo sociálních sítí, atd.

Prostředky

Stanovíme si nějaký hrubý rozpočet, dle něj určíme suroviny a nápoje. Zrevidujeme nádobí, připravíme zasedací pořádek. Rozvrhneme čas tak, abychom zvládli nachystat tabuli, postarat se o příchozí, servírovat jednotlivé chody a zároveň si také celou akci užít.

Sem spadají nároky na infrastrukturu, vstupní data (migrace, plnění, zálohování, recyklace, …), projektový management a rozpočet výroby a následné propagace produktu.

Produkce

Zde bych již všichni zůčastnění měli vědět, jak bude vypadat výsledek. Vždy se objeví nějaké komplikace, korektury a změny – jednoduše s nimi počítejme.

Ingredience

Z fáze záměru již známe základ, ale je třeba jej dopnit. Zrevidujeme, zda máme ke všem chodům potřebné základní suroviny, koření a dochucovadla. Dáme pozor, zda spolu vše ladí. Něco je třeba předpřipravit, něco budeme chtít čerstvé.

Zde přichází tzv. předimplementační analýza, kdy se snažíme zjistit do nejmenšího detailu, jak proběhne fáze následující. Snažíme se přesně popsat použité technologie, datové struktury, chování aplikace, uživatelské rozhraní, shromažďování statistik a dat o uživatelích, zpřesňujeme data z fáze záměru.

Konec této fáze bych nazval Mise en place.

Proces

Vzhledem k opravdu detailní přípravě by tato fáze měla proběhnout hladce, ale vše se vždy dokáže pěkně zkomplikovat. Zapomeneme na některou z ingrediencí, průběžně řešíme dopravu a změny hostů a navíc musíme ještě řešit dovolenou a nedodělky z práce. Všechno ale nakonec dopadne dobře.

Kvalita této fáze je zásadně závislá na kvalitě fází předešlých. V mnoha chytrých knihách o projektovém managementu se vždy dočítáme, jak závratné procento projektů nekončí v odhadovaných termínech ani v požadovaném rozsahu a kvalitě, ale lze to považovat spíše za nutnou součást celého procesu a snažit se o neustálé zlepšování.

Výstup

S úsměvem na rtu sledujeme, zda jsou všichni spokojení, servírujeme jednotlivé chody, doléváme nápoje. Na příští akci se dozvíme, zda všem chutnalo – přijdou zase.

Zde by se mohlo zdát, že práce končí. Ve skutečnosti ale přichází třešnička na dortu – zkušenost. Ano, zde totiž máme největší šanci sami se někam posunout – neopakovat chyby, poučit se, zlepšovat komunikaci a příště zazářit jasněji.

Několik postřehů na závěr

Nejzásadnějším bodem ve všech fázích je dle mého názoru komunikace mezi všemi účastníky procesu. Jak dokážeme zadavateli vysvětlit všechny možnosti, zaujmout ho a vhodně oponovat některým mylným představám a doporučit vhodnější řešení. Jak dokážeme komunikovat uvnitř týmu a zdůvodnit použití konkrétních postupů ač mohou být neoblíbené. Jak dokážeme prezentovat výsledky a komunikovat s médii a v sociálních sítích.

Také není bez důvodu, že kapitolám „Záměr“ a „Produkce“ jsem se věnoval vyváženě – možná se to nezdá, ale první z nich ač kratší bývá násobně složitější.

A jak vyrábíte weby nebo chystáte večeře vy?

Vlastnosti: ,

…aneb pozor na innerHTML v Exploreru

Vzhledem k tomu, že mi tahle peripetie ukradla dnes půl hodiny života, rozhodl jsem se, že ji zveřejním, třeba existuje někdo, kdo o ní neví a pomůžu mu.

Kapitola první – Microsoft je zase chytřejší než konkurence…

…a přesně ví, kam který element patří.

Proto vás nenechá poměrně oblíbenou JavaScriptovou funkcí innerHTML vložit některé věci, které nevyhovují standardům (nebo Exploreru?).

Příklad

Nelze vložit <form> do jiného <form>u. Obdobně to funguje například při vkládání blokových objektů do paragraphu atd.

Kapitola druhá – chybové hlášky, jak jsme na ně zvyklí

Kámen úrazu je ovšem to, jak se tato nevole prohlížečů z dílny výše zmíněného výrobce „vkládat něco někam“ projeví. Exception, která je v tuto chvíli vyhozena zní „Neznámá chyba při běhu programu“ („Unknown runtime error“) a pakliže neošetřujete většinu svého kódu konstrukcí try {} catch (error) {}, nedozvíte se ani to. Pak si zkuste něco ladit.

Vlastnosti: ,

Kolem každého softwarového projektu existuje už ve fázi přípravy mnoho lidí, z nichž každý opanuje vlastními požadavky a představou, jak by měl vypadat výsledek. Dle mého názoru je kritickým bodem schopnost tyto požadavky kategorizovat, prioritizovat a efektivně spravovat jejich vývoj v čase.

Číst zbytek příspěvku »

Vlastnosti: ,

Sleduj mě na Twitteru

Moje twíty

RSS Google Reader

  • Objevila se chyba, RSS zdroj je pravděpodobně mimo provoz. Zkuste to později.

RSS 417.cz

  • Objevila se chyba, RSS zdroj je pravděpodobně mimo provoz. Zkuste to později.