Návod na automatické reporty v AdWords pomocí skriptu

Asi každý často a opakovaně reportuje data z AdWords. Je jedno, jestli data posíláte klientovi, nebo šéfovi. Pokaždé je to to samé. A je to otrava. Report z AdWords si ale můžete plně automatizovat.

Jednoduchý report výkonu kampaní za poslední měsíc s exportem do spreadsheetu a odesláním informace na email vypadá například takto:

 

Vygenerování reportu

Pojďme se na něj podívat podrobně. Nejdůležitější a nejsložitější částí je vyžádání reportu. Pro to se v AdWords využívá jazyku AWQL, který je velmi podobný jiným databázovým jazykům. Základní struktura reportu je:

  • SELECT – výběr “sloupečků”, které chceme v reportu
  • FROM – z jakého reportu data chceme
  • WHERE – omezující podmínky, abychom nestahovali celý účet
  • DURING – za jaké období report chceme

Nejdůležitějším parametrem je FROM, tedy jaký report si vybereme. AdWords nabízí mnoho přehledných reportů snad pro vše, co lze naklikat v rozhraní. Přehled reportů a jejich specifikací najdete na webu Google developers. Pro začátek asi bude stačit pár základních:

Všechny tyto reporty vždy získávají data z celého účtu, proto je často potřeba je omezit podmínkou WHERE. Za WHERE napíšeme název sloupečku, podle kterého chceme data omezovat, operátor a hodnotu. Jaké názvy sloupečků můžeme použít a jakých hodnot mohou nabývat, se dozvíme ve specifikaci jednotlivých reportů. Operátor a hodnota se odvíjí od zvoleného sloupce. Sloupec může nabývat číselných hodnot (Number), může to být text (String) nebo může nabývat předdefinovaných hodnot.

Operátory:

  • Pro čísla typu Integer
    • Jsou to celá čísla, většinou počet, například reklam v sestavě
    • Ostrá nerovnost < nebo >
    • Neostrá nerovnost <= nebo >=
    • Rovnost  =
    • Nerovnost !=
  • Pro čísla typu Double
    • Čísla s desetinnými místy, například CTR, průměrná pozice a podobně
    • Pouze ostrá nerovnost < nebo >
  • Pro textové hodnoty String
    • Názvy kampaní, sestav, texty v reklamách, klíčová slova 
    • Rovnost a nerovnost = nebo !=
    • Začátek textu STARTS_WITH a STARTS_WITH_IGNORE_CASE
    • Pokud text obsahuje CONTAINS, případně CONTAINS_IGNORE_CASE
    • Pokud text neobsahuje DOES_NOT_CONTAIN a DOES_NOT_CONTAIN_IGNORE_CASE
  • Pro předdefinované hodnoty
    • Například status, typ reklamy, ale i ID
    • Rovnost a nerovnost = nebo !=
    • Kontrola, zda obsahuje alespoň jednu z vypsaných IN [ ]
    • Nebo naopak, zda neobsahuje žádné NOT_IN [ ]
  • Pro seznam Stringů
    • Seznam názvů kampaní, vypisují se do hranatých závorek, v apostrofech a oddělené čárkou – [‚kampaň1‘, ‚kampaň2‘]
    • Zda splňuje všechny podmínky CONTAINS_ALL [ ]
    • Zda plní alespoň jednu podmínku CONTAINS_ANY [ ]
    • Nebo naopak zda je různé od vypsaných CONTAINS NONE [ ]

Za příkaz SELECT vypíšeme názvy sloupců, které nás zajímají, a oddělíme je čárkou. Které sloupce smíme vypsat najdeme opět ve specifikaci jednotlivých reportů.

Posledním parametrem je DURING, ten vymezuje časové období za které, chceme data získat. AWQL nabízí několik předdefinovaných hodnot stejně jako rozhraní AdWords. Jejich názvy jsou samy o sobě dostatečně výstižné:

  • TODAY
  • YESTERDAY
  • LAST_7_DAYS
  • THIS_WEEK_SUN_TODAY
  • THIS_WEEK_MON_TODAY
  • LAST_WEEK
  • LAST_14_DAYS
  • LAST_30_DAYS
  • LAST_BUSINESS_WEEK
  • LAST_WEEK_SUN_SAT
  • THIS_MONTH

Pokud předdefinované časové období není dostatečné, lze jej zadat pomocí datumu od, do ve formátu YYYYMMDD, YYYMMDD. Například pro rozpětí od 2. září 2016 do 5. října 2016 to bude vypadat následovně: 20160902, 20161005.

Často ale ani takto napevno stanovené datum není dostačující, a to například pokud chceme report za posledních 14 dní, ale bez dnešního dne. K tomu poslouží funkce dnizpet(n), která od dnešního data odečte n dní a výsledný datum převede na požadovaný formát. Pro včerejší datum by tedy vypadala takto: dnizpet(1).

Vytvoření spreadsheetu

