Stručně: Na obřím webu nezní první otázka u Search na klíčová slova, ale které vstupní stránky si vůbec můžou dovolit inzerci. Z exportu vstupních stránek z GA4 a crawlu webu spočítáte pro každou stránku maxCPC = cílový CRR × CR × AOV a porovnáte ho se skutečným průměrným CPC. Výstupem je TOP 100–200 stránek hodných kampaně plus čistá hromádka „na tohle nebiduj" — ještě než utratíte cent.
Co do toho dáš a co z toho dostaneš
Dáš do toho dvě věci, které už máš: export vstupních stránek z GA4 a crawl svého webu. Dostaneš zpátky jednu věc — seřazený seznam vstupních stránek, které si zaslouží Search kampaň jako první, každou s přesným max CPC, který si může dovolit, a čistou hromádku „na tohle nebiduj” pro stránky, jejichž ekonomika placené vyhledávání zakazuje. Žádný keyword nástroj, žádné tušení, žádné „prostě zapneme dynamické reklamy ve vyhledávání a uvidíme”. Tabulka, která ti řekne, kam namířit rozpočet, než utratíš jediný cent.
To je celý článek. Níže projedu pipeline od začátku do konce a v každém kroku ti ukážu doslova to, co vypadne ven — řádky z GA4, aritmetiku max CPC na jednom řádku, tabulku extrakce z crawlu, prioritizační seřazení před a po a diagnózu problémové stránky, která zachrání stránku, kterou by všichni ostatní smazali. Čísla jsou v celém článku ilustrativní — dosaď si vlastní — ale tvary jsou přesně to, co nástroje vrací.
Proč se vůbec obtěžovat s pre-flightem? Protože default na webu s 10 000 URL je namířit širokou kampaň na všechno a nechat Google, ať si to roztřídí. To spálí rozpočet na stránkách, které nikdy nemohly konvertovat, rozvolní cílový ROAS a otráví fázi učení. Tenhle filtr je nejlevnější pojistka, jakou kdy koupíš.
Pipeline v jednom boxu
- Co chceme Vstupní stránky, které stojí za inzerci, seřazené
- Vstupy Export vstupních stránek z GA4 · crawl webu
- Jeden vzorec maxCPC = cílový CRR × CR × AOV
- Co dostaneš Hromádka postavit, hromádka opravit, hromádka přeskočit
Jedno číslo, které rozhoduje o všem: max CPC
Každá vstupní stránka má strop — nejvíc, co můžeš zaplatit za proklik a pořád ještě trefit cílovou efektivitu. Spočítej ho pro každou stránku a celá prioritizace vypadne z matematiky:
maxCPC = cílový CRR × CR × AOV
kde CRR (cost-revenue ratio — evropské PNO, ekvivalent ACOS) je podíl tržeb, který jsi ochotný utratit za reklamu, CR je konverzní poměr stránky a AOV je její průměrná hodnota objednávky.
Konkrétní příklad, přímo ze vzorce. Stránka kategorie konvertuje na 2 %, průměrná objednávka je €1,000 a ty jsi ochotný utratit za reklamu 10 % tržeb (10× ROAS):
maxCPC = 0.10 × 0.02 × €1,000 = €2.00.
Pokud raději přemýšlíš v ROAS, totéž se přerovná na maxCPC = CR × AOV / ROAS = 0.02 × 1,000 / 10 = €2.00. Stejné číslo, vyber si tvar, který tvému mozku sedí. (Ilustrativní příklad.)
Těch €2.00 je verdikt. Porovnej je se skutečným průměrným CPC ve tvém účtu pro daný trh a stránka se roztřídí sama: pohodlně nad průměrným CPC → postav ji; pod ním → na sebe nevydělá; hluboko pod ním → ani na to nemysli. Všechno, co následuje, je jen spolehlivé vyrobení tohohle čísla pro každou stránku a čtení výsledku.
Pipeline na první pohled
Pět kroků. Pro každý: co děláš, na co se díváš a proč — protože každý krok existuje, aby odpověděl na jednu konkrétní otázku o stránce.
1 — Vytáhni ekonomiku vstupních stránek z GA4
Udělej: pro každou vstupní stránku exportuj sessions, konverze, transakce a tržby; odvoď CR a AOV. Proč: tohle je signál poptávky a peněz — bez něj je max CPC jen odhad. Dostaneš: jeden řádek na stránku nesoucí dvě čísla, která vzorec jí (CR a AOV).
2 — Procrawluj web kvůli struktuře
Udělej: procrawluj každou stránku kvůli title, H1, hloubce breadcrumbu a — to nejdůležitější — kolik produktů vypisuje. Proč: GA4 zná ekonomiku, ale ne strukturu; stránka se dvěma produkty skladem neunese kampaň, ať konvertuje sebelíp. Dostaneš: strukturní zrcadlo svých GA4 řádků plus příznak tenké stránky.
3 — Spoj oba datasety, spočítej max CPC
Udělej: spoj GA4 + crawl podle URL, projeď vzorec na každém řádku, zahoď tenké stránky. Proč: tady se ekonomika a struktura potkávají a verdikt se stává spočitatelným. Dostaneš: každou stránku s max CPC hned vedle ní.
4 — Prioritizuj: max CPC vs. skutečný průměrný CPC
Udělej: dej max CPC každé stránky vedle skutečného průměrného CPC ve tvém účtu nebo zemi, seřaď podle rezervy. Proč: max CPC samo o sobě nic neznamená — jen rozdíl oproti tomu, kolik proklik reálně stojí, rozhodne, jestli stránka může vydělat. Dostaneš: TOP 100–200 hromádku postavit, hromádku opravit a hromádku přeskočit.
5 — Diagnostikuj problémové stránky
Udělej: u stránek, které by měly konvertovat, ale nekonvertují, zkontroluj nejdřív cenovou konkurenceschopnost produktů, které vypisují. Proč: nízký CR na stránce, která by měla prodávat, je obvykle merchandisingová netěsnost, ne problém poptávky — a dá se opravit. Dostaneš: stránky zachráněné z hromádky přeskočit zpátky na hromádku postavit, jakmile dokážou reálně konvertovat.
Teď těch samých pět kroků, jeden po druhém, každý s tím, co doslova vyrobí.
Krok 1 — Export z GA4, jak dorazí
Nepotřebuješ žádný luxusní report. V GA4: Prozkoumat → prázdné → Volný formulář, dimenze Vstupní stránka + řetězec dotazu, metriky Sessions, Klíčové události / Konverze, Celkové tržby. Přidej Transakce, pokud je máš; jinak AOV vyjde z tržeb ÷ konverze. Jeden filtr na úvod: vylučte detaily produktů a nechte stránky kategorií / kolekcí — řešíš, kam posílat návštěvnost, a na většině webů to jsou kategorie, ne jednotlivá SKU. Smícháním SKU zkreslíš každé AOV i CR, které spočítáš.
Tady je, jak vypadají čtyři reprezentativní řádky po exportu, s odvozeným CR a AOV:
Landing page Sessions Conv CR Revenue AOV
/cordless-vacuums 8,140 163 2.0% €68,460 €420
/winter-tyres 5,020 156 3.1% €28,080 €180
/sleeping-bags 12,300 135 1.1% €12,825 €95
/phone-cases 9,800 137 1.4% €2,192 €16
(Ilustrativní příklad.) CR je konverze ÷ sessions; AOV je tržby ÷ konverze. To je celý vstup, který vzorec z GA4 potřebuje — dva sloupce, CR a AOV, na stránku. Všimni si už teď, že /sleeping-bags má v sadě nejvíc sessions, a přitom konvertuje nejhůř; podrž si tu myšlenku, je to ta zajímavá pozdějc.
Krok 2 — Crawl a sloupec, který odvádí práci
GA4 ti řeklo, jak si každá stránka vede. Neumí ti říct, že je stránka strukturně dutá — „kategorie” se dvěma produkty skladem nebo parametrický filtr, který by nikdy neměl nést kampaň. Na to potřebuješ crawl. Dvě cesty: nech AI, ať ti za pět minut napíše crawler na jedno použití, nebo použij Screaming Frog s vlastní XPath extrakcí, kterou nastavíš zhruba za tři minuty (celý mini-návod ve steal boxu). Spusť ho v List mode na své sadě URL z GA4 a melе na pozadí, zatímco děláš něco jiného.
Jeden sloupec, který si zaslouží svoje místo, je počet produktů — kolik produktových dlaždic stránka reálně vykreslí. Tady je výstup extrakce napojený na ty samé čtyři stránky plus jednu navíc, kterou crawl označí:
URL Title H1 Products Breadcrumb
/cordless-vacuums Cordless Vacuums … Cordless Vacuums 48 Home>Floorcare>Vacuums
/winter-tyres Winter Tyres | … Winter Tyres 112 Home>Tyres>Winter
/sleeping-bags Sleeping Bags … Sleeping Bags 9 Home>Camping>Sleep
/phone-cases Phone Cases … Phone Cases 640 Home>Accessories>Cases
/clearance-2019 Clearance Clearance 0 Home>Clearance
(Ilustrativní příklad.) Pravidlo tenké stránky odvede práci na místě: /clearance-2019 vypisuje 0 produktů — prázdná kategorie, na kterou GA4 pořád loguje sessions. Před prioritizací zahoď každou stránku pod ~3 produkty a tahle stránka-duch se na hromádku postavit nikdy nedostane. Mini-příklad, situace → akce → výsledek: crawl ukáže „kategorii” s nulou živých produktů → vyloučíš ji před prioritizací → neztratíš kampaň (ani analytikovo odpoledne) na stránce, která nemá co prodávat.
Krok 3 — Spoj oba datasety a vzorec na jednom řádku
Teď se z dvou datasetů stává jeden. Spoj GA4 + crawl podle URL a každá stránka nese jak svou ekonomiku (CR, AOV), tak strukturu (počet produktů). Projeď maxCPC = cílový CRR × CR × AOV dolů sloupcem. Sleduj, jak dopadne na jeden skutečný řádek — /cordless-vacuums, cílový CRR 10 %:
maxCPC = 0.10 × 0.020 × €420 = €0.84.
Jeden řádek, jeden strop. Udělej to pro všechny čtyři přeživší a dostaneš max CPC na stránku, na kterém visí celé rozhodnutí:
Page CR AOV CRR maxCPC = CRR×CR×AOV
/cordless-vacuums 2.0% €420 10% 0.10 × 0.020 × 420 = €0.84
/winter-tyres 3.1% €180 12% 0.12 × 0.031 × 180 = €0.67
/sleeping-bags 1.1% €95 10% 0.10 × 0.011 × 95 = €0.10
/phone-cases 1.4% €16 10% 0.10 × 0.014 × 16 = €0.02
(Ilustrativní příklad.) Cílový CRR se může lišit stránku od stránky, pokud se liší tvoje marže — /winter-tyres tu nese 12 %, protože kategorie snese volnější efektivitu. Všechno ostatní je mechanika. Teď máš max CPC pro každou stránku na webu; další krok je jediné rozhodnutí, které ti zbývá.
Krok 4 — Prioritizuj: seřazení, před a po
Max CPC samo o sobě nic neznamená. €0.84 je v jednom trhu štědré a v jiném nezaplatitelné — co rozhoduje, je rozdíl oproti tomu, kolik tě proklik reálně stojí. Takže si z účtu Google Ads vytáhni skutečný průměrný CPC na stránku (nebo na trh, pokud nemáš per-stránku) a dej obě čísla vedle sebe.
Před — surový join, v jakémkoli pořadí vypadl z GA4, je jako plán nečitelný:
Page maxCPC avg CPC
/sleeping-bags €0.10 €0.45
/phone-cases €0.02 €0.35
/cordless-vacuums €0.84 €0.55
/winter-tyres €0.67 €0.40
Po — seřaď podle rezervy (maxCPC − avg CPC) a ze stejných čtyř řádků se stane zadání práce s verdiktem zapsaným v posledním sloupci:
| Vstupní stránka | CR | AOV | Cílový CRR | maxCPC | průměrný CPC | Verdikt |
|---|---|---|---|---|---|---|
| /cordless-vacuums | 2.0% | €420 | 10% | €0.84 | €0.55 | Postavit hned |
| /winter-tyres | 3.1% | €180 | 12% | €0.67 | €0.40 | Postavit hned |
| /sleeping-bags | 1.1% | €95 | 10% | €0.10 | €0.45 | Nejdřív opravit (problémová stránka) |
| /phone-cases | 1.4% | €16 | 10% | €0.02 | €0.35 | Neztrácet čas |
(Ilustrativní příklad.) Čísla jsou vymyšlená, aby ukázala mechaniku — dosaď si vlastní hodnoty z GA4. Každé maxCPC je tu jen cílový CRR × CR × AOV aplikované na řádek.
Dva řádky jsou jasné. /cordless-vacuums zvládne zaplatit €0.84 proti trhu za €0.55 — +53 % rezerva, postav ji. /winter-tyres stejně tak. /phone-cases si může dovolit €0.02 proti €0.35; nebude to fungovat ani v těch nejdivočejších snech, nech ji být a neotáčej se. Naškáluj tohle ze čtyř řádků na deset tisíc a vršek seřazeného seznamu je tvoje TOP 100–200 — stránky, které se staví první, seřazené podle toho, kolik mají prostoru bidovat.
Zajímavý je /sleeping-bags: maxCPC €0.10 proti trhu za €0.45. Na papíře „neztrácet čas”. Ale měla v celém exportu nejvíc sessions a kategorii, která by evidentně měla prodávat. Podezřele nízký CR na stránce, která by měla konvertovat, je málokdy problém poptávky. Je to problémová stránka — a problémové stránky dostanou diagnózu, ne smazání.
Krok 5 — Problémové stránky: diagnóza na skutečném výpisu
Když konverzní poměr stránky sedí hluboko pod tím, kde by kategorie měla skončit, zeptej se proč, než ji zahodíš. U e-commerce je odpověď ve většině případů cenová konkurenceschopnost produktů, které stránka ukazuje jako první. Prvních 10–20 produktů, které návštěvník vidí, je celý první dojem stránky; pokud to jsou tvoje nejméně hodnotné položky, CR se propadne bez ohledu na to, kolik poptávky stránka přitáhne.
Takže si kategorii přečteš přesně tak, jak ji čte zákazník — v jejím výchozím řazení — a zkontroluješ ceny hero pozic.
Přečti si mix produktů kategorie v pořadí řazení
Vytáhni produkty v /sleeping-bags podle jejich product_type z Google Merchant Center, ve výchozím pořadí výpisu, které návštěvník reálně dostane. Vršek seznamu je to, co konvertuje (nebo ne).
Zkontroluj ceny vršku oproti trhu
Vezmi nejvýše vypsané produkty a prozkoumej živé ceny konkurence přes DataForSEO — endpoint serp/google/organic/live/advanced vrátí celou stránku s výsledky (shopping bloky s obchodníky a cenami, organika) jako strukturované JSON zhruba za $0.0035 za dotaz.
Přeceň nebo přeřaď, pak změř znovu
Pokud jsou hero pozice předražené, máš dvě páky: přecenit, nebo přeřadit kategorii tak, aby vedly skutečně konkurenceschopné produkty. Pak sleduj CR. Teprve až se zvedne, povýšíš stránku z „problémové” na hromádku postavit.
Tady je, jak ta diagnóza doslova vypadá na /sleeping-bags, stránce sedící na maxCPC €0.10. Vršek výpisu, tvoje cena vs. nejlevnější konkurent, kterého DataForSEO našel pro stejný produkt:
Pos Product (first-listed) Your price Cheapest comp. Gap
1 AlpineLite 200 Down Bag €129 €99 +30%
2 TrekWarm Mummy −5°C €115 €112 +3%
3 BaseCamp Synthetic XL €89 €92 −3%
4 ValleyHike Junior €45 €47 −4%
(Ilustrativní příklad.) Netěsnost je hned nahoře: produkt, který 12 300 měsíčních návštěvníků potká jako první, je nacenený 30 % nad nejlevnější nabídkou trhu. Všechno pod ním je konkurenceschopné — ale nikdo neprojede za špatný první dojem. Mini-příklad, situace → akce → výsledek: hero produkt je 30 % nad trhem → sniž jeho cenu na €105 nebo přeřaď tak, aby vedly konkurenceschopné BaseCamp a ValleyHike → CR se zotaví k normě kategorie → projeď znovu Krok 3, maxCPC vyleze z €0.10 a stránka postoupí na hromádku postavit.
Tohle je smyčka, kterou většina agentur nikdy neuzavře, protože překračuje hranici, kterou obvykle nepřekračují. Práce e-shopu (ceny, merchandising, řazení) a práce agentury (nákup návštěvnosti) jsou stejná optimalizační smyčka. Ladit jednu bez druhé znamená bidovat do děravého kýble.
Po filtru: volba, jak nakupuješ
Teprve teď — s hromádkou postavit v ruce — vybíráš jak: AI Max, dynamické reklamy ve vyhledávání, klasický STAG, nebo kombinaci (broad + DSA v jedné kampani). Jedna kampaň, nebo tři, nebo pět záleží na klientovi a objemu konverzí — než budeš dělit, respektuj pravidlo ~30 konverzí na kampaň. Tuhle volbu nechávám záměrně na tobě. Pointa celé pipeline je, že ji děláš až po ekonomice, ne před ní.
Ať skončíš u čehokoli, pravidlo je stejné: nová kampaň nesmí nikdy startovat na špatných stránkách. Slabé vstupní stránky ti rozvolní cílový ROAS a otráví fázi učení. Předfiltr je to, co drží spuštění namířené jen na stránky, které na sebe dokážou vydělat — a odtud je stavba super-struktury (data z crawlu + keyword research na kategorii přes Google Ads API, postavená ve vlnách podle kategorie, jazyka a zralosti) vlastní kus práce, a má svůj článek.
Část, která se vrací k manifestu
Technicky vzato na tom není nic nového. Export z GA4, crawl, scrape cen a join jsi mohl udělat před pěti lety. Jenže by to byl půlrok zakázkového vývoje a kdokoli při smyslech by to v půlce vzdal. Důvod, proč to píšu právě teď, je, že s nástroji jako Codex, Claude Code a současnou generací agentů tohle přestalo být projektem a stalo se z toho běžný úterní workflow — skript, který namíříš na účet a necháš běžet přes noc.
To je celý ten posun a je nejvíc vidět z obou stran najednou: cenotvorba a merchandising e-shopu a inzertní práce agentury se zhroutí do jedné smyčky, kterou můžeš konečně ladit společně. Ekonomika ti ji dovolí uzavřít.
Část, kterou si můžeš ukrást
# 1) Strop na každé vstupní stránce
maxCPC = target_CRR * CR * AOV
= CR * AOV / ROAS # totéž v ROAS tvaru
# např. 0.10 * 0.02 * 1000 = €2.00 (10% CRR, 2% CR, €1000 AOV)
# 2) Screaming Frog vlastní extrakce (~3 min, běží na pozadí)
Configuration → Custom → Custom Extraction → Add
• Produkty na stránce XPath: count(//div[contains(@class,'product-card')])
extractor type: Function Value (count() vrací číslo)
• H1 XPath: //h1 → Extract Text
• Breadcrumb XPath: //nav[@aria-label='breadcrumb'] → Extract Text
Crawl (nebo List mode na tvé sadě URL z GA4) → export → join na GA4 podle URL.
Před prioritizací zahoď jako tenkou stránku každou s < ~3 produkty.- Pro počet produktů použij Function Value, ne Extract Text.
count()vrací číslo; textový extraktor ho spolkne. Tohle je jednoznačně nejčastější důvod, proč se sloupec s počtem vrátí prázdný. - Přizpůsob selektor product-card webu. Pravým tlačítkem na dlaždici produktu → Inspect → vezmi stabilní class. Trefíš tenhle XPath jednou správně a filtr tenkých stránek se spustí sám.
- Nejdřív z exportu GA4 odfiltruj detaily produktů. Řešíš, kam návštěvnost posílat — stránky kategorií a kolekcí — ne jednotlivá SKU. Když je smícháš dohromady, zkreslíš každé AOV i CR, které spočítáš.
- Problémové stránky diagnostikuj v pořadí řazení. Vytáhni kategorii podle
product_typev jejím výchozím řazení výpisu a zkontroluj ceny vršku — co konvertuje, je první dojem, ne průměr stránky.
FAQ
Proč používat maxCPC místo toho, abych se prostě díval na ROAS cíle v Google Ads?
Protože Googlovský tROAS reaguje až poté, co jsi utratil peníze na učení. maxCPC je filtr před spuštěním: řekne ti ještě před jediným prokliknem, které stránky si můžou matematicky dovolit inzerovat. Použiješ ho k rozhodnutí, co stavět; tROAS použiješ k řízení toho, co jsi postavil.
Moje CR a AOV hodně kolísají měsíc od měsíce. Nerozbíjí to ten vzorec?
Použij stabilní okno — 60 až 90 dní — a segmentuj podle zařízení nebo trhu, pokud se výrazně liší. Vzorec nemá být přesný na cent; má roztřídit stránky na hromádky postavit / opravit / přeskočit. Jde ti o rezervu v řádu, ne o desetníky.
Opravdu potřebuju Screaming Frog, nebo mi crawler může prostě napsat AI?
Funguje obojí. Screaming Frog s vlastní XPath extrakcí je no-code cesta a opravdu je to tříminutové nastavení. Naskriptovaný crawler je lepší, pokud potřebuješ data automaticky napojit do pipeline. Vyber podle toho, jestli jde o jednorázový audit nebo opakovatelný workflow.
Co se počítá jako „problémová stránka“ oproti stránce, kterou mám prostě přeskočit?
Stránka k přeskočení má slabou ekonomiku už ze své podstaty — nízké AOV, nízký záměr — takže její maxCPC je opravdu malé a vždycky bude (/phone-cases na €0.02). Problémová stránka by měla konvertovat — slušné AOV, reálná poptávka, hodně sessions — ale nekonvertuje, obvykle proto, že její první vypsané produkty jsou předražené nebo špatně seřazené (/sleeping-bags na €0.10). Stránky k přeskočení necháš stranou; problémové opravíš a pak změříš znovu.
Funguje to jen pro e-commerce?
Vzorec maxCPC funguje všude, kde máš hodnotu konverze — včetně lead genu, kde se AOV stane hodnotou leadu. Diagnostika problémových stránek (product_type z Merchant Center, ceny konkurence, řazení kategorie) je specifická pro e-commerce; problémové stránky v lead genu potřebují vlastní diagnózu, obvykle tření ve formuláři nebo nesoulad nabídky.
Jak tohle souvisí s AI Max a koncem DSA?
Je to upstream toho rozhodnutí. Ať skončíš u jakéhokoli typu kampaně — AI Max, nástupce DSA, klasický STAG — měl by vždycky mířit jen na stránky, které prošly tímhle filtrem. Volba strategie mění, jak nakupuješ; ekonomika rozhoduje, co vůbec stojí za nákup.
CTA: Chceš hromádku postavit pro svůj web, seřazenou podle toho, kolik si každá stránka reálně může dovolit? Pojďme na tvojí GA4 spustit filtr.