Blog - titulní stránka

8 tipů jak efektivně používat BigQuery

Nástroj BigQuery pro zpracování velkých datasetů je poslední dobou celosvětově čím dál tím populárnější. Není divu – díky propojení s Google Cloud Platform totiž nabízí efektivní cloudové řešení, které může co do rychlosti a možností škálování směle konkurovat celé řadě tradičních (relační databáze typu Oracle) i novějších (NoSQL, Hadoop/MapReduce) technologií.

BigQuery je totiž vlastně tou samou mohutnou platformou, kterou Google vyvinul interně pod názvem Dremel pro vlastní služby (včetně svého vyhledávače). Jak se zmiňuje Petr Šimeček ve svém článku, BigQuery je zřejmě také nejdostupnějším nástrojem, kterým si obyčejný smrtelník může jednoduše sáhnout na skutečná BIG data.

bq picture

Pro organizace využívající Google Analytics Premium je navíc připravená automatická integrace obou nástrojů a díky tomu je možné se dostat i k těm nejpodrobnějším datům až na úroveň jednotlivých hitů. Navíc lze data hned využívat, jelikož hned po integraci obou nástrojů získáte bezplatně spolu s měsíčním 500$ kreditem v BigQuery celých 13 měsíců vašich historických nesamplovaných webových dat.

Naučit se s tímto nástrojem není pro uživatele se základní znalostí SQL žádný problém. S BigQuery se můžete rychle a snadno zaškolit například v online tréninku na vzdělávacím webu CBT Nuggets. V tomto článku se proto podíváme na několik základních tipů a doporučení pro efektivnější práci s BigQuery:

  1. Regulární výrazy

    V rámci SQL syntaxe BigQuery je možné jednoduše používat regulární výrazy, podobně jako je tomu v Google Analytics. Především jde o příkaz REGEXP_MATCH(), který lze používat typicky v klauzulích SELECT i WHERE. Pomocí regulárních výrazů lze také vybírat části textových řetězců pomocí REGEXP_EXTRACT() nebo je alternovat za jiné řetězce použitím výrazu REGEXP_REPLACE().
  2. Používejte API

    BigQuery lze jednoduše ovládat přes uživatelské rozhraní, přesto vřele doporučuji naučit se ovládat BigQuery i Google Cloud Storage (slouží jako úložiště pro export a import dat) přes API. Některé funkce (například nastavení expirace tabulek) lze totiž ovládat výhradně touto cestou a přes UI se k nim nedostanete. K tomu je možné použít Google API explorer (v prohlížeči) nebo lépe příkazovou řádku pomocí připraveného SDK balíčku. Při každém API přístupu je ovšem nutné se opakovaně autentifikovat (OAuth 2.0), což je místy poměrně otravné. Nezapomeňte také API rozhraní aktivovat v rámci Google Developers Console.
  3. JSON i CSV

    Export i import dat je možný v obou formátech. V tabulkách můžete narazit na atributy s datovým typem “RECORD”, které obsahují vnořené (nested) záznamy. Při dotazování ovšem dochází defaultně k automatickému rozbalení do ploché struktury. Toho je možné pro komplikovanější kombinace více vnořených záznamů dosáhnout pomocí příkazu FLATTEN.
  4. Uložení dat je levnější než dotazování

    BigQuery je placené jako služba – proto zapomeňte na bezdůvodné vytahování všech dat (SELECT *), vybírejte jen to, co opravdu potřebujete. Nezapomeňte, že budete platit nikoliv za velikost výsledku, ale za to, jak velkou datovou strukturu svým dotazem propátráte. Tento objem zjistíte jednoduše kliknutím na zelenou “fajfku” v pravé části pod dotazovacím oknem. Používejte kešování (caching) často používaných dotazů (spuštění nakešovaného dotazu je zdarma). Z velkých datasetů si uložte ty nejpoužívanější data do samostatné tabulky. Storage je totiž relativně levný (aktuálně 0.02$ za 1GB měsíčně). Prvních dotazů se ale stejně bát nemusíte, jelikož máte měsíčně vyhrazenou kapacitu 1TB na dotazování zcela zdarma a nepovedené query (končící chybovou hláškou) se stejně jako ty nakešované nezpoplatňují.
  5. Prakticky uložené datasety

    To souvisí s bodem č.4. Místo jedné velké tabulky rozdělte vaše data do BigQuery na menší části. Doporučeným best practice je ukládání po časových jednotkách (např. 1 tabulka = jeden den) a/nebo dle obsahových rozdílů (např. 1 tabulka = 1 den/ČR). Joinovat lze i přes různé datasety, pokud tedy mají stejnou strukturu. Tabulky v jednom datasetu lze pak jednoduše spojovat i bez klauzule UNION prostým výčtem tabulek v klauzuli FROM (oddělené čárkou). Pokud je nechcete vypisovat, lze použít wildcards, které vám umožní elegantně sloučit libovolné množství tabulek (proto je také důležité je rozdělit a pojmenovat).
  6. Rozsáhle dotazy = EACH

    Pokud se snažíte joinovat velké tabulky, může dojít k tomu, že váš dotaz skončí chybovou hláškou. V takovém případě musíte využít funkci JOIN EACH, která sice zpomalí průběh query, ale s velkou pravděpodobností dotaz doběhne do konce. Data jsou uložena ve sloupcové struktuře, což znamená, že jednoduché dotazy trvají i nad gigantickými datasety jen pár vteřin. Pokud ale začnete tabulky joinovat, doba zpracování se může mnohonásobně navýšit. Podobná logika platí s klauzulí GROUP BY, pokud má agregovat velké množství různých unikátních hodnot. Proto použijte GROUP EACH BY. Pokud v těchto případech nepomůže ani EACH, zkuste váš dotaz na konci doplnit ještě omezující funkcí LIMIT. Pozor na počítání unikátních hodnot pomocí count(distinct XXX). V tomto případě je počet unikátních hodnot aproximován, tudíž je nepřesný! Alternativně je možné spočítat unikáty pomocí GROUP EACH BY nebo doplnit agregační výraz o volitelný číselný parametr, který udává počet řádků použitých pro odhad hodnoty např. count(distinct XXX, 100000).
  7. Používejte doplňkové funkce

    Vedle klasické SQL syntaxe a zmíněných regulárních výrazů je možné v BigQuery použít celou řadu funkcí, které vám zjednoduší život. Především se jedná o funkce, které umožňují pohodlný parsing URL a zpracování vnořených JSON záznamů (např. REPEATED COUNT). Mimo to je možné použít tzv. window funkce, které se odkazují na konkrétní “partitions” v datech (např. RANK funkce). V agregacích je pak možné využít pro vytvoření samostatné kategorie z null hodnot šikovnou funkci IFNULL.
  8. Konektory

    BigQuery je připravené k propojení s celou řadou nástrojů, které umožní významně rozšířit jeho použitelnost. Základem jsou jednoduché propojení do Google Docs spreadsheetů nebo Excelu, odkud lze psát dotazy i zobrazovat výsledky dotazů. Nechybí ale ani například připravený konektor pro Hadoop. Na BigQuery jsou ovšem připraveny i populární vizualizačně-analytické nástroje jako je Tableau nebo QlikView. Zároveň jsou k dispozici ETL nástroje pro streamování dat SQLstream nebo ODBC ovladače pro BigQuery s názvem Simba. Podrobný seznam nástrojů spolupracujících s BigQuery najdete zde.

