Jak jsem si hledala práci

Na jaře jsem strávila několik měsíců hledáním nové práce. Byla jsem ve výběrových řízeních ve víc než deseti firmách, a to většinou ve dvou až třech kolech, přičemž téměř vždy výběrové řízení zahrnovalo samostatnou práci, která zabrala někdy i několik dní.

Dobře to dopadlo, nakonec jsem si vybírala ze tří nabídek (což bylo na tom možná nejhorší). A jsem přesvědčena, že jsem vybrala velmi dobře.

Už proces, který vedl k tomu, že jsem se rozhodla začít novou práci aktivně hledat, stojí za zmínku. Ono se to vždycky postupně krystalizuje, když člověk spěje k momentu, kdy je mu jasné, že musí změnit práci. Já nemám tendenci příliš lpět na daném pracovním místě, nikdy jsem neměla své kolegy za kamarády, nikdy jsem na jednom pracovním místě nebyla déle než dva roky. Ale i tak je to proces podobný rozchodu s partnerem.

Neustále jsem hledala světlé momenty, pro které mi stojí za to zůstat. Pohodlnost taky jistě hraje roli. Ale když jsem od Nového roku byla nonstop na home office a v půli února viděla, že se to pravděpodobně v dohledné době nezmění, začala jsem být víc a víc utvrzena v tom, že to chce změnu.

Představy…

Vůbec jsem nepochybovala, že práci snadno a rychle najdu. Nabídek na datové analytiky a analytičky je tolik, navíc mi s hledáním pomáhaly Czechitas. Moje požadavky byly jasné – normální kancelář, relativně dostupná, normální lidi, normální práce (jasný, ne?). Hlavně už nechci sedět doma.

Jenomže já byla jak “DIY starter kit” umím od každého něco, od Excelu po python, databáze, čištění dat, vizualizace v různých nástrojích, trošku data science, trošku projektového řízení atd. Takže jsem ideální tvárná hmota do každé firmy, když si sedneme lidsky, zcela jistě se na tom dá leccos stavět. Všem přeci jde hlavně o to, aby člověk sedl do týmu, hard skills se doučí postupně, hlavně aby byl učenlivý a motivovaný.

No jo, ono to tak ale úplně není. Nevím, jestli jsem si to vysnila špatně, nebo to je model funkční jen “na Západě” nebo v extra vizionářských a progresivních firmách. Každopádně mě v průběhu všech těch pohovorů čekala řada zkoušek jako na vysoké (ponižování included), spousta pitomých otázek (nevadí vám pracovat s introverty?) a spousta manažerů, který tak nějak někoho potřebujou, ale vlastně neví koho, na co a za kolik.

Ono taky není datový analytik jako datový analytik, pod tím se totiž schová téměř cokoli. Od vyplňování Excelů, přes tvorbu reportů v nejrůznějších nástrojích, vizualizace, digitální marketing, databáze, datové modelování, programování, čištění dat a samozřejmě tajemné data science (rozuměj statistika) až po ještě tajemnější machine learning, deep learning a umělou inteligenci.

… versus realita

Takže když se vrátím k těm mým požadavkům (normální lidi, normální kancl a normální práce), vidím, že s tímto člověk na pohovoru neoslní. Ale jak to mám vědět po tři čtvrtě roce, kdy dělám od každého trochu ale nic pořádně? Proto jsem si tím zdlouhavým procesem musela projít a hodně mi to dalo.

Zaprvé jsem se dobře zorientovala v tom, jak (převážně) české firmy k datové analýze a náboru nových zaměstnanců přistupují. V první řadě je to všudypřítomný švarcsystém. Těžko hádat, jestli byla dřív slepice nebo vejce, jestli to firmy požadují, protože IT experti jsou na tu volnost a menší daně zvyklí, nebo samy firmy chtějí takto ušetřit a nepřebírat odpovědnost za své “zaměstnance”. Každopádně se tento systém v IT obecně udržuje a je normou do té míry, že i firmy, které chtějí zaměstnávat legálně řeknou, že vám dají o ty daně nižší výplatu, protože máte přece být rádi, že jsou fér.

