Jak si hlídám výkon PPC kampaní pomocí Google Sheetů

Dnes se s vámi opět podělím o něco ze své PPCčkařské kuchyně. Recept, který je v zásadě hrozně jednoduchý, ale dnes a denně mi ulehčuje život a pomáhá mi vyhnout se často fatálním chybám při správě kampaní.

Hlídat, jestli kampaň přináší výsledky, které po ní chcete, jestli nevyčerpala stanovený budget, nebo zda ho naopak nečerpá příliš pomalu, zda se nezastavila a jestli náhodou už neskončila akce, kterou jste tou kampaní promovali, tak trochu připomíná žonglování s vejci. U několika kampaní se to ještě dá zvládnout, ale pokud jako třeba já spravujete desítky až stovky kampaní několika různým klientům, je nějaký nástroj naprostou nezbytností.

Proto jsem si vytvořit tabulku v Google drive, do které se mi každý den automaticky (nebojte, na to se taky podíváme) stahují data z kampaní a pomocí nejrůznějších vzorců testuji čerpání rozpočtu, výsledky kampaní a další zásadní metriky. Vše na jednom místě a s pomocí několika dalších nástrojů i bez práce.

Jestli nejste zrovna vzorečkový typ, můžete kliknout sem, nechat mi na sebe e-mail a já vám během pár dní zašlu předpřipravenou tabulku.

I ve chvíli, kdy nemáte přesně stanovený rozpočet a cíle kampaně tabulku využijete. Nastavte si rozpočet podle minulého měsíce a uvidíte, jestli se kampaň čerpá rychleji, pomaleji, nebo zda se dokonce nezastavila! Nastavte si cílovou cenu za splnění cíle (cpc, cpa, roas) na základě minulého měsíce a v každou chvíli uvidíte, zda kampaně rostou, nebo je potřeba máknout. Zkrátka pomůže vám to neusnout na vavřínech a udržet kampaně v kondici a vyhnout se zásadním chybám.

Dost tedy nudné teorie a pojďme se podívat, jak taková tabulka vypadá a co všechno dokáže ohlídat.

Sloupce tabulky

Název kampaně

Toto je asi jasné, tak jen v rychlosti. Snažte se používat stejný název kampaně jako v daném reklamním systému. Jednak si ušetříte zmatky a především pokud si data budete importovat automaticky, slouží název jako párovací prvek – pokud by se tedy kampaň jmenovala byť jen lehce jinak než přímo v reklamním systému, fungovat to nebude. Doporučuji vyhnout se diakritice, mezerám a raději i velkým písmenům, snížíte tak riziko chyby při automatickém párování.

Vyplňujeme ručně hned na začátku.

Budget

Předem daný rozpočet kampaně. Důležitý údaj i pro další položky v tabulce. Pokud nemáte stanovený rozpočet a kampaň již nějakou dobu běží, doporučuji použít utracenou částku z minulého měsíce. Díky tomu pak dokážete porovnávat výkon oproti předchozímu období,

Vyplňujeme ručně na začátku.

Cíl

Cíl kampaně vyjádřený jako konkrétní číslo. Může jít o počet kliků, dosažený obrat (hodnotu konverzí), počet konverzí, zobrazení atp. Pokud to dává jen trochu smysl, doporučuji držet se reálných výstupů, který mají zásadní dopad na vaše podnikání (obrat eshopu, počet splněných registrací atp.) a nenastavovat obecné cíle jako je počet kliků, nebo zobrazení.

Vyplňujeme ručně na začátku.

Cílová cpc / cpa / roas…

Zde si stanovíme cenu, jakou bychom chtěli za daný cíl platit. Ta nám pak poslouží jako cíl, ke kterému se chceme přiblížit, nebo ho ideálně co nejvíce překonat. Hodnota logicky vyplývá z cíle a daného budgetu.

Vzorec: =[Budget]/[Cíl].

Případně [Cíl]/[Budget] – třeba v případě ROAS. V případě, že cíl máte zadaný třeba jako CPC a ne jako počet splnění cíle, můžete samozřejmě pomocí vzorce dopočítat sloupec „Cíl“ (=[Budget]/[Cílová cpc])

Splněno cíle

Sem patří už reálné výsledky z kampaně. Ať už jsou vaším cílem prokliky, konverze, nebo tržby, doplňte sem aktuální hodnotu. Tu pak můžete porovnávat se stanoveným cílem a dále s ním pracovat.

