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.valueicurrency— wartość i waluta. Zdecyduj raz, czyvalueto 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.pushna 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_item,add_to_cart,begin_checkout,add_payment_info) bez pisania każdego zdarzenia ręcznie. Wtedy wybierz wtyczkę, która tylko budujedataLayeri 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 potransaction_idto 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_id,ecommerce.value,ecommerce.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ż
value,currencyitransaction_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_idwysłany dwa razy nie doda drugiej konwersji. - GA4: przekazuj
transaction_idw każdym zdarzeniupurchase; 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_data,ad_personalization,ad_storage,analytics_storage). Bez poprawnego trybu zgody tracisz sygnały i część konwersji nie jest nawet modelowana.
Weryfikacja: podgląd GTM, Tag Assistant, testowy zakup
- Podgląd GTM — zrób testowe zamówienie, sprawdź, czy zdarzenie
purchasepojawia się raz, z poprawnymivalue,currency,transaction_id. - Tag Assistant / karta Sieć — potwierdź, że żądanie konwersji Google Ads i zdarzenie GA4 wychodzą z właściwymi parametrami.
- 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 (value, currency, transaction_id), bo inaczej systemy pokażą różne liczby.