Související články:

Post to Twitter  

Napište první komentář!

Universal Analytics – 10 příkladů pokročilých implementací

Dobře už víte, že implementace Universal Analytics je příležitost, jak posunout marketing a analytiku na zcela novou úroveň. Pojďte se tedy inspirovat, jak lze využít nové možnosti Universal Analytics na konkrétních příkladech z praxe. Vybírám pro vás ty nejlepší články z internetu. Jejich autoři představují hitparádu nejzajímavějších expertů na analytiku. Doporučuji sledovat na Twitteru!

1. Measuring Profit using Google’s Universal Analytics
Yehoshua Coren (@analyticsninja)

2. Using Offline and Online data to drive Google Analytics Remarketing
Justin Cutroni (@justincutroni)

3. YouTube Video Tracking with GTM and UA: A Step by Step Guide
Stéphane Hamel (@SHamelCP)

4. How to Track & Analyze Scroll Depth in Google Analytics
Joe Christopher (@joechristopher)

5. Email Tracking in Google Analytics with MailChimp
Jim Gianoglio (@jgianoglio)

6. E-mail open rate tracking with Google Analytics' Measurement Protocol – Demo
Mark Edmondson (@HoloMarkeD)

7. Universal Analytics: Weather As A Custom Dimension
Simo Ahava (@simoahava)

8. Physical Analytics Part 1: Tracking Your Home with Google Analytics
Nico Miceli (@nicomiceli)

9. How to Measure Google Glass into Google Analytics
Benjamin Mangold (@BenjaminMan­gold)

10. World Cup 2014 Data in Universal Analytics for the First Time Ever!
Allaedin Ezzedin (@AllaedinEzze­din)

Související články:

Post to Twitter  

Komentáře: 1

Proč přejít na Universal Analytics? Protože chcete!

Ta druhá odpověď na úvodní otázku, proč přejít na Universal Analytics, je delší a složitější. Nejen, že musíte přejít na Universal Analytics. Existuje mnoho dobrých důvodů, proč to budete chtít udělat – až si přečtete celý tento článek. Pouze s implementací nových měřících kódů Universal Analytics totiž můžete využít mnoho nových, pokročilých vlastností, které jsou uvedeny níže. Takže začínáme!

1) Enhanced Ecommerce

Pro eshopy je tím nejdůležitějším motivem okamžitého přechodu na Universal Analytics a nové implementace měřících kódů celá sada nových reportů pod označením Enhanced Ecommerce. Zatímco dříve jste v rámci ecommerce reportů viděli pouze samotný nákup, nyní lze měřit celou sekvenci událostí od zobrazení produktu v nějakém seznamu (např. výpis vyhledávání nebo kategorie), po zobrazení detailu produktu, přidání či odebrání z košíku, navazující kroky nákupního košíku až po samotnou transakci.

ecommerce

Lze tak konečně sledovat produkty od začátku až do konce a to na úrovni jednotlivých produktů, nebo agregovaně na úrovni až pěti produktových kategorií a dalších atributů, které lze měřit do vlastních dimenzí a metrik.