Vzorec: =VLOOKUP([Název kampaně],[rozsah celé zdrojové tabulky s daty, např. ‚data-adwords-r‘!$A$1:$G$999],[pořadí sloupce s požadovanou hodnotou cíle],0)

Pokud data z nějakého důvodu vyexportovaná nemáte (jak na to?), můžete samozřejmě buňku doplňovat ručně.

Reálná cpc / cpa / roas…

Toto číslo vás bude velmi zajímat hlavně ve srovnání se sloupcem „Cílová cpc / cpa / roas“. Ukazuje totiž, jak si vedete oproti stanoveným cílům. Je skutečná CPC vyšší než ta plánovaná? Je třeba zabrat. Je cílové ROAS vyšší než plánované, můžete si pogratulovat.

Vzorec: =[Utraceno]/[Splněno cíle]

Případně obráceně, pokud jde o metriku jako ROAS apod. Data bychom mohli samozřejmě tahat z reklamního systému nebo doplňovat ručně, ale v zhledem k tomu, že to jednoduchý vzoreček spočítá za nás, je to zbytečné.

Splněno cíle v procentech

Další užitečná metrika, která vám rychle přiblíží stav vaší kampaně. Můžete mít zázračně nízké CPC, ale pokud máte za cíl splnit 20.000 prokliků a v kampani jich zatím máte jen 30, je na čase se podívat v čem je problém. Tento sloupec ukazuje, kolik procent z celkového cíle už jste splnili a vy tak víte zda musíte ještě přidat, nebo zda už jste v pohodě přesáhli.

Vzorec: =[Splněno cíle]/[Cíl]

Utraceno

Možná nejdůležitější metrika v celé tabulce. Částka, kterou kampaň zatím vyčerpala. Držíte se stanoveného budgetu? Nedrhne kampaň někde a neutratila kvůli tomu zatím jen pár korun? Zkrátka peníze jsou to, kolem čeho se to celé točí, a vy tuto metriku použijete i v dalších vzorcích.

Vzorec: =VLOOKUP([Název kampaně],[rozsah celé zdrojové tabulky s daty],[pořadí sloupce s utracenou částkou],0)

Zde opět těžíme data ze zdrojové tabulky exportu, stejně jako v případě splněných cílů. Pokud export nemáme, musí nastoupit ruční práce.

Zůstatek

Kolik peněz zbývá ze zadaného rozpočtu? Kolik si ještě můžeme dovolit utratit? Jakmile zůstatek spadne na nulu, nebo dokonce do záporných čísel, je čas zpozornět (no dobře, v takovém případě už většinou bývá pozdě).

Vzorec: =[Budget]-[Utraceno]

Utraceno ke dnešku v procentech

Další ze zajímavých a trochu složitějších metrik. V procentech odpovídá na otázku, „mám utraceno tolik, kolik bych měl mít utraceno, když vím, že je dnes tolikátého a tolikátého a kampaň běží v takovém a takovém období?“ Takže pokud vím, že je polovina kampaně a je utracena polovina rozpočtu, vše je v pořádku. Základní hodnotou je 100 % a jakákoli odchylka značí problém. Takže například pokud by byla půlka měsíce a já měl utraceno 75 % celého rozpočtu, metrika mi bude hlásit 150 % – tedy že jsem utratil o polovinu více, než bych měl.

V tom se tato metrika liší třeba od metriky „Splněno cíle v procentech“, kde počítáme procento z celkové sumy, zatímco zde počítáme procento z poměrné části úměrné danému časovému období. Díky tomu nemusím počítat, zde je v pořádku mít po 6 dnech utraceno 20 % rozpočtu z kampaně, která běží jednorázově 54 dní, ale rovnou vidím, jestli rozpočet čerpám rovnoměrně, či nikoli. Podobný přístup by se dal pochopitelně použít i u metriky „Splněno cíle v procentech“ a vice versa. Záleží na tom, co vám vyhovuje více.

Vzorec: =([Utraceno]/[Budget])/((today()-[Začátek kampaně])/([Konec kampaně]-[Začátek kampaně]+1))

Denní budget

Pokud pracujete s Google Ads, které místo celkového rozpočtu kampaně operují s denním budgetem, pravděpodobně jste narazili na problém, jak zajistit správné a rovnoměrné vyčerpání rozpočtu. Jasně, pokud mám rozpočet 30.000 a kampaň běží měsíc, jednoduše celou částku vydělím 30 a mám hotovo. Ale co když se rozpočet v průběhu kampaně změní, nebo kampaň v části měsíce neběží tak, jak má, a vy během posledního týdne potřebujete utratit zbývající budget stůj co stůj?

Proto vznikla tato metrika, která říká: „Pokud nastavíš tento denní rozpočet, bude vyčerpán celkový rozpočet kampaně přesně v den ukončení kampaně.“ Vy tak jednoduše do Adwords zkopírujete číslo z tabulky a máte vystaráno.*

Vzorec: =[Zůstatek]/([Konec kampaně]-today()+1)

* Poznámka: Z hlediska výkonu reklam není vhodné mít kampaň omezenou denním rozpočtem. Výrazně lepší je řídit útratu kampaně třeba úpravou bidování a dalšími strategickými úpravami. To už je však zcela mimo kompetence tohoto článku.

Začátek kampaně

Ze začátku a konce kampaně je odvozena celá řada dalších metrik a navíc je dobré hlídat si, kdy kampaň vypnout. Zde snad není co dodávat.

Proto se zde pustím do hlubšího problému, na který můžete narazit. Tím je formátování tabulky. To ovlivňuje spoustu zdánlivě nepodstatných detailů, které pak můžou celý proces zkomplikovat, případně zcela znemožnit. Například zatímco v Čechách běžně používáme desetinnou čárku, v jiných částech světa je standardem desetinná tečka. Pro běžného smrtelníka malicherný problém, pro strojové zpracování dat to však může být zásadní rána.

Dejte si proto pozor, aby sedělo nastavení vaší tabulky s exportem, který získáváte z reklamních nástrojů. Ty zpravidla mívají americký formát s desetinnou tečkou. Proto i já používám v této tabulce tento formát (najdete jej v záložce „Soubor“ (File) > „Nastavení tabulky“ (Table settings)).

Americké formátování s sebou nese také jiný formát datumů (ano, ano, vím, že je to gramaticky špatně, ale správný tvar „dat“ by mohl být v tomto případě lehce zavádějící). Ta se zapisují ve formátu mm/dd/rrrr, zpravidla stačí zapsat jen měsíc a den a tabulka sama doplní aktuální letopočet. Formát data si pak můžete libovolně upravit v záložce „Formát“. V každém případě však dejte pozor, zda tabulka s hodnotou opravdu pracuje jako s datem a zda nemáte přehozené dny a měsíce.

Vyplňujeme ručně na začátku.

Konec kampaně

Pro konec kampaně platí totéž, co pro její začátek, a pro naše výpočty je ještě o fous důležitější.

Vyplňujeme ručně na začátku.

Datum aktualizace

A nakonec už jen dva takové méně důležité sloupce. Sloupec datum aktualizace používám v případě, kdy nemám nastavený automatický import dat a vyplňuji je ručně. Sem si pak poznamenávám, kdy jsem provedl poslední úpravu tabulky, abych věděl, s jak aktuálními údaji právě pracuji a zda není na čase je opět aktualizovat.

Vyplňujeme ručně při ruční aktualizaci dat.

Celkový rozpočet

Tento sloupec má také specifickou funkci. Používám jej v případě, kdy mám daný rozpočet na určitý projekt, který obsahuje více kampaní. Představte si, že propagujete více projektů a pro každý používáte kampaně ve vyhledávání, remarketing a ještě třeba Facebook. Peníze přeléváte mezi jednotlivými typy kampaní podle aktuální potřeby a výkonu a sloupec celkový rozpočet pak slouží, abyste pro samé přesuny neztratili přehled.

Dalším levelem, pak může být vzorec, který občas používám (ale tady s velkou opatrností!) pro rozpočítávání rozpočtu dle aktuálního výkonu:

[Budget k1] = [Celkový rozpočet]*[ROAS k1]/sum([ROAS k1]:[ROAS k5])

Příprava tabulky

Ještě víc než kdy jindy je zde třeba důkladná příprava. Tabulka jako taková je vám celkem k ničemu, když v ní nemáte základní data a cíle, kterých chcete dosáhnout. Když od klienta dostanu mediaplán, nebo zadání, první, co udělám, je, že si do tabulky zadám všechna důležitá data. Název kampaně, rozpočet, cíl a cílovou cpc, počáteční i koncové datum kampaně.

Při vytváření kampaně pak už na jednom místě vidím, jak kampaň pojmenovat (to může vypadat banálně, ale udržet si jednotnou pojmenovací, ale když jednu kampaň vedete zároveň na Googlu, Skliku, Facebooku, Twitteru a ještě na nějakém zbožovém srovnávači, je lehké, se mezi názvy ztratit), jaký nastavit budget, maximální bid a třeba i datum ukončení kampaně.

Zvlášť to pak oceníte v situaci, kdy vám klient zadání pošle v těle e-mailu, po telefonu pak v polovině kampaně změní rozpočet a týden před koncem kampaně vám řekne, ať polovinu rozpočtu z tohohle kanálu přelijete do druhého. Pamatovat si každou změnu nebo hledat zadání kampaní po e-mailech je téměř jistou zárukou brzké cesty do duševního sanatoria. S důkladně vyplněnou tabulkou a všemi daty na jednom místě si s nenadálými změnami poradíte levou zadní.

Datová struktura

Všechny exporty a výpočty probíhají zásadně na úrovni kampaní. Technicky by samozřejmě šlo přesunout se na úroveň reklamních sestav nebo dokonce klíčových slov, ale to už by šlo o úplně jinou tabulku s úplně jiným účelem.

Jak jste si určitě všimli, nepracuji s jednou tabulkou, ale hned se dvěma. V jedné mám „syrová“ data z reklamního systému a ve druhé mám už samotnou tabulku, se kterou dále pracuji. Důvod je jednoduchý – při automatickém exportu dat z kampaně se celá tabulka vždy kompletně přepíše aktuálními daty, všechny pevně zadané údaje jako je rozpočet, nebo cíl kampaně by se při tom samozřejmě ztratily, stejně jako vzorečky se kterými pracuji.

Proto jsou v jedné tabulce čistá data z reklamních systémů a odtud už si je pomocí funkcí vyzobávám a doplňuji je tam, kam potřebuji. Tou kouzelnou funkcí je „VLOOKUP“ (česky „SVYHLEDAT“) a párovacím klíčem je název kampaně.

Těch tabulek může být dokonce může být víc než dvě, pokud využíváte více reklamních kanálů (Google, Facebook) a z každého systému odesíláte data do jedné tabulky. Pak je samozřejmě potřeba ohlídat si, jestli každá kampaň „sahá“ pro data do správné zdrojové tabulky.

Osobně si generuji pro každý systém dokonce více zdrojových tabulek. Pro aktuální měsíc (u kampaní, které vedu dlouhodobě a vyhodnocuji je na měsíční bázi), pro minulý měsíc (abych kampaně mohli vyhodnotit i zpětně – to je vlastně taky nutnost, když posíláte klientovi report 1. den v měsíci, určitě nechcete ručně doplňovat data, která jste celý minulý měsíc pečlivě sledovali, protože v reportu máte v tuhle chvíli už jen data z dneška) a pro celkové období (pro jednorázové kampaně a případně nějaký obecný přehled u těch dlouhodobých).

Automatický import dat

Teď přichází část, na kterou jste se někteří možná těšili nejvíc. Jak dostat z reklamních systémů data do Google Tabulky a udržet je aktuální a to ještě navíc bez práce. Představím vám dva způsoby, které sám využívám. O každém by se dalo mluvit hodiny, ale aspoň ve stručnosti:

Supermetrics

Nejelegantnější a nejuniverzálnější řešení. Na jedné platformě si jednoduše naklikáte jaká data chcete tahat z jakého reklamního systému, nastavíte si frekvenci a vše funguje jako švýcarské hodinky. Velkou výhodou Supermetrics je to, že si poradí s Googlem, Facebookem, Twitterem, LinkedInem i Bingem. Bohužel si neporadí s českými nástroji jako Sklik nebo Heuréka. Překážkou také může být, že za něj zaplatíte nejméně 69 dolarů měsíčně (ve free verzi dokáže pracovat jen s daty z Google Analytics).

AWQL a skripty pro Google Ads

Výhodou druhého způsobu je, že je zcela zdarma. Nevýhodou pak hlavně to, že funguje pouze pro Google Adwords. Funguje to tak, že v rozhraní Adwords vložíte skript, který vykoná příkaz zapsaný pomocí AWQL (Adwords Query Language) a jeho výsledek vám vypíše do Google sheetu. Pokud jste v psaní skriptů jako doma, víc vědět nepotřebujete. Pro ty ostatní z nás je tu naštěstí skvělý tool od Lyntu, který vám tenhle skript vygeneruje, a vy už jej pak jen nahrajete do Google Ads, nastavíte frekvenci a voilá. Díky kluci, tenhle nástroj zásadně změnil kvalitu mého života!

A co ostatní reklamní systémy?

Možná se ptáte, co s Sklikem, Heurékou a ostatními kanály, které nemůžete exportovat automaticky. Inu můžete se zkusit podívat po jiných nástrojích (Pavel Bureš snad vyvíjel něco pro Sklik), ale někde zkrátka přichází na řadu stará dobrá ruční práce. Dobrá zpráva je, že ručně budete doplňovat data jen do polí, kde byste jinak využili funkci VLOOKUP, tedy jen u utraceného rozpočtu a splněných cílů. Vše ostatní vám dopočítají vzorečky.

Frekvence importu

Osobně vždy nastavuji frekvenci importu dat do tabulky na jednou denně. Tomu jsou také přizpůsobené funkce tabulky, které s aktuálním datem pracují – to jest denní rozpočet a utraceno ke dnešku v procentech. Je možné nastavit frekvenci třeba na každou hodinu, ale

  1. pokud některé kampaně doplňujete ručně budete muset pro adekvátní srovnání doplnit data vždy v reálném čase.
  2. vzorečky, které pracují s aktuálním dnem (denní rozpočet) budou ukazovat s přibývajícími daty v průběhu dne ukazovat stále nepřesnější výsledek (samozřejmě by se dal napsat vzoreček, který by pracoval s aktuální denní dobou, ale dalo by to výrazně víc práce).
  3. pro rychlou kontrolu a vyhodnocení to není kdovíjak zásadní.

Dobu exportu nenastavuji přesně na půlnoc, ale na druhou hodinu v noci. Některým datům trvá trochu déle než se v reklamní systému ustálí, Google třeba zpětně odečítá neplatné prokliky atp. Pokud necílíte kampaně na výrazně odlišné časové pásmo, nepřibývá touhle dobou ani moc nových dat, takže je paradoxně takto posunutý čas přesnější, než export, který by odešel s úderem půlnoci.

Proč si z reklamních systémů beru jen dvě metriky?

Pokud jste četli pečlivě, určitě jste si všimli, že v celé tabulce používám jen dvě metriky z reklamního systému – utracenou částku a pak konkrétní cílovou metriku (prokliky, konverze, tržby…). Samozřejmě by nebyl problém naimportovat si metrik více od počtu zobrazení, přes CTR, konverzní poměr až třeba po skóre kvality reklam. Výsledek by však byl výrazně masivnější a sloužil by spíše jako report než nástroj pro správu kampaní.

Smyslem této tabulky je totiž poskytnout snadný nástroj pro okamžitý přehled o výkonu kampaní a sloužit jako varování v případě náhlých chyb a výpadků. Umožní ve vteřině rozpoznat problémy. K jejich řešení je pak samozřejmě potřeba ponořit se do reklamního systému a prozkoumat další zásadní metriky a nastavení, ale s tím už vám žádná tabulka nepomůže.

Pokud navíc nemáte možnost data importovat do tabulky automaticky, dáte mi za pravdu, že při ručním zadávání jsou dvě metriky přesně o dvě více, než by bylo pohodlné, a každá další navíc je jen zbytečnou přítěží.

Chcete svou vlastní přednastavenou tabulku se vzorci i vším ostatním? Klikněte sem, nechte mi na sebe e-mail a já vám jí během pár dní zašlu!

A jak pracujete se svými kampaněmi vy? Používáte automatizované exporty? Využíváte nějaký podobný nástroj na hlídání cílů kampaní, nebo spoléháte na samotné reklamní systémy? Podělte se na v komentářích, nebo třeba na Facebooku!

CHCI ZASLAT SVOU VLASTNÍ TABULKU!

Ladislav Vitouš

Ladislav Vitouš

Dělám PPC reklamu, která funguje. Nevěřím trendům ani dojmům, ale číslům a hlavně výsledkům. Prošel jsem si firmou i agenturou a teď dělám PPC kampaně na volné noze. Efektivně, bez bullshitu a pohodově.
Ladislav Vitouš