PLUMWEB – reklama w internecie

E-commerce

Pomiar konwersji e-commerce w WooCommerce przez GTM — bez wtyczki, z deduplikacją

Jan Śliwakowski
6 min czytania
1161 słów
Pomiar konwersji e-commerce w WooCommerce przez GTM — bez wtyczki, z deduplikacją
Strona główna / Blog / E-commerce

Konwersje WooCommerce w Google Ads przez GTM da się skonfigurować na dwa sposoby: „zainstaluj wtyczkę, która robi wszystko” albo „zbuduj świadomy pomiar, który rozumiesz i kontrolujesz”. Ten drugi wybór jest wart tego artykułu, bo wtyczka „do wszystkiego” bywa czarną skrzynką — nie wiesz, jakie zdarzenia wysyła, na jakiej wartości, czy dedupликuje transakcje i co się dzieje przy płatnościach z przekierowaniem.

Poniżej: co musi trafić do warstwy danych przy zakupie, jak zbudować tagi w Menedżerze tagów Google dla Google Ads i GA4 z jednego źródła, i jak zdeduplikować zakup, żeby nie liczył się podwójnie.

Co musi trafić do warstwy danych przy zakupie

Na stronie podziękowania (po złożeniu zamówienia) potrzebujesz zdarzenia purchase z kompletem danych:

window.dataLayer = window.dataLayer || [];window.dataLayer.push({  event: 'purchase',  ecommerce: {    transaction_id: '12345',        // numer zamówienia WooCommerce — klucz deduplikacji    value: 249.00,                   // wartość zamówienia (ustal: brutto czy netto — i trzymaj się tego)    currency: 'PLN',    tax: 46.55,    shipping: 15.00,    items: [      { item_id: 'SKU-001', item_name: 'Nazwa produktu', price: 117.00, quantity: 2 }    ]  }});

Najważniejsze pola:

  • transaction_id — numer zamówienia. Bez niego nie ma deduplikacji.
  • value i currency — wartość i waluta. Zdecyduj raz, czy value to kwota brutto czy netto, zapisz w dokumentacji konta i nie zmieniaj.
  • items — pozycje koszyka, potrzebne do e-commerce w GA4 i do remarketingu dynamicznego.

Gdzie to wstrzyknąć w WooCommerce

Warstwę danych generujesz w szablonie strony podziękowania — w motywie potomnym, przez hook woocommerce_thankyou. Odczytujesz obiekt zamówienia (wc_get_order), budujesz z niego dataLayer.push i wypisujesz go w stopce tej strony. To kilkanaście–kilkadziesiąt linii PHP, w pełni pod Twoją kontrolą.

Wariant bez „wtyczki do wszystkiego”

Minimalny snippet vs pełne rozwiązanie

  • Własny, minimalny dataLayer.push na stronie podziękowania — wystarcza do konwersji Google Ads i podstawowego e-commerce w GA4. Kilkanaście linii, zero zależności, pełna kontrola nad wartością i strukturą.
  • Rozbudowana wtyczka e-commerce dla GTM — sensowna, jeśli potrzebujesz pełnego lejka (view_itemadd_to_cartbegin_checkoutadd_payment_info) bez pisania każdego zdarzenia ręcznie. Wtedy wybierz wtyczkę, która tylko buduje dataLayer i pozwala Ci zarządzać tagami w GTM — a nie taką, która sama „gdzieś tam” odpala piksele.

Ryzyka, o których trzeba wiedzieć

  • Podwójne zdarzenia purchase — gdy równolegle działa wtyczka i własny snippet, albo gdy strona podziękowania odświeża się / wraca się do niej z historii. Deduplikacja po transaction_id to zabezpiecza (patrz niżej).
  • Płatności z przekierowaniem (Przelewy24, PayU, BLIK, Autopay) — klient po opłaceniu nie zawsze wraca na standardową stronę podziękowania, więc zdarzenie może nie odpalić. Rozwiązania: kierowanie z bramki na order-received, pomiar po stronie serwera przy zmianie statusu zamówienia na „opłacone”, albo połączenie obu.

Tagi w GTM krok po kroku

1. Tag Google i Conversion Linker na wszystkich stronach

  • Dodaj tag Google (konfiguracyjny) z regułą Wszystkie strony.
  • Dodaj tag Conversion Linker również na wszystkich stronach — zapisuje informacje o kliknięciu reklamy, bez niego atrybucja Google Ads się sypie.

2. Tag konwersji Google Ads na zdarzeniu purchase

  • Utwórz zmienne warstwy danych: ecommerce.transaction_idecommerce.valueecommerce.currency.
  • Utwórz regułę uruchamiającą typu zdarzenie niestandardowe o nazwie purchase.
  • Skonfiguruj tag „Śledzenie konwersji Google Ads” (ID konwersji + etykieta z konta Google Ads), przekaż valuecurrency i transaction_id (jako Order ID / Transaction ID).

3. GA4 purchase z tych samych zmiennych

  • Tag zdarzenia GA4 o nazwie purchase, na tej samej regule, czytający te same zmienne warstwy danych plus tablicę items.
  • Jedno źródło danych dla Google Ads i GA4 = brak rozjazdu wartości między systemami.

Deduplikacja — żeby nie liczyć zakupu podwójnie

transaction_id jako klucz

  • Google Ads: w ustawieniach konwersji sprzedaży upewnij się, że liczenie uwzględnia unikalny identyfikator transakcji — ten sam transaction_id wysłany dwa razy nie doda drugiej konwersji.
  • GA4: przekazuj transaction_id w każdym zdarzeniu purchase; GA4 odrzuca powtórzone transakcje o tym samym ID w oknie kilku dni.

Browser vs serwer

Jeśli mierzysz zakup i w przeglądarce, i po stronie serwera (np. przez Conversions API / server-side GTM), oba zdarzenia muszą nieść wspólny identyfikator zdarzenia (transaction_id do dedup transakcji, dodatkowo event_id do dedup pojedynczego zdarzenia browser/serwer). Bez tego jedna sprzedaż policzy się dwa razy.

Konwersje rozszerzone i Consent Mode — bez tego pomiar przecieka

  • Konwersje rozszerzone (enhanced conversions): w tagu konwersji Google Ads włącz przekazywanie zahaszowanych danych klienta (najczęściej e-mail z zamówienia). Odzyskują część konwersji, których nie da się przypisać przez same pliki cookie — zwykle kilka procent więcej.
  • Consent Mode v2: jeśli kierujesz reklamy na EOG, tagi muszą respektować zgody (ad_user_dataad_personalizationad_storageanalytics_storage). Bez poprawnego trybu zgody tracisz sygnały i część konwersji nie jest nawet modelowana.

Weryfikacja: podgląd GTM, Tag Assistant, testowy zakup

  1. Podgląd GTM — zrób testowe zamówienie, sprawdź, czy zdarzenie purchase pojawia się raz, z poprawnymi valuecurrencytransaction_id.
  2. Tag Assistant / karta Sieć — potwierdź, że żądanie konwersji Google Ads i zdarzenie GA4 wychodzą z właściwymi parametrami.
  3. Po 24–48 h — sprawdź w Google Ads, czy konwersja się zarejestrowała, i porównaj liczbę oraz wartość transakcji z panelem WooCommerce. Rozjazd rzędu kilku–kilkunastu procent między Google Ads a WooCommerce jest normalny (atrybucja, zgody); rozjazd 2x oznacza błąd — najczęściej brak deduplikacji.

FAQ

Czy da się śledzić konwersje WooCommerce bez wtyczki?

Tak. Wystarczy wygenerować warstwę danych ze zdarzeniem purchase w szablonie strony podziękowania (hook woocommerce_thankyou) i obsłużyć resztę tagami w Menedżerze tagów Google. Wtyczka jest wygodna przy pełnym lejku e-commerce, ale do samej konwersji sprzedaży nie jest potrzebna.

Po co transaction_id w konwersji Google Ads?

To klucz deduplikacji. Jeśli strona podziękowania odświeży się albo zdarzenie purchase odpali dwa razy, ten sam transaction_id sprawia, że Google Ads liczy tylko jedną konwersję zamiast dwóch. Bez niego wartość konwersji potrafi się zawyżyć.

Dlaczego brakuje konwersji przy płatnościach Przelewy24 / PayU?

Bo po opłaceniu w bramce klient nie zawsze wraca na standardową stronę podziękowania, więc zdarzenie purchase w przeglądarce się nie uruchamia. Rozwiązania: wymuszenie powrotu na stronę order-received, pomiar po stronie serwera przy zmianie statusu zamówienia na „opłacone”, albo połączenie obu z deduplikacją.

Czym różni się zdarzenie purchase dla GA4 od konwersji Google Ads?

To dwa różne tagi na tym samym zdarzeniu warstwy danych. GA4 purchase zasila raporty e-commerce i analitykę biznesową. Konwersja Google Ads służy do optymalizacji kampanii i licytacji. Warto, żeby oba czytały te same zmienne (valuecurrencytransaction_id), bo inaczej systemy pokażą różne liczby.

Udostępnij:
Jan Śliwakowski
Specjalista Google Ads & Meta Ads

Specjalista Google Ads i Meta Ads. Prowadzę kampanie dla firm e-commerce i usługowych.

Dowiedz się więcej o mnie