Forrás: Analytics Mania

A szerveroldali Google Tag Manager (server-side GTM) a pontosabb mérés és a jobb adatvédelem miatt egyre népszerűbb, Shopify-on viszont van egy alattomos buktató: a checkout annyira zárt környezet, hogy a standard szerveroldali beállítás gyakran elveszíti a Google Click ID-t (GCLID) — enélkül pedig a Google Ads nem tudja a vásárlást a hirdetéshez kötni, és sérül az attribúció. Ez az Analytics Mania videó pontosan ezt a problémát járja körül, és megmutatja a megkerülő megoldást is.

Az alábbi összefoglaló magyarul végigveszi a videó gondolatmenetét fejezetenként, hogy el tudd dönteni, megéri-e végignézned, és hogy a saját beállításodhoz is legyen egy térképed. A cikk nem lépésről lépésre kattintós leírás — a videó azt sokkal jobban megmutatja —, hanem a logika és a buktatók magyar nyelvű átirata.

Kinek szól, és mit kell előre tudni?

A tananyag haladó: feltételezi, hogy már működik nálad egy web GTM konténer és egy szerver konténer (a videóban Stape-en hostolva), a webes konténerben egy GA4 konfigurációs (Google-) tag és egy purchase tag, amely az e-commerce adatokat a szerveroldali konténerbe küldi. A szerző a Stape Shopify-pluginjével telepíti a GTM-et. Ha ez a rész még hiányzik, előbb a szerveroldali GTM Shopify-ra telepítését érdemes elvégezni, és csak utána jönnek az itt következő lépések.

Fontos korlát, ami végig visszaköszön: a Shopify checkoutján a GTM preview (előnézeti) módja nem működik. Emiatt a szerző nem a webes konténer preview-jából dolgozik, hanem a szerver konténer preview módján és a beérkező kérések vizsgálatán keresztül ellenőrzi, mi történik.

A checkout „elrontott" URL-jeinek javítása

Az első gyakorlati probléma, hogy a storefronton a GA4 nem tudja automatikusan a helyes oldal-URL-t kiolvasni, a checkouton pedig az URL-ek kifejezetten „obfuszkáltak" (elrejtett, torzított formájúak). A megoldás egy actual URL nevű Data Layer változó, amit a GA4 tag page_location paramétereként adunk át — méghozzá úgy, hogy adunk neki egy fallback értéket is (a beépített page location változót), arra az esetre, ha az actual URL nem elérhető a data layerben.

A trükk, ami sok időt spórol: ha az összes eseménytag ugyanazt az event settings változót használja, elég egyetlen helyen felvenni a page_location paramétert, és az összes tag automatikusan örökli.

A szerver konténerben először egy GA4 client trigger kell (a feltétel: a client name egyenlő GA4), erre fog tüzelni minden beérkező GA4 kérés. Ezután jön a conversion linker tag, amelynek egyetlen feladata, hogy beállítson egy sütit a Google Click ID-vel a látogató böngészőjében.

Google Ads oldalon a szokásos úton hozzuk létre a konverziót: Goals → Conversions → Create conversion action → Purchase → manually with code → switch to Google Tag Manager. Innen két értéket kapunk, a conversion ID-t és a conversion label-t, amelyeket a szerveroldali Google Ads conversion tracking tagbe illesztünk, és a korábbi purchase eseményre kötjük triggerként.

Érdemes bekapcsolni az enhanced conversions-t is, és a vásárláshoz felhasználói adatot (pl. e-mail) küldeni: a webes konténerben egy user_data.email data layer változóból egy „user provided data" változót építünk, amit a purchase tag user_data paramétereként adunk át. Ez a jobb egyeztetést (matching) szolgálja.

Itt jön a videó lényege. A teszt-vásárlás után a Google Ads conversion tag ugyan „tüzel", de nem indít kimenő kérést a szerverről a Google felé. Az ok: a Google Ads tag csak akkor küld adatot, ha hozzáfér a Google Click ID-hoz — és bár a conversion linker beállította a sütit, a tag mégsem éri el.

⚠️ Miért nem látja a tag a click ID-t?

A storefrontról küldött analytics kérések automatikusan viszik a cookie-információt (benne a click ID-s sütit), a checkoutról küldött kérések viszont nem. Hiába van ott a süti a böngészőben, a szerveroldali GTM nem kapja meg — így a Google Ads nem fér hozzá a click ID-hoz. Pontosan ez az, ami tönkreteszi az attribúciót Shopify-on.

Ennek gyakorlati következménye: ha például az add to cart eseményt követnéd konverzióként (ami a storefronton történik), működne — de a purchase a checkouton van, ahol a cookie már nem jut át.

A megoldás: a Google Click ID kézi átadása

A megkerülés azon alapul, hogy a webes GTM tagek a checkouton is hozzáférnek a sütikhez — tehát a click ID-t manuálisan „becsomagoljuk" a szerverre küldött kérésbe.

A webes konténerben: egy first-party cookie változóval kiolvassuk az _fpgclaw süti értékét, és egy új paraméterként (pl. custom_fpgclaw) hozzáadjuk az eseménytagekhez — megint a közös GA settings változón keresztül, hogy minden tag örökölje.

A szerver konténerben több lépés:

  1. Egy event data változó kiolvassa a beérkező kérésből ezt a custom_fpgclaw értéket.
  2. Mivel a Google-nek csak a tiszta click ID kell (nem a teljes süti-érték), egy custom template-tel (a videó a Stape GitHub-repójából importált „GCLID from FPGCLAW" sablonra mutat) kinyerjük belőle a GCLID-t.
  3. Egy URL Builder sablonnal (szintén Stape) újraépítjük a page_location-t úgy, hogy tartalmazza a gclid paramétert a kinyert click ID-vel.
  4. Végül egy augment event transformation felülírja a page_location mezőt erre az új értékre — feltételesen: csak akkor, ha a custom_fpgclaw nem „undefined", és csak a Google Ads conversion tracking tagekre alkalmazva.

A záró teszt után a purchase eseménynél a Google Ads tag már valódi kimenő kérést küld a Google felé, benne a click ID-vel. Az utolsó lépés a szerver konténer publikálása — és ezzel a Shopify-bolt Google Ads konverziókövetése szerveroldalon is pontosan mér.

Kulcs-tanulságok

  • A Shopify checkout más, mint a storefront: a checkout kéréseiben nincs cookie-információ, ezért a szerveroldali Google Ads tag alapból nem éri el a Google Click ID-t.
  • A conversion linker önmagában nem elég Shopify-on — beállítja a sütit, de a checkoutról az nem jut el a szerverig.
  • A megoldás a click ID kézi továbbítása: webes oldalon kiolvasod a sütit és paraméterként átküldöd, szerveroldalon kinyered és egy transformation-nel az URL-be írod.
  • Mindig feltételesen és célzottan: a transformation csak akkor fusson, ha van click ID, és csak a Google Ads tagre — különben más tagek adatait is elronthatod.
  • A checkouton nincs preview mód — a szerver konténer preview-ján és a beérkező kéréseken keresztül tesztelj, és minden módosítás után publikálj, mielőtt vásárlást tesztelsz.

Ha a mérési alapokat is szeretnéd rendbe tenni, előbb érdemes a GA4 helyes beállításán végigmenni — a szerveroldali Google Ads követés arra épül rá.

Forrás

Az eredeti (angol nyelvű) videó az Analytics Mania csatornától származik, a bemutatót Julius készítette. A teljes, lépésről lépésre kattintós beállításhoz nézd meg a fenti beágyazott videót — ez a cikk a gondolatmenet magyar összefoglalója, nem az eredeti tartalom pótlása.

Gyuri

Gyuri

Hugyecz György – keresőoptimalizálási szakértő és a TotalStudio egyik tulajdonosa. Weboldalaknál és webáruházaknál elsősorban SEO-val, tartalomfejlesztéssel és technikai auditokkal foglalkozik, emellett fizetett hirdetésekkel (Google Ads, Meta), szövegírással és általános tanácsadással is; aktívan érdeklődik és használja a különböző AI-megoldásokat.

Profil