Reporty jsou obvykle exportovány do Google tabulek. Můžeme si zvolit, zda si pro každý report vytvoříme novou tabulku,

nebo budeme stále přepisovat jednu a tu samou.

Export

Po otevření (nebo vytvoření) tabulky a vytvoření reportu jej konečně můžeme exportovat do tabulky.

Odeslání e-mailu

A nakonec odešleme informativní email s odkazem na výsledný soubor. Pro jednoduchý email zadáme do závorky, do uvozovek a oddělené čárkou postupně tyto hodnoty: email(y) příjemců, předmět emailu a samotnou zprávu.

 

Tipy & Triky:

  • Podmínky ve WHERE lze spojovat pomocí AND
    • WHERE Impression > 100 AND Ctr < 2
  • Používejte štítky a filtrujte podle nich tam, kde to má smysl
  • Filtrujte podle ID, pokud to jde
  • Dávejte při filtrování jména kampaní a sestav do ‘apostrofů’, pokud obsahují jiné znaky než písmena a čísla
  • Email může být odeslán na více adres, jednotlivé emaily oddělte čárkou „muj@email.cz, email@sefa.cz, email@klienta.cz“
  • V rozhraní skriptů v AdWords nejde psát @ pomocí Alt Gr + v – vyskočí na vás pokročilá rozhraní API. Zavináč zkopírujte odjinud, nebo použijte Alt + 64.
  • Zkuste nástroj od Jakuba Kašparů na tvorbu reportů  https://tools.lynt.cz/metriky_awql.php

Takhle bude vypadat skript pro report o výkonu sestav za posledních 20 dní od včerejška, které mají v názvu „obecná“ a zaznamenaly více než 10 zobrazení. Report se bude vytvářet vždy do stejného souboru a po jeho vygenerování odešle email s url adresou na něj.

 

Pomocí skriptu se dá nastavit i formátování, reporty se mohou exportovat pokaždé do jiného listu… možností je opravdu spoustu.

Návody, ukázky a inspirace AdWords skriptů zdarma?

AdWords skripty se zabývá několik PPC specialistů a často své skripty šíří do celého světa. U nás nejznámější je Jakub Kašparů, který své skripty zveřejňuje na blogu a také o nich často přednáší. Některými skipty se také zabývá Hana Kobzová na svém webu. Ovšem světově nejznámějším je Russell Savage, který na svém webu freeadwordsscripts.com zveřejnil celou řadu užitečných skriptů, kterými se zabývá už od roku 2012, tedy od prvního spuštění skriptů v AdWords. Hodně užitečných skriptů také napsal Daniel Gilbert, některé starší jsou na blogu jeho agentury Brainlabs, novější jsou pak k nalezení na webu Searchengineland.com.

Všechny skripty ale autoři řešili pro vlastní potřebu a tak je pro jejich použití většinou nutné je upravit k obrazu svému. K tomu by v zásadě měla stačit dokumentace Google Apps, kde jsou popsány všechny funkce, které, které lze ve skriptech používat včetně několika ukázek.  U každé funkce je popsáno, jakého je datového typu (to se často hodí, pokud skript nechce fungovat), co dělá a jaké hodnoty lze od ní očekávat.

Protože AdWord skripty jsou psány v jazyce JavaScript, určitě si také přidejte do záložek specifikaci JavaScriptu z W3Schools. To se hodí když potřebujete použít matematické funkce, třeba zaokrouhlení, nebo pracujete s datumem, případně chcete upravovat slova (zkracovat, rozdělovat).

To by mělo stačit k menším úpravám už hotových skriptů, chcete-li se ale pustit do tvorby vlastních, potřebujete se naučit přemýšlet jako programátor a pochopit logiku skriptů. K tomu jsou výborné prezentace od Google z minulých workshopů. V nich najdete best practices jak psát skripty přímo od Google.

Pokud jste v programování úplní zelenáči, a JavaScript je pro vás naprosto cizí jazyk, tak si určitě zkuste kurz zdarma na CodeAcademy. Zabere to jen pár večerů (celkem 2-5 hodin), ale základy programování brzy pochopíte a zjistíte, že to vlastně vůbec neni těžké .

Někdy se také stane, že uvíznete ve slepé uličce a ani po několika hodinách nevíte kde je chyba (to se stává i zkušeným programátorům). To pak nezbývá nic jiného, než se obrátit na fórum o AdWords skriptech kde obvykle do dvou dnů někdo z Google poradí.

Nevíte si s něčím rady? Nemůžete najít skript, který by Vám vyhovoval? Zeptejte se v komentářích, nebo mi napište e-mail!

K čemu AdWords skripty a co umožňují?

Ve zkratce AdWords skripty jdou použít k automatizaci všeho, co děláte, nebo by jste chtěli dělat opakovaně. Umožňují téměř vše (a někdy mnohem víc), co zvládnete udělat v rozhraní AdWords, nebo v editoru v kombinaci s Excelem.

