Jsou to dva roky, kdy se v datech Google Analytics 4 začal objevovat nový problém. V rámci návštěvnosti z Google Ads, označené jako google / cpc, se do dimenze Campaign začaly propisovat místo názvu kampaní hodnoty jako (organic) nebo (not set).
Přitom automatické tagování bylo zapnuté a gclid parametr fungoval v URL normálně.
Až se objevil na Linkedinu příspěvek, který to všechno vysvětluje.
#Proč k tomu vůbec dochází
Důvodů je víc a liší se podle toho, co přesně v GA4 vidíte.
Nejčastější příčina je consent. Když uživatel na webu odmítne reklamní cookies, nebo má v nastavení svého Google účtu vypnutou personalizaci reklam, GA4 sice pozná z gclid parametru, že návštěva přišla z Google Ads – ale nemá přístup k detailům kampaně. V tu chvíli dosadí místo názvu kampaně hodnotu (organic). Není to chyba, je to záměrné chování: GA4 říká vím, že šlo o Google vyhledávání, ale více nevím.
Druhá situace nastane, když se page_view event v GA4 nespustí včas nebo vůbec. Tohle se děje hlavně u single page aplikací. GA4 vidí gclid, takže zdroj a médium má správně jako google / cpc, ale název kampaně nestihne načíst a dosadí (not set).
Pokud vidíte místo názvu kampaně (referral), jde obvykle o přerušenou kontinuitu session. Typicky u e-shopů, kde uživatel přeskakuje mezi doménami nebo subdoménami bez nastaveného cross-domain trackingu. GA4 to vyhodnotí jako novou session z referralu.
A (direct) se objeví u vracejících se uživatelů, kteří přišli zpět bez gclid parametru, třeba přes záložku nebo přímé zadání URL. GA4 nemá jak zjistit, že původně klikli na reklamu.

#Proč to vůbec řešit
V Google Ads názvy kampaní vidíte. Jenže GA4 vám k nim přidá kontext, který v Google Ads nenajdete – míru zapojení, průměrnou dobu na webu, chování uživatelů po příchodu z konkrétní kampaně. Bez správných názvů kampaní v GA4 tohle jednoduše nevyhodnotíte.
#Jak to opravit
Řešení je překvapivě jednoduché. Pomůže ruční UTM tagování vedle automatického tagování, které máte v Google Ads zapnuté.
Ke každé reklamě přidáte do finální URL parametry utm_source=google, utm_medium=cpc a utm_campaign s názvem kampaně. GA4 pak má název kampaně přímo v URL a nepotřebuje ho dohledávat přes gclid a takže ani consent omezení nehrají roli.
Nejpohodlnější cesta je přes Google Ads skript, který tohle udělá automaticky přes celý účet. Skript publikoval Jan Zdarsa na svém GitHubu a funguje spolehlivě. Nastavíte ho jednou, spustíte na frekvenci každou hodinu a dál se o to nestaráte.
Stačí v rámci Google Ads zvolit Tools → Bulk actions → Scripts a vložit obsah odkazu utm_tracking_single_account.js z Githubu. Viz screenshot níže:

Pár věcí je ale potřeba mít na paměti. Skript nepokrývá Demand Gen, Discovery a Video kampaně – tam je potřeba UTM parametry doplnit ručně. A automatické tagování nevypínejte, oboje musí běžet zároveň.
Výsledky se projeví postupně. Lookback window v GA4 je 90 dní, takže historická data zůstanou tak jak jsou. Dopředu ale kampaně začnou padat správně.
Pokud si s nastavením nejste jistí nebo chcete mít jistotu, že vám data v GA4 sedí, napište mi. Rád se na to podívám.