Další poznatek je v tom, že firmy mají mraky dat, nechtějí moc utrácet za nástroje, které by jim pomohly s nimi nakládat a ani moc nevědí, k čemu by se ta data mohla využít a zhodnotit. Takže chtějí člověka, který jim to řekne a udělá to v trial verzi, sdílené licenci, nebo to prostě napíše v Pythonu, protože je zadarmo. Já jsem v tomto měla plusové body, protože mám v CV Python. Ovšem jsem příliš juniorní na to, abych vystavěla celý systém a napsala robustní skripty.

Mimochodem to byl další můj požadavek – už nechci na všechno být sama, vymýšlet kolo, které je už dávno vymyšlené a trávit hodiny a dny a týdny hledáním řešení po internetu. Chci mít od koho se učit.

A za druhé už vím, že musím prostě lépe vědět, co chci. Ono to nejen pomůže mně při hledání práce, ale i druhé straně to může pomoci přijít na to, co potřebuje. Mít vlastní vizi, kterou se budu řídit. Měla by být konkrétnější, ale ne zas moc, protože pak se špatně hledá ta odpovídající pozice.

Taky si myslím, že je dobré tuhle vizi promýšlet průběžně, postupně ji zpřesňovat a využívat ji ve stávajícím zaměstnání, další hledání v budoucnu tak bude určitě zas o něco příjemnější (ne, nemám to v dohledné době v plánu).

A ještě jeden poznatek mám. Výběrové řízení je podle mě rovnocenná mezilidská interakce. Není to zkouška na vysoké škole. Myslím, že se to dá spíš přirovnat k prvnímu rande, nebo seznamce. Stále ještě je řada manažerů, kteří mají tendenci člověka na pohovoru zkoušet, nebo taky poměřovat si s vámi ego. Jsem juniorní kandidát, takže je docela snadné se na mých (ne)znalostech povozit.

Myslím, že je důležité zachovat si určitou asertivitu (sice jsem junior, ale taky je mi už přes 30 a mám nějaký životní zkušenosti). Když se mi něco nezdá, asi to bude mít opodstatnění. Ani to nemusí být sexismus (otevřeně sexisticky se ke mně nikdo nechoval), ale sprostý humor, zdůrazňování pití alkoholu jako základní teambuildingové aktivity, nebo výše zmíněné ponižování fakt nejsou věci, který chci řešit denně v práci. Asi to tak nemá každý, ale já si hledala práci, ne kamarády, lidi do fotbalovýho týmu nebo parťáky do hospody.

No a jak to dopadlo? Od května pracuji jako BI analyst v Billigence. A myslím, že to byla skvělá volba, rozhodně nejsem na nic sama. Chvíli trvalo, než jsem dostala nějaký projekt, ale zase jsem měla dobu hájení, kdy jsem se mohla v klidu rozkoukat, leccos naučit a připravit to být hozena do vody. Ale tentokrát mám oporu v lidech kolem mě. A to i na dálku v Londýně, kde teď na nějakou dobu pracuju. Ale o tom zas příště.

Jak jsem si hledala práci

Datová analytička hozená do vody

Už je to téměř rok od momentu, kdy jsem publikovala svůj závěrečný projekt v rámci Digitální akademie s Czechitas a je to víc než půl roku, co jsem si na LinkedIn přidala položku Data analyst. Navíc dnes, kdy moje kamarádka dostala odpověď, že byla vybrána pro účast na již třetím pražském běhu Digitální akademie, mám potřebu bilancovat. Digitální akademie rozhodně byla jen začátek.

Původně jsem chtěla psát klasický blog s pravidelnými příspěvky o tom, jak postupuji ve své kariéře, a co všechno už umím. Jeden článek jsem chtěla napsat o tom, jak se stát živnostníkem, protože mi trvalo pěkně dlouho, než jsem ten proces na všech možných úřadech pochopila a úspěšně absolvovala. Teď už si to taky nepamatuju, a stejně jako moji známí říkali mě, říkám i já potenciálním živnostníkům, že to zvládnou, není to těžký (haha). Místo toho mě teď čeká další zkouška a to je podání daňového přiznání, o kterém také pravděpodobně nenapíšu.

Zkrátka po dlouhé době chci napsat krátký článek o tom, jaké to je s daty, když vás prostě hodí do vody abyste se naučili plavat.

Data se zpravidla ukládají v databázích, to je něco jako regály se šanony, ty šanony jsou tabulky a v tabulkách jsou řádky a sloupce s daty (papíry v šanonech). Takovou databázi může člověk mít úplně malinkou u sebe na počítači, nebo může být obří uložená na druhém konci světa. Každopádně taková databáze potřebuje server na kterém běží (něco jako místnost na ty regály). Takže jeden z prvních a zásadních poznatků, které jsem učinila, když jsem měla začít sama používat nějaká data bylo, že si musím nainstalovat server! Taková věc pro člověka začínajícího od nuly v oblasti dat vůbec není samozřejmá.

Tady hraje roli ještě celá řada věcí, například serverů jsou mraky druhů, databází jsou mraky druhů, lze používat různé jazyky pro komunikaci s nimi, atd. Na to, abych o tom psala ale fakt nemám znalosti, takže to nechám pro vaši vlastní rešerši.

Když ale přijdete k již existujícímu serveru s funkční databází plnou dat, chcete se podívat, co tam je za data a třeba je analyzovat. K tomu slouží SQL (opět existuje víc druhů SQL podle toho, jakého typu je daná databáze). Zde už jsme doma, SQL jsme se zevrubně naučili na Digitální akademii! Ovšem když máte smůlu, data jsou uložena ve více různých databázích, které jsou navíc různého typu (například jedna je MySQL a druhá je Postgre), tak už není tak jednoduché se k datům dostat. Navíc když máte tu čest pracovat s daty, která jdou do milionů řádků, už taky nemusí utáhnout váš počítač.

Zde nastupuje další super znalost, kterou jsem se trochu naučila na Digitální akademii – programování.

Protože jediný způsob, jak spojit data ze dvou různých databází a následně je stáhnout, je pokud vím napsat skript (v mém případě v Pythonu), který to provede. Takže první věc, kterou uděláte je, že jdete na stackoverflow.com a hledáte tam, jestli někdo již takový problém řešil. Toto je velmi důležitý hint (tak se říká v IT dobré radě), protože umět správně napsat dotaz do Googlu a najít dané téma na stackoverflow.com je základ práce každého člověka, co se pokouší něco vytvořit v IT.

Následně se vynoří další hora překážek, o kterých třeba napíšu zase za rok, jako třeba kódování (proč není vždycky Unicode?), konce řádků (\n nebo \r\n???), špatně zvolená knihovna (proč se proboha jmenuje Psycopg2?), apod.

A když se to vše nakonec nějak podaří vyřešit, narazíte na limity svého počítače musíte se naučit pouštět onen skript na serveru.

Paráda, nakonec máte ta data u sebe. Jsou ve formátu csv, ale když je chcete otevřít v Excelu, tak se to nepodaří, protože mají dva tisíce sloupců a statisíce řádků a to je na excel trochu moc. Na tohle je opět skvělý Python a jeho knihovna Pandas! Ta je totiž dělaná na velká data a velmi dobře se s ní pracuje i když nejste opravdický programátor/opravdická programátorka. Opět nastupuje stackoverflow.com v kombinaci s dokumentací Pandas a jestli chcete grafy, tak ty zas umí jiné knihovny jako třeba Matplotlib.

A tak se člověk dostane až k analyzování dat, které je teprve ta správná zábava.

Tak ten článek je delší, než jsem měla v plánu. A to jsem spoustu zajímavých problémů k řešení a poznatků ani nezmínila. Objevila jsem svět, kde se do smrti mám co učit a objevovat.

Datová analytička hozená do vody

Ohlédnutí za Digitální akademií s Czechitas

Mám za sebou tři měsíce intenzivního vzdělávání v rámci Digitální akademie s Czechitas. Na jednu stranu to uteklo rychle, na druhou mám pocit, že lidi, které jsem během té doby poznala, znám už léta.

Celý kurz prý čítal 300 hodin výuky. Z mého pohledu to však byl spíše plus mínus 24/7 krát tři měsíce. Někdy se totiž nedařilo ani usnout (osvědčilo se šumění větru před usnutím) a když ano, tak se mi zdálo o SQL, for cyklech nebo regresi. Ale v nouzi najdeš přítele, takže jsme se s holkama semkly, párkrát se společně opily, vyrazily na hory a věřím, že i do budoucna si budeme pomáhat a sdílet svoje životní eskapády. Lektoři na nás byli hodní, ve firmách nás na stáži nadšeně vítali.

Už jsem skoro zapomněla jak jsem byla zvyklá trávit volný čas, běžecké boty zaprášené, fyzička mizerná, spoustu kamarádů jsem viděla naposledy před Vánoci. Bez notebooku na zádech mám pocit, že mi něco chybí.

Když se ohlédnu, můžu říct, že to byla slušná lekce, ale splnila svůj účel. Šla jsem do toho, protože jsem nevěděla, co se sebou, potřebovala jsem nakopnout. Digitální akademie mě tedy opravdu nakopla. Chvílemi to i celkem bolelo. Někdy i čtyřikrát týdně 3-8 hodin workshopů, lekcí, informací je v kombinaci s prací na plný úvazek slušná zátěž. Ale jinak bych to nechtěla. Jedině takhle se člověk do toho pořádně ponoří, zatne zuby a ví, že to bude trvat jen tři měsíce.

A v čem mě nakopla? Zjistila jsem, co jsem schopna zvládnout, že mi vědomosti i pět let po škole pořád dobře lezou do hlavy, že mě stále stejně baví se učit. Že svět IT mi není tak cizí, jak jsem myslela, a že se v něm můžu cítit dobře. Získala jsem nadhled na svými znalostmi a viděla tak, že je můžu uplatnit i jinde a jinak, než jsem si dovedla představit.

Takže teď jsem na novém začátku. Dala jsem výpověď v práci s dobrým platem, smlouvou na dobu neurčitou, pěti týdny dovolené a píchačkama. Symbolicky k tomu došlo den před ukončením Digitální akademie.

Věřím tomu, že člověk má v životě vyměřený čas, který je jen jeden. Proto považuji za důležité neustále se zamýšlet nad tím, jestli to, čím ten čas trávím, mi dává smysl. Nepochybuji o tom, že někdy nás věci nebaví, nebo trvají déle, než bychom si přáli, ale nakonec to vždycky musí dávat smysl vzhledem k času, který v životě máme. Proto jsem došla k tomu, že jistoty, které mi současná práce nabízí nevyvažují frustraci, kterou ve mě vyvolává a množství času, který v ní trávím.

Tak to vlastně celé začalo, když mi kamarádka v Brně jednou řekla: “Život mám jen jeden a je ho škoda na to, abych ho trávila něčím, co mě nebaví, aby mi vlastně protekl mezi prsty.”

Uvidíme, kam to celé povede, v tuhle chvíli jsem si hodně jistá tím, že to bude zábava.

Ohlédnutí za Digitální akademií s Czechitas

Z veřejné správy do IT

V duchu hesla „Každý svého štěstí strůjcem“ jsem se po pěti letech ve veřejné správě rozhodla vzít to za jiný konec. Nejdřív jsem chtěla začít podnikat, ale nevymyslela jsem, v čem. Pak se objevila možnost přihlásit se Digitální akademie s Czechitas. Vůbec jsem nevěděla, co čekat, ale přišlo mi to jako dobrý způsob jak zjistit, co ve mě je, když stejně nevím, za jaký konec tu svojí kariéru vlastně chci vzít.
A tak se mi postupně otevřely brány informačních technologií, datové analýzy a byznysu.
Všechno začíná závěrečným projektem, kterým jsem Digitální akademii uzavřela. O svoje další projekty, úspěchy a neúspěchy se podělím v dalších článcích.

Z veřejné správy do IT

Závěrečný projekt Digitální akademie s Czechitas (za podpory Google.org)

Analýza obsahu reklamních kampaní na facebooku se zaměřením na jednotlivé skupiny uživatelů

Mentor: Jan Černý, Databreakers s.r.o

V rámci svého závěrečného projektu Digitální akademie jsem se chtěla zaměřit na data ze sociálních sítí, protože jde o v dnešní době klíčové médium, které ovlivňuje myšlení i konání obrovského množství lidí. Díky stáži a menotringu ve firmě Databreakers s.r.o jsem měla možnost dozvědět se hodně o tom, jak reklama na Facebooku funguje a také získat data z reklamy na Facebooku pro tuto analýzu.

Na základě těchto dat bylo mým cílem zjistit, na jaké skupiny uživatelů Facebooku reklama úspěšně působí. To jsem analyzovala na tzv. breakdownech – skupinách uživatelů dle pohlaví, věku, regionu či použitého zařízení.

Výsledek analýzy může být využit jako nástroj pro klienty, kteří budou moci díky interaktivním reportům vidět, jak jejich kampaň působí na které skupiny uživatelů. Protože Facebook Business Manager nenabízí v oblasti cílení mnoho informací v nepříliš uživatelsky přátelském prostředí, mohou data z Facebook Ads Insights API přinést lepší využití.

Pro provádění analýzy mi bylo umožněno využít prostor na serveru Databreakers pro optimalizaci procesů. Následně jsem data zpracovávala pomocí MySQL a k vizualizaci jsem využila PowerBI.

Postup

V první řadě bylo třeba se zorientovat ve věcném obsahu analýzy. K tomu mi pomohla vstřícná spolupráce mentora Honzy Černého a dalších kolegů z Databreakers s.r.o, kteří mi poskytli náhled do toho, jak kampaně na Facebooku fungují, jaká je jejich struktura, jaké metriky pro vyhodnocování jsou klíčové, apod.

Postup realizace projektu naznačuje schéma níže. Jednotlivé kroky jsou poslány níže v textu. Nejdříve jsem analýzu provedla na menším vzorku dat. To bylo praktické na přípravu a kontrolu jednotlivých dotazů. Bohužel ale na takovém vzorku nebylo možné provést obecný pohled na data podle jednotlivých skupin uživatelů. Proto jsem následně celý proces provedla na datech čítajících přes deset milionů řádků. Tyto operace jsem již nemohla provádět na svém počítači, proto jsem využila serveru Databreakers, kam mi bylo umožněno se připojit.

Data jsem získala díky Databreakers s.r.o. Obsahují záznamy za reklamní kampaně zákazníků firmy. Data tvoří tabulky ve struktuře jak je vidět na diagramu níže. V této analýze jsem využila tři z nich, ze kterých je vytvořen datový model. Další tabulky můžou sloužit pro podrobnější analýzu podoby postů, konkrétní zaměření na zákazníky a sady reklam. Vzhledem k omezeném času pro analýzu to jsou ale podněty do budoucna. Tabulky jsem dostala samostatně, ale měla jsem k dispozici informace o primárních a cizích klíčích a stručný popis obsahu sloupců.

Další tabulky pro možné rozšíření analýzy:

  • Posts – detailní informace o podobě postů,
  • Ad_sets – informace o sadách reklam a jejich zacílení,
  • Scheduler_items – kódy a názvy kampaní
  • Accounts – identifikace zákazníků

Spojením tabulek pomocí MySQL jsem vytvořila datový model (viz níže):

    CREATE TABLE tab_promotervse AS
SELECT pta.kampan,
       pta.post_id,
       m.fb_api_metric,
       m.breakdown_type,
       m.breakdown,
       sum(i.value) AS sum_value
FROM insights i
LEFT JOIN metrics m ON m.id = i.metric_id
LEFT JOIN posts_to_ads pta ON pta.reklama_id_pta = i.reklama_id_i
WHERE m.fb_api_metric IN ('clicks',
                          'impressions')
  AND breakdown_type <> ''
  AND breakdown <> 'Unknown'
  AND post_id <> 0
  AND kampan <> 0
GROUP BY pta.kampan,
         pta.post_id,
         m.id,
         m.breakdown_type,
         m.breakdown;

Vzhledem velké náročnosti dotazování na tak velká data, jsem pro snazší práci s jednotlivými dotazy vytvářela nové tabulky. Bylo by možné vše tvořit pomocí tzv. pohledů nebo vše seskupit do jednoho dotazu, ale při takto objemných datech bylo třeba šetřit paměť a urychlit jednotlivé kroky. Významnou roli při urychlení provádění dotazů hrají také indexy a primární a cizí klíče. Prvním dotazem jsem vytvořila první tabulku tab_promotervse. Přímo v tomto dotazu jsem již rovnou provedla i omezení na metriky impresí (shlédnutí reklamy) a kliků, odstranění prázdných řádků a řádků, kde je breakdown uveden jako “Unknown”. Imprese a kliky jsem vybrala, protože jde o přehledný způsob analýzy online reklamy, je možné tak dopočítat CTR (click through rate) poměrem mezi kliky a impresemi – tzv. proklikovost.

V dalším kroku bylo třeba vytvořit nové breakdowny s kategoriemi uživatelů dle věku a pohlaví zvlášť, protože přímo z API se data stáhla v členění do skupin podle věku i pohlaví společně (například “18-24,female”). Za tímto účelem bylo třeba vytvořit další tabulku tab_promoterctr, v rámci které se do předchozí tabulky vkládají řádky s hodnotami za jednotlivé kategorie věku a obě pohlaví zvlášť.

    CREATE TABLE tab_promoterctr AS
SELECT *
FROM tab_promotervse
UNION
SELECT kampan,post_id,fb_api_metric,
       'gender' AS breakdown_type,
       'female' AS breakdown,
       sum(sum_value)
FROM tab_promotervse
WHERE breakdown LIKE '%female%'
GROUP BY kampan,
         post_id,
         fb_api_metric
UNION
SELECT kampan,post_id,fb_api_metric,
       'gender' AS breakdown_type,
       'male' AS breakdown,
       sum(sum_value)
FROM tab_promotervse
WHERE breakdown LIKE '%,male%'
GROUP BY kampan,
         post_id,
         fb_api_metric
UNION
SELECT kampan,post_id,fb_api_metric,
       'gender' AS breakdown_type,
       'unknown' AS breakdown,
       sum(sum_value)
FROM tab_promotervse
WHERE breakdown LIKE '%,unknown%'
  AND breakdown_type = 'age,gender'
GROUP BY kampan,
         post_id,
         fb_api_metric
UNION
SELECT kampan,post_id,fb_api_metric,
       'age' AS breakdown_type,
       '13-17' AS breakdown,
       sum(sum_value)
FROM tab_promotervse
WHERE breakdown LIKE '%13-17%'
GROUP BY kampan,
         post_id,
         fb_api_metric
UNION
SELECT kampan,post_id,fb_api_metric,
       'age' AS breakdown_type,
       '18-24' AS breakdown,
       sum(sum_value)
FROM tab_promotervse
WHERE breakdown LIKE '%18-24%'
GROUP BY kampan,
         post_id,
         fb_api_metric
UNION
SELECT kampan,post_id,fb_api_metric,
       'age' AS breakdown_type,
       '25-34' AS breakdown,
       sum(sum_value)
FROM tab_promotervse
WHERE breakdown LIKE '%25-34%'
GROUP BY kampan,
         post_id,
         fb_api_metric
UNION
SELECT kampan,post_id,fb_api_metric,
       'age' AS breakdown_type,
       '35-44' AS breakdown,
       sum(sum_value)
FROM tab_promotervse
WHERE breakdown LIKE '%35-44%'
GROUP BY kampan,
         post_id,
         fb_api_metric
UNION
SELECT kampan,post_id,fb_api_metric,
       'age' AS breakdown_type,
       '45-54' AS breakdown,
       sum(sum_value)
FROM tab_promotervse
WHERE breakdown LIKE '%45-54%'
GROUP BY kampan,
         post_id,
         fb_api_metric
UNION
SELECT kampan,post_id,fb_api_metric,
       'age' AS breakdown_type,
       '55-64' AS breakdown,
       sum(sum_value)
FROM tab_promotervse
WHERE breakdown LIKE '%55-64%'
GROUP BY kampan,
         post_id,
         fb_api_metric
UNION
SELECT kampan,post_id,fb_api_metric,
       'age' AS breakdown_type,
       '65+' AS breakdown,
       sum(sum_value)
FROM tab_promotervse
WHERE breakdown LIKE '%65+%'
GROUP BY kampan,
         post_id,
         fb_api_metric ;

Cílem analýzy bylo zjistit obecné trendy v datech v pohledu na jednotlivé skupiny uživatelů a zároveň možnost využití pro jednotlivé zákazníky. Proto, aby bylo možné s daty dále pracovat a vizualizovat je, je třeba vytvořit další tabulky. Analýza je provedena ve třech pohledech na data v různé podrobnosti – z pohledu pouze na skupiny uživatelů, na jednotlivé kampaně a jednotlivé posty v rámci kampaní.

Tvořené tabulky mají ke každému řádku přiřazeny sloupce s impresemi, kliky a CTR. Přičemž CTR je třeba dopočítat podílem kliků vůči impresím. Vzhledem k omezené možnosti agregace v případě podrobnějších dat u poměrové metriky CTR jsem u tabulek v podrobnějším pohledu na kampaně a posty zvolila výpočet CTR jako metriku v PowerBI, kde je výpočet dynamický.

Pro obecnější analýzu rozptylů jednotlivých skupin uživatelů jsou data agregována podle breakdownů. V případě tohoto dotazu jsem vytvořila tabulku promoter_breakdownCI se skupinami uživatelů a hodnotami impresí a kliků a CTR.

        CREATE TABLE promoter_breakdownCI AS
SELECT ctr1.breakdown_type,
       ctr1.breakdown,
       sum(ctr1.sum_value) AS impression,
       sum(ctr2.sum_value) AS clicks,
       sum(ctr2.sum_value)/sum(ctr1.sum_value) AS CTR
FROM tab_promoterctr AS ctr1
JOIN tab_promoterctr AS ctr2 ON ctr1.post_id = ctr2.post_id
AND ctr1.kampan = ctr2.kampan
AND ctr1.breakdown_type = ctr2.breakdown_type
AND ctr1.breakdown = ctr2.breakdown
AND ctr2.fb_api_metric = 'clicks'
WHERE ctr1.fb_api_metric = 'impressions'
GROUP BY ctr1.breakdown_type,
         ctr1.breakdown;

S daty v podrobnosti dle kampaní lze dále pracovat v detailu zaměřeném na úspěšnost jednotlivých kampaní, což je využitelné pro klienty i pro zpřesňování. Takto vznikla tabulka promoter_kampanCI.

    CREATE TABLE promoter_kampanCI AS
SELECT ctr1.kampan,
       ctr1.breakdown_type,
       ctr1.breakdown,
       sum(ctr1.sum_value) AS impression,
       sum(ctr2.sum_value) AS clicks
FROM tab_promoterctr AS ctr1
JOIN tab_promoterctr AS ctr2 ON ctr1.post_id = ctr2.post_id
AND ctr1.kampan = ctr2.kampan
AND ctr1.breakdown_type = ctr2.breakdown_type
AND ctr1.breakdown = ctr2.breakdown
AND ctr2.fb_api_metric = 'clicks'
WHERE ctr1.fb_api_metric = 'impressions'
GROUP BY ctr1.kampan,
         ctr1.breakdown_type,
         ctr1.breakdown;

A pro detailní pohled na úspěšnost jednotlivých postů v rámci kampaní je vhodná třetí tabulka s informacemi seskupenými podle postů – tabulka promoter_postCI.

CREATE TABLE promoter_postCI AS
SELECT ctr1.kampan,
       ctr1.post_id,
       ctr1.breakdown_type,
       ctr1.breakdown,
       sum(ctr1.sum_value) AS impression,
       sum(ctr2.sum_value) AS clicks
FROM tab_promoterctr AS ctr1
JOIN tab_promoterctr AS ctr2 ON ctr1.post_id = ctr2.post_id
AND ctr1.kampan = ctr2.kampan
AND ctr1.breakdown_type = ctr2.breakdown_type
AND ctr1.breakdown = ctr2.breakdown
AND ctr2.fb_api_metric = 'clicks'
WHERE ctr1.fb_api_metric = 'impressions'
GROUP BY ctr1.kampan,
         ctr1.post_id,
         ctr1.breakdown_type,
         ctr1.breakdown;

Kompaktní tabulky jsem se rozhodla vizualizovat v PowerBI. Pro získání přehledu o rozdělení dat v rámci jednotlivých kampaní i v jejich kombinacích je tento nástroj velmi praktický.

Výsledky

Vytvořila jsem report, který umožňuje analýzu dle tří úrovní obecnosti – na úrovni breakdownů, kampaní a postů. V reportu je v grafu zároveň vidět hodnota CTR dle jednotlivých breakdownů a zároveň podíl počtu impresí na celku tzv. support. Samotná metrika proklikovosti má totiž omezenou vypovídací schopnost, pokud k ní nemáme informaci o tom, jaké množství shlédnutí ji podporuje. I menší hodnota CTR za jednu skupinu uživatelů tedy může mít větší význam oproti jiné skupině, která má vyšší CTR, ale podporuje ji jen pár shlédnutí. Hodnoty impresí jsou normalizované vůči celku, aby bylo možné srovnání. Pro podrobnější pohled je v zobrazen také sloupec v tabulce s konkrétními hodnotami. Ponechala jsem pouze kódy kampaní bez uvedení jejich názvu a jména zákazníka důvodu ochrany citlivých dat. Ze stejného důvodu byly také u postů přečíslovány jejich kódy.

Náhled reportu je možné vidět na obrázku níže:

Z obecného hlediska je na úrovni agregovaných dat ze všech kampaní zajímavé rozdělení hodnot dle věkových skupin a dle použitého zařízení. Z věkových skupin jsou nejúspěšnější uživatelé mezi 18 a 34 lety, protože, ačkoli jejich CTR není celkově nejvyšší, je reprezentováno silným supportem impresí. To potvrzuje i pohled dle jednotlivých kampaní. Podrobnější pohled na věkové skupiny pak nabízí původní typ breakdownu „age,gendder“, kde jsou věkové skupiny rozlišeny navíc dle pohlaví. Samotná data za pohlaví nejsou tolik významná.

V případě použitého zařízení není překvapením, že nejvyšší support mají smartphony na platformě Android. Zařízení „Desktop“ tedy osobní počítač má dle očekávání také vysoké počty impresí, obě tato zařízení mají ale nižší proklikovost. Nejvyšší CTR má často Ipod, ovšem ten je podpořen naprosto minimálním počtem impresí, takže není třeba jej považovat za významný. Zajímavé jsou ale zařízení Iphone a Ipad, které nemají tak vysoký počet impresí, ale zároveň mají poměrně vyšší CTR.

Kromě výše uvedeného celkového pohledu na data z kampaní nabízí tento report řadu pohledů na data, které v rozhraní Facebook Business Manager nejsou k dispozici. Přímo v rozhraní je možné si zobrazit metriky na úrovni kampaní, sad reklam a jednotlivých reklam, není ale možné si zobrazit úspěšnost samotných postů, přičemž na jednom postu může být navázáno víc reklam. Zobrazení CTR je pak standardně možné pouze celkově, není možné vidět vliv na jednotlivé cílové skupiny. Z hlediska typů cílových skupin nabízí výše uvedený report navíc rozdělení dle regionů, detail všech použitých zařízení a oddělené cílové skupiny samostatně dle pohlaví a věku. Oproti rozhraní je pak zde možné zvolit libovolnou kombinaci skupin. Pro detekci anomalit – specifického účinku obsahu na konkrétní cílové skupiny – je vytvořený report praktičtější a uživatelsky přátelštější než rozhraní Facebook Business Manager.

Závěr

Díky tomuto projektu jsem si vyzkoušela práci s Velkými daty, která jsou složitá a je třeba je vyčistit. Ověřila jsem si jak je SQL mocný nástroj. Vytvořila si tento web a mohla zde publikovat interaktivní report z PowerBI.

Ponaučení zní – dvakrát přemýšlej, než spustíš dotaz. A ještě si ho raději šestkrát přečti.

Ve světě sociálních sítí je stále nerozluštěná otázka toho, jaký obsah v jaké míře koho zajímá. Analyzování metrik ve vazbě na cílové skupiny uživatelů má tak velký potenciál. Výše popsaná analýza představuje jen úvodní fázi rozsáhlejšího procesu. V první řadě bude třeba vytvořit podobný pohled na skupiny uživatelů s dalšími metrikami (například cena za klik, cena za konverzi). Dalšími kroky bude automatizované napojení na API a nastavení dynamických přehledů úspěchu různých cílových skupin.

Pokud se podaří pokročit v této práci dále, výsledky budu průběžně publikovat.

Závěrečný projekt Digitální akademie s Czechitas (za podpory Google.org)