Součástí Enhanced Ecommerce a zároveň zajímavou novinkou v oblasti machine learningu v Google Analytics je také report tzv. related products (dostupný pouze skrz Reporting API, nikoliv reporty v UI). Ve zkratce jde o automatickou detekci produktů, které zákazníci často nakupují dohromady. Ukázkový příklad z tohoto reportu níže identifikuje vysokou korelaci mezi dvěma produkty z českého eshopu: testem na HIV a testem na syfilis.

Related Products

2) Custom dimenze a metriky

Možnost sbírat na webu specifická data, která se týkají pouze vašeho businessu, je jednou z oblastí, kde se odlišují pokročilé analytické nástroje od jednoduchých počítadel návštěvnosti.

Adobe Analytics (dříve Omniture) již dávno umožňoval sbírat 75 propů a 75 eVarů. Jsou to proměnné, do kterých lze ukládat jakákoliv vlastní data nad rámec toho, co je ve webové analytice považováno za standard (timestamp, URL, browser atd.). Typicky se tedy jedná o parametry produktu, stavové hodnoty webu a aplikací (např. parametry hledání, filtrů, košíku), kontextové informace (např. aktuální počasí) a data o zákaznících (např. demografické údaje). Jednoduše řečeno, pokud prodáváte hypotéky, zajímají vás jiné produktové parametry než vašeho kamaráda, který prodává zájezdy.

CD

Google Analytics před lety nabízel pouze jednu takovou vlastní proměnnou, tzv. user defined value. Poté přibylo 5 custom variables. A konečně s Universal Analytics máte dnes k dispozici 20 custom dimenzí a 20 custom metrik (v Google Analytics Premium je to 200 a 200).

Možnost sbírat vedle standardních dat z webu i vlastní data o produktech a zákaznících otvírá zcela nové možnosti pro reporting a analytiku. Web developera zajímá podíl browserů v návštěvnosti, proto mu stačí standardní webová analytika. Marketéra ale spíše zajímá, jací zákazníci chodí na web a o jaké produkty mají zájem. Universal Analytics lze naimplementovat tak, aby i marketér našel v reportech odpovědi na svoje otázky (např. Jaká je průměrná výše hypotéky podle jednotlivých akvizičních kanálů?).

3) Import dat

Vlastní dimenze a metriky nemusíte sbírat do Universal Analytics jen přímým voláním z webu. Například pokud máte bohatý produktový katalog, kde atributy jednotlivých SKU jsou relativně stálé (např. výrobce pračky) nebo jsou naopak některé údaje důvěrné (např. marže na produktu), můžete využít import dat.

Z webu lze odesílat jediný údaj v rámci Enhanced Ecommerce, a to SKU produktu. Ostatní atributy lze importovat do vlastních dimenzí a metrik skrz konfiguraci v administraci Universal Analytics. Výhodou je, že z klienta přenášíte naprosté minimum dat, tato data jsou „neviditelná“ pro kohokoliv, kdo by se chtěl šťourat ve vaší implementaci a můžete ušetřit práci IT, protože vše si obsloužíte sami z administrace. Importovat data lze mimo již zmíněné produkty také ke kampaním, uživatelům, stránkám webu a lze takto např. i refundovat ecommerce transakce.

Data import

4) Measurement protocol

Doslova revoluční inovací Universal Analytics je tzv. measurement protocol. Je to vlastně způsob, jak lze posílat data do Universal Analytics přímým voláním serverů Google skrz HTTP requesty. To znamená, že nepotřebujete javascript a measurement protocol tak lze používat defacto z jakéhokoliv zařízení nebo aplikace. Navíc lze takto data předávat dávkově a asynchronně, tj. mimo interakci uživatele.

Tento princip se používá při sběru dat v mobilních aplikacích, protože ty lze používat i bez připojení k internetu. Data se tak ukládají lokálně v mobilním zařízení a v online režimu se pak dávkově přenesou na servery Google.

Stejně tak synchronizace dat z firemního CRM může být díky measurement protocolu realizována v denních dávkách. Párování dat je zajištěno skrz identifikaci anonymního návštěvníka (ClientID) nebo autentifikovaného uživatele (UserID). Takto lze do Universal Analytics posílat např. offline konverze, kdy na webu vzniká jen nezávazná poptávka a skutečný prodej se realizuje až po podpisu smlouvy.

Jako poslední reálný use case stojí za zmínku sběr dat v aplikacích jako je např. internetové bankovnictví nebo checkout v eshopu. V tradičním způsobu, který využívá javascript, putují data cestou od vašeho serveru přes browser uživatele na servery Google. Browser uživatele je v tomto případě nejslabší článek. Díky measurement protocolu lze zajistit přímý přenos citlivých dat mezi vaším serverem a servery Google, a máte tak naprostou kontrolu nad obsahem i přenosem těchto dat.

Sběr dat z elektroměrů, kávovarů, chytrých brýlí a všech možných senzorů je – byť již zcela možnou a funkční – zatím spíše experimentální záležitostí.

5) UserID

Celá plejáda již popsaných inovací v Universal Analytics se pomalu začíná sbíhat dohromady. Další v řadě je totiž tzv. UserID. Je to způsob, jak párovat jednotlivé návštěvy, události a další data ke konkrétnímu autentifikovanému uživateli. K tomuto uživateli pak můžete sledovat vlastní dimenze a metriky (scope = user) a to přímo z webu díky knihovně analytics.js, z mobilní aplikace skrz mobilní SDK (Android a iOS), importu dat nebo i measurement protocolu. Můžete své uživatele sledovat v čase, napříč zařízeními i online a offline. Zapomeňte na webovou analytiku, jak ji nyní znáte. Tohle je začátek zcela nové dimenze sledování a chápání tzv. customer journey.

Multi-Channel Funnel (MCF)

6) Remarketing

Konečně, když už budete mít tolik dat k jednotlivým uživatelům, přijde čas je nějak využít – personalizovaným cílením reklamního sdělení ať už v banneru, na webu, v emailu nebo jiném outbound kanálu. Universal Analytics přimo podporuje (zatím?) ten první případ. Už dnes můžete vybrat segment lidí (tzv. publikum), který je pro vás zajímavý a chcete ho znova oslovit skrz remarketing. Například prodejce hypoték se speciálně zaměří na segment lidí, kteří si na webu spočítali nadprůměrně vysokou hypotéku.

Pojďme ale dále. Pokud již dnes realizujete v CRM nějakou formu prediktivního modelování (lead scoring, next best offer apod.), můžete tuto predikci přece sdílet do Universal Analytics! A co je v Universal Analytics, nad tím lze definovat segment a ten zacílit v remarketingu. Pokud vám tedy lead scoring identifikuje segment uživatelů, u kterých vychází nízká pravděpodobnost nákupu, můžete do banneru přihodit nějakou extra incentivu. Banner se pak bude točit skrz Adwords v GDN nebo skrz Doubleclick kdekoliv v RTB prostoru.

predictive remarketing

7) _____________­_________

Napište si do komentářů o další funkce, které vám v Google Analytics ještě chybí. Než naimplementujete Universal Analytics a výše uvedené, je dost dobře možné, že Google už stačí proměnit vaše přání ve skutečnost. To tempo rozvoje a inovací je neskutečné a můžu prozradit, že v roce 2015 se máme zase na co těšit!

Pokud chcete využívat výhody Universal Analytics co nejdříve, ozvěte se nám ještě dnes. Nebo si počkejte na další pokračování – příště vám ukážu odkazy na nejzajímavější popsané implementace, které využívají některou z výše uvedených inovací v Universal Analytics.

Související články:

Post to Twitter  

Napište první komentář!

Chytrý e-mailing: Jak utržila Lékárna.cz za 1 den 350 000 Kč?

E-mailing je bezesporu jeden z nejefektivnějších online marketingových kanálů. Dnes vám ukážeme, jak být skutečně efektivní v poměru vynaloženého úsilí a dosažených výsledků. Tak tedy, jak se nám podařilo za pouhý 1 den práce přinést jednomu z našich klientů na tržbách 350 000 Kč?

 

„Potřebujeme udržet zákazníky!“

Lékárna.cz je jedním z našich klientů, kterým poskytujeme chytrý e-mailing od A do Z – od návrhu a plánování strategie a cílů, přes implementaci, realizaci pravidelných kampaní, tvorbu UX návrhů či grafických newsletterů, až po A/B testování, analytiku, vyhodnocení a opětovné testování. Podporujeme iterativní vývoj projektu!


A co víc, s Lékárnou je radost pracovat. Za poslední rok udělala (nejen) v rámci svých online procesů takový pokrok, že by jí na českém trhu mohl kdekdo závidět. Ani nás proto v Optimics nepřekvapuje, když sami přichází s návrhy na zefektivnění kampaní. A nejinak tomu bylo i nedávno, kdy jsme od Lékárny dostali jasné zadání: „Potřebujeme udržet zákazníky!“. Tak jsme se dali do práce.

O den později… jsme spustili první retenční kampaň.

„Pokud nenakoupí u vás, nakoupí jinde“

Jistě netřeba připomínat, že náklady na získání nových zákazníků jsou několikanásobně vyšší než náklady na udržení těch stávajících. Retence je tedy jedním z ideálních prostředků, jak generovat dlouhodobý zisk i tam, kde vaše konkurence strádá (anebo ani neví, že strádá). Rovnice je pak poměrně jednoduchá: nevyužíváte retenční kampaně = váš bývalý zákazník nakupuje jinde.


S nástrojem pro chytrý e-mailing jsme u nás v Optimics schopni například:

  1. doručit kteroukoliv kampaň správným cílovým skupinám, a to segmentovaně
  2. načasovat rozeslání e-mailu dle chování zákazníka – jeho nákupní historie, behaviorálních dat či zapojení na webu
  3. naplánovat odeslání kampaně na každý den (nebo dle jiného cyklu), a to vždy pro daný segment
  4. využívat personalizace a dynamického obsahu e-mailů dle zákazníka. Oslovovat příjemce jménem, zobrazit jeho nejčastěji kupovaný produkt či jedinečný slevový kód, doručit kreativu e-mailu dle pohlaví nebo věku příjemce – to je jen začátek.
  5. realizovat i specifické kampaně, které každý den automaticky generují menší tržby. V ročním součtu jde ale již o velká čísla!
  6. testovat, testovat a testovat – A/B testování a vyhodnocování kampaní, incentiv, předmětů či kreativ je u nás na denním pořádku.
  7. automatizovat rozesílku e-mailů a jejich logiku. Kampaň nastavíme jednou a následně již běží zcela sama (čtěte: generuje tržby bez vašeho úsilí).

Se svolením Lékárny jsme pro vás připravili ukázku naší práce. Chceme vám odkrýt karty, ba dokonce vyložit kanastu! Chceme vám ukázat, jak pracujeme; jak jsme při návrhu e-mailové retenční kampaně postupovali; jaké nástroje používáme a jak dlouho nám realizace takové kampaně od zadání po spuštění trvá.

Pro zjednodušení můžeme přípravu retenční kampaně rozdělit do tří základních kroků:
  1. stanovení strategie a cíle,
  2. realizace šablony e-mailu (kreativa, textace, incentiva…) a segmentu,
  3. příprava kampaně v e-mailingovém nástroji.
První dva kroky nejsou pro účely tohoto článku stěžejní, přesto alespoň okrajově nastíníme náš postup.


Bod jedna byl nalinkovaný. Cílem bylo zachytit nového zákazníka, který na Lékárna.cz nakoupil poprvé a delší dobu neuskutečnil další objednávku. Délka časového rozmezí mezi objednávkami bezpochyby závisí na mnoha faktorech – životním cyklu zákazníka a produktů (služeb), segmentu zákazníků, ročního období, počasí… Vzhledem k obchodnímu segmentu Lékárny jsme vyčkávací lhůtu pro začátek stanovili na 35 dnů od poslední (resp. první) objednávky zákazníka. Průběh kampaně je tedy následující: zákazník poprvé nakoupí a déle jak měsíc neučiní další objednávku → odeslat retenční e-mail.

„Probuďte dřímající zákazníky, nebo usnou“

Druhý krok jsme měli ještě o něco jednodušší – využili jsme kostru stávající e-mailové šablony Lékárny, upravili textaci a její tón, a doplnili incentivu. Ostatně, komunikujeme se zákazníkem, který delší dobu nenakoupil a má proto svůj důvod. Chceme mu dát najevo, že je pro nás důležitý (a to je!) a možná jej chceme motivovat: slevou, dárkem, pozorností. Výběr správné incentivy je kapitola sama o sobě; pro ukázku si však můžeme pomoci personou – typickým zástupcem cílové skupiny / cílových skupin.


Jak bychom mohli personu pro účely retenční kampaně charakterizovat?
Marie Nováková, 31 let, matka ročního dítěte, na mateřské, miluje svou rodinu, ale zároveň si ráda užívá život; jezdí na kole, občas vyrazí s manželem do kina a když jí výjimečně vyjde čas, pečuje i o svůj zevnějšek, aby byla i nadále krásná. Jako matce jí ale na sebe příliš času nezbývá. Když nakupuje, objednává ve velkém pro celou rodinu, aby ušetřila za dopravu.

Co myslíte – potěší Marii více, když jí dáme na druhý nákup 10% slevu, dopravu zdarma, nebo k objednávce zdarma přibalíme testovací vzorek nového parfému Gucci?

Už vidím les rukou! Pro každý motivátor jistě najdete plusy a mínusy, ale asi se shodneme, že jednoznačný vítěz se hledá stěží. A/B testování, které máme tolik v oblibě, vám pomůže v identifikaci atraktivity incentivy s vysokou mírou pravděpodobnosti.

Máme stanoven základ strategie, cíl, finální kreativu kampaně včetně textace i lákavé incentivy. Míříme do finále. Třetím krokem otevíráme náš e-mailingový nástroj Maxemail z dílny britských Emailcenter UK. Maxemail nám pomůže uskutečnit vaše retenční sny – podívejte, jak je to jednoduché:

sablona

Abychom mohli spustit retenční kampaň, vytvoříme si recurring e-mail a naimportujeme připravenou HTML šablonu. E-mail zároveň doplníme o prvky personalizace – oslovení křestním jménem zákazníka v těle e-mailu i předmětu, a slevový kód pro uplatnění motivátoru. (Na obrázku pouze výřez šablony.)

preview_email

V Maxemailu ihned vidíme šablonu naplněnou reálnými daty ze zákaznické databáze. Kontrola vizuálu e-mailu či prezentované incentivy pro kteréhokoliv konkrétního zákazníka nemůže být jednodušší.

segment

Retenční e-mail máme připraven. Nyní nastavíme soubor pravidel, která definují segment zákazníků, jimž chceme retenční kampaň zasílat. Stanovili jsme si pravidla „nakoupil poprvé před 35 dny“, pamatujete? K naplnění pravidel nám stačí dvě kritéria – datum poslední objednávky bylo přesně před 35 dny (relativně) a počet objednávek se rovná jedné.

nastaveni_segmentu

Vytvořený segment přiřadíme k našemu e-mailu – Maxemailu tím jednoduše říkáme „odesílej retenční kampaň pouze námi definovanému segmentu zákazníků“, nikomu jinému.

recurring

Čeká nás poslední krok – nastavit pravidelné opakování kampaně s denní frekvencí. Chceme přeci každý den oslovit zákazníky, kteří před 35 dny nakoupili poprvé a od té doby nenakoupili. Automatizace je dalším prvkem, bez kterého bychom se neobešli. Průběžná rozesílka kampaně se řídí dle kritérií, která definujeme jen jednou – odeslání retenčního e-mailu tedy probíhá automaticky a navíc přesně tehdy, kdy je to relevantní pro zákazníka. Kampaň je připravena. Za zvuku fanfár už jen stačí stisknout tlačítko Set to Approved…

Stačilo 1 den práce na realizaci kampaně, která vygenerovala tržby 350 000 Kč. Zatím. Každý den se automaticky odešle retenční kampaň – bez jakékoliv další práce či vašeho úsilí. Oslovíte zákazníka, kterého byste jinak ztratili. Zákazníka, který jinak nakoupí u konkurence.

I vy můžete realizovat stejnou kampaň. Nebo dokonce celou sérii kampaní! Stačí si vybrat správného partnera na chytrý e-mailing. :-)

 

Související články:

Post to Twitter  

Komentáře: 5

Jak na rozhodovací stromy

K čemu jsou rozhodovací stromy dobré?

Rozhodovací stromy jsou rozšířeným a užitečným nástrojem strojového učení určeným pro úlohy klasifikace a predikce. Princip klasifikace funguje tím způsobem, že ke všem existujícím datovým záznamům (zákazníkům, návštěvníkům, produktům, dnům, …) zvolíme jeden cílový atribut (label), zpravidla v binární podobě Ano / Ne (1/0) – například zda od nás zákazník odešel nebo zda u nás stále nakupuje. Rozhodovací strom se poté “naučí”, jaké kombinace ostatních zákaznických atributů v datech (např. čas od posledního nákupu, věk, preferovaná produktová kategorie, počet nákupů atd.) vedou k tomu, zda nás zákazník opustil nebo ne.

Strom naučený na historických datech lze poté jednoduše využít k predikci toho, kteří z našich stávajících zákazníků s nejvyšší pravděpodobností odejdou a můžeme se tomu pokusit včas zabránit (například dobře mířenou slevou, telefonátem atd.). Varianty tohoto algoritmu umožňují klasifikovat nejen binární veličiny, ale také cílové atributy s více než dvěma kategoriemi (tato varianta se nazývá C4.5), případně dokáží predikovat i spojité veličiny (v tom případě mluvíme o regresních stromech).

V tomto návodu se podíváme na to, jak si takový strom jednoduše připravit sami. Zde je pro představu několik možných využití:

  • včasné odhalení odcházejícího zákazníka
  • detekce spamu pro příchozí emaily
  • nalezení podezřelých bankovních transakcí
  • predikce budoucí platební (ne)schopnosti klientů
  • identifikace zákazníků se zájmem o prémiové produkty
  • odhad konverzní míry nových produktů
  • určení kombinace faktorů, které mají klíčový vliv na sportovní výkon

Proč zrovna stromy?

Strojové učení nabízí řadu dalších a komplexnějších algoritmů pro klasifikaci a predikci proměnných. Proč tedy rozhodovací stromy?

  1. Jsou ideální pro začátečníky v oblasti strojového učení. Nevyžadují žádnou speciální přípravu dat (např. převod na vektory) a zpracují vedle sebe jak kategorické tak číselné proměnné. Stromy jsou poměrně snadno schopné nalézt i nelineární vztahy mezi vstupními atributy.
  2. Výsledkem je jednoduchý graficky znázorněný strom, který lze zpravidla interpretovat běžnou řečí nebo ukázat na prezentaci a vysvětlit managementu. Většina ostatních algoritmů pracuje spíše na principu black-boxů a ani jeho tvůrce často netuší, jak model k výsledné klasifikaci vůbec došel.
  3. Stromy si samy určí, které atributy jsou opravdu klíčové a na kterých naopak nezáleží a je vhodné je z modelu vypustit. To je obzvlášť šikovné, pokud máte desítky nebo stovky různých atributů ke každému záznamu. Ostatním algoritmům je potřeba ty správné atributy předvybrat.

Co k tomu budeme potřebovat?

Především budeme potřebovat strukturovaná a pročištěná data. Každý řádek vstupních dat by měl reprezentovat jednu unikátní entitu (zákazníka, produkt, webovou stránku, den, atd.), každý sloupec nějaký atribut této entity (počet nákupů, útrata, konverzní míra). Hodnoty atributů by neměly být příliš monotónní (absolutní převaha jedné hodnoty) a neměly by obsahovat příliš prázdných (NULL) hodnot. Je vhodné očistit data také o extrémní hodnoty, ale vůči ním jsou naštěstí rozhodovací stromy relativně odolné.

Dále budeme potřebovat nástroj, který umožňuje vymodelování stromů. Vedle běžných komerčních nástrojů (jako např. SPSS) lze doporučit i nástroje s volnější licenční politikou jako jsou například RapidMiner, R nebo Weka. V dalších příkladech budeme používat RapidMiner ve verzi 5.3.

Jak vymodelovat ten nejlepší strom?

Nástroj RapidMiner umožňuje vytvořit strom pomocí procesu sestávajících z dílčích úloh (operátorů), které se pak pomocí linek, reprezentujících datové toky, spojují dohromady. Pomocí prvního operátoru Import XLS načteme data, v našem případě z Excelu. Pomocí import wizardu určíme, co bude výsledná binární proměnná (label) a pro ostatní atributy určíme, zda jsou kategorické (polynominal) nebo číselné (numerical).

Poté vložíme operátor Optimization, který zajistí, že se algoritmus spustí několikrát v různých variantách a nakonec bude automaticky vybrána ta nejlepší kombinace. Operátor spojíme s importem dat a rozklikneme, abychom mohli určit, co bude obsahem optimalizačního procesu.

P1 proces 1

Dovnitř vložíme operátor X-Validation a ten opět proklikneme. Do něj pak a na levou stranu vložíme modelovací algoritmus (Decision Tree) a na pravou stranu operátory Apply model a Performance a vše dle obrázku spojíme. Tím jsme zajistili to, že část dat bude rezervovaná pro otestování kvality modelu. Opět vše spojíme a všechny výstupy z operátoru Optimize napojíme na pravou stranu, reprezentující ukončení procesu.

P2 iner proces 2

Proces je připraven, ale před spuštěním je u některých operátorů potřeba pomocí dvojkliku a následném nastavení v pravém menu ještě dospecifikovat některé parametry. Konkrétně v operátoru Decision Trees nastavíme Criterion na “Gain ratio”. Nastavení minimal size of split, minimal leaf size a maximal depth souvisí s velikostí vašeho datasetu (počtu záznamů). Čím více záznamů, tím mohou být tyto hodnoty vyšší.

Jako poslední nastavíme ještě operátor Optimization tak, aby vyzkoušel různé varianty parametrů minimal gain a confidence. Počet validačních kombinací ovlivní to, jak dlouho bude modelování trvat. Pak už nezbývá nic jiného, než model spustit.

P3 optim

Jak poznat kvalitu modelu?

První, co po dokončení modelování uvidíte, je výpis s informacemi o kvalitě modelů (záložka Performance vector). Hodnota accuracy zjednodušeně řečeno vypovídá o celkové kvalitě modelu. Čím vyšší procento, tím lépe. Pozor ale na příliš vysokou hodnotu blížící se 100%. Takhle vysoká hodnota naznačuje, že strom je tzv. přeučený – to znamená, že sice perfektně klasifikuje data, na kterých se naučil, ale pravděpodobně nebude příliš dobrý k predikci v nových datech.

Dále vidíme čtyřpolní tabulku, tzv. confusion matrix, která podrobněji ukazuje, jak se moc se při validaci strom osvědčil v jednotlivých předpovědích. Levé horní a pravé dolní pole ukazují úspěšně klasifikované (1/0) záznamy. Levé dolní políčko ukazuje počet tzv. false positives, tedy záznamy, které model chybně vyhodnotil jako kategorii 1 (např. zákazník odejde), zatímco pak ve skutečnosti byl stav 0 (neodešel).

P4 marix bad

V pravém horním políčku naopak vidíte false negatives, což jsou případy, které model vyhodnotil jako 0 (zákazník neodejde) a přitom byly ve skutečnosti pozitivní (odešel). Z uvedeného případu vyplývá, že v různých úlohách můžou mít oba druhy chyb odlišnou důležitost. Pokud je pro nás odchod zákazníka významná finanční ztráta, budeme se snažit, aby model minimalizoval počet false negatives (na obrázku červeně). Chyba false positives pak není tak kritická, jelikož to znamená, že naše obchodní oddělení například častěji zavolá někomu, kdo ve skutečnosti nechce odejít, což v případě dostatečných kapacit není takový problém jako ztráta zákazníka, kterého model neodhalil.

Pokud chcete minimalizovat jen jeden druh chyby, je občas potřeba mírně upravit modelovací proces. Model je zpravidla úspěšnější v tom typu chyby, pro který má více příkladů (v našem případě je několikanásobně více zákazníků, kteří neodešli – pro ty je model přesnější a proto dělá poměrně dost false negatives chyb, kterých se chceme vyvarovat). Data vedoucí z operátoru import je proto potřeba nejdříve rozdělit na pozitivní a negativní záznamy. Poté z té množiny, která dominuje v množství záznamů (v našem případě negativní) potřebujeme náhodně vybrat jejich podmnožinu tak, aby byl počet pozitivních i negativních záznamů při modelování srovnatelný (např. 50 na 50).

P5 sampling

Po vybrání reprezentativního vzorku pomocí operátoru Sample už stačí jen data opět spojit (operátor Join) a ověřit si, zda model podává skutečně lepší výsledky.

P6 matrix good

Jak interpretovat rozhodovací strom?

Samotná interpretace a “čtení” rozhodovacího stromu je poté už intuitivní a zábavná činnost. Najdete jej na záložce Tree ve výpisu výsledků. Strom v každém spoji obsahuje jeden konkrétní atribut a šipky s jeho odlišnými hodnotami popisují rozhodovací logiku. Strom se čte od shora dolů (od kořene k listům) a atributy, které se nacházejí v jeho vrchních vrstvách, jsou zpravidla těmi nejlepším prediktory. Každá cesta stromem končí v jednom z listů, který určuje, zda je výsledkem spíše pozitivní (červená) nebo negativní hodnota (modrá). Výška barevného sloupce pak naznačuje, jak velkého podílu ze všech záznamů se tato kombinace týká.

Na obrázku níže vidíte jednoduchý strom sestavený z mých osobních dat. Klíčovou proměnou je zde moje subjektivní spokojenost s daným dnem (1) nebo nespokojenost (0) – dny zde reprezentovaly jednotlivé záznamy. Začátek stromu ukazuje, že klíčovým faktorem spokojenosti je dobrá fyzická kondice. Ve zdravém těle zdravý duch a proto pokud se fyzicky cítím mizerně, spokojený rozhodně nejsem. Pokud je fyzická kondice dobrá, tak rozhoduje délka střední fyzické aktivity (chůze) v průběhu dne. Pokud nachodím více než 115 minut, tělo mě odmění dávkou endorfinů a to opět vede k mé spokojenosti.

Naopak pokud je čas chůze kratší a den předtím jsem vypil více než 10 alkoholických jednotek (přepočteno na malá piva), tak se ozve kocovina a spokojenost je ta tam. Pokud netrpím ani kocovinou, tak do hry vstupuje množství vyšší fyzické aktivity, jako je například běh nebo rychlá chůze do schodů. Pokud je tato aktivita vykonávána nejméně necelé půl hodiny denně a kvalita spánku byla vysoká, cítím se dobře. Naopak při nedostatečné kvalitě spánku vysoká fyzická zátěž může vést k rychlému vyčerpání a následné nespokojenosti. Tímto způsobem můžete snadno dočíst i zbytek stromu.

P7 finalni strom2

Sestavit rozhodovací strom, který dává i při interpretaci smysl selským rozumem, bývá opravdu radost. Lidé často namítají, že tím mnohdy odhalíte vztahy, které bývají předem intuitivně jasné (např. korelace kocoviny a nespokojenosti). Na druhou stranu jsou tyto vztahy podepřeny daty a nikoliv subjektivním míněním. Lze ovšem objevit i překvapivé kombinace vztahů, které už tak intuitivní nejsou (např. vztah náročné aktivity a kvality spánku). A navíc vám strom ukáže i konkrétní hodnoty, při kterých dochází k větvení (např. více než 10 alkoholických jednotek).

Cílem tohoto článku bylo ukázat, že sestavení rozhodovacích stromů nemusí být nutně jen záležitostí odborníků a že to může být dokonce zábava.

Příště se podíváme na to, jak využít rozhodovací stromy k analýze webových dat z Google Analytics.

Post to Twitter  

Napište první komentář!

Proč přejít na Universal Analytics? Protože musíte!

Pokud používáte Google Analytics, jistě víte o nové generaci tohoto analytického nástroje, tzv. Universal Analytics. Možná se ale ptáte, co přináší Universal Analytics nového a proč byste se tím měli zabývat. Existují na to dvě odpovědi.

Ta první odpověď je krátká a jednoduchá. Protože všechny účty Google Analytics musí přejít na novu platformu Universal Analytics. Vy také!

Pro úspěšnou migraci z Google Analytics na Universal Analytics musíte provést dva kroky (v tomto pořadí):

1. Jednoduše zmigrovat účet do Universal Analytics v administračním rozhraní.

Pokud to neuděláte sami, je velice pravděpodobné, že Google to již udělal za vás v rámci tzv. auto-transferu. První na řadu v auto-transferu jdou menší weby, velké weby s milionovou návštěvností jsou seřazeny až na konci fronty.

2. Změnit kódy na webu ze staré knihovny (ga.js nebo dc.js) na novou knihovnu (analytics.js).

Tento krok je náročnější, protože se mění kompletní zápis volání měřících kódů. Každou pageview, event nebo ecommerce transakci bude nutné přepsat do nové podoby. V závislosti na velikosti vašeho webu a složitosti implementace se může jednat i o poměrně rozsáhlý projekt, který bude vyžadovat kapacity IT.

Pokud budete chtít spolu se změnou kódů implementovat i Google Tag Manager (doporučujeme!), tak je potřeba počítat i s náklonností IT, kterou si marketing v některých větších organizacích musí vyjednat.

Po dokončení auto-transfer procesu máte cca dva roky na změnu kódů – poté již měření se starými kódy nebude fungovat! Velkým organizacím proto doporučujeme začít plánovat migraci na Universal Analytics co nejdříve.

V závislosti na tom, zda jste provedli tyto kroky, běží váš účet momentálně v jednom z těchto režimů:

1. Vše při starém (Google Analytics + staré kódy)

GA-classic

2. První krok máte za sebou (Universal Analytics + staré kódy)

GA-universal

3. Hotovo! (Universal Analytics + nové kódy)

Nebo ne? Změnit jenom měřící knihovnu a přepsat stávající měřící kódy je jen začátek – počkejte si na pokračování v dalším článku na tomto blogu. Dozvíte se tu druhou odpověď!

Související články:

Post to Twitter  

Napište první komentář!

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