Proč je tedy používat? Protože jsou mnohem rychlejší, spolehlivější a přesnější než vy – skript omylem nezapomene na jednu sestavičku, protože si šel udělat kávu a pak se začal věnovat něčemu jinému. A hlavně pracují samy. Ve většině případů jej stačí jednou vytvořit, nebo zkopírovat, nastavit četnost provádění a jen čekat na výsledky.

AdWords skripty jdou použít k automatizaci téměř všeho, co děláte, nebo by jste chtěli dělat opakovaně. Jsou rychlejší, spolehlivější a přesnější než vy.

Asi nejpoužívanější skript je přímo od Google – skript na kontrolu platných URL, ten neustále projíždí všechny reklamy v (MCC) účtu a kontroluje, zda cílová URL, včetně sitelinků, nevrací chybu 404 – stránka neexistuje, případně jinou chybu. Další velmi používaně skripty jsou pro různé reportování kampaní a účtů, na ty se ale podrobněji podíváme v dalším článku. Často diskutovaným a známým skriptem je také „bidding podle počasí“, tento skript je také přímo od Google, avšak jeho praktické využití pro oblast retailu je dost pochybné a zatím s ním nikdo neměl pozitivní zkušenost. Hlavním nedostatkem je, že zohledňuje pouze intenzitu srážek, teplotu a rychlost větru. Vůbec ale nepracuje s časem, natož se sezónností. Možná by jej mohl vyzkoušet někdo z oblasti služeb (ubytování, restaurace, lanová centra a podobně). Zatím je ale tento skript jen takovou zajímavostí, co všechno lze pomocí skriptů zautomatizovat.

Skripty mohou být spouštěny jednorázově, nebo periodicky, a to s četností od 1× za měsíc až po spuštění každou hodinu. Jejich nastavení lze provádět z uživatelsky přívětivějšího Google spreadsheetu. Případně je možné je napojit na externí zdroje, jako jsou XML feedy nebo API třetích stran. Jejich možnosti jsou opravdu široké a většinu úkonů lze díky nim zautomatizovat.

Ovšem mají i některá omezení, tím nejdůležitějším je omezená doba, po kterou může skript pracovat na 30 minut, v případě MCC účtů 60 minut ve více vláknech. Druhým omezením, kterého ale většina skriptů nedosáhne je počet entit, se kterými mohou během jedné exekuce pracovat. Na tyto hranice naráží pouze opravdu velké účty a i tak lze tato omezení obejít, například u skriptu pro kontrolu 404 pomocí štítků a hodinového spouštění skriptu, který vždy pokračuje z místa kde skončil.

Jaké skripty používáte vy? Chybí vám na nich něco? Nebo máte nápad na skript, ale nevíte jak jej vytvořit? Dejte mi vědět do komentářů, nebo na e-mail!

Návod na AdWords skripty

Když jsem poprvé začínal s PPC skripty, nevěděl jsem toho o programování mnoho. Věděl jsem ze školy, že existují nějaké proměnné, cykly a funkce, ale praktickou zkušenost jsem neměl téměř žádnou a začátky tak byly docela těžké. První skript se kterým jsem se setkal byl od Kuby Kašparů Nové možnosti reportingu v rámci Adwords skriptů Adwords API v201601 – skript který stahuje jednotlivé složky skóre kvality klíčových slov a následně v tabulce přehledně ukazuje, kde mají daná KW rezervu. Je to super nápad, ale pro devítičlenný tým PPC specialistů, kteří spravují přes 20 účtů a víc než stovky kampaní je takový report nepřehledný. Ani druhá možnost skriptu – bidování na základě výkonu jednotlivých slov nebyla pro naše řešení použitelná, proto jsem skript musel začít upravovat.

Během několika dní se mi podařilo přepsat skript tak, aby každý PPC specialista měl přehled o svých klíčových slovech a také aby bylo možné bidovat na jednotlivá klíčová slova podle jejich výkonu na základě našeho atribučního modelu. Za tu dobu jsem lehce pochopil základy a postupně pronikl ještě hlouběji. Dnes už vím, jaké jsou možnosti a limity AdWords skriptů a pokud něco klikám v rozhraní nebo editoru víc než jednou týdně, už přemýšlím, jak to vyřešit skriptem.

Právě o tyhle začátky, programátorského laika se chci podělit. Jednak proto, že tím snad pomohu i dalším PPC specialistům, ale také pro to, že při řešení nových skriptů dohledávám v těch starých jak jsem který problém řešil. Cílem tedy je vytvořit český tutoriál AdWords skriptů pro úplné začátečníky. AdWords skripty zdarma publikuje na internetu kde kdo, i já bych chtěl časem nějaké zveřejnit. Problémem ale je, že ten kdo skript vytváří jím řeší konkrétní problém, skript tedy není univerzální a každý si ho musí upravit podle svých potřeb, ne každý to však umí.