Bez prawidłowego conversion tracking cała reszta marketingu to zgadywanie. Pokażemy kompletny setup GA4 + GTM dla WooCommerce — wszystkie eventy e-commerce (view_item, add_to_cart, begin_checkout, purchase), enhanced conversions, offline conversions z zamówień telefonicznych. Implementacja, którą stosujemy w Elsii u wszystkich klientów WooCommerce.
Standardowy stack tracking dla WooCommerce:
dataLayer przy każdej akcji (view, add to cart, checkout, purchase)Dla WooCommerce najprostsze rozwiązanie: wtyczka GTM4WP (free) — automatycznie wysyła wszystkie eventy e-commerce do dataLayer w formacie zgodnym z GA4. Alternatywy: PixelYourSite Pro, Tag Manager for WooCommerce (płatne, więcej funkcji).
Co dostajesz po włączeniu GTM4WP:
// Strona produktu
dataLayer.push({
event: 'view_item',
ecommerce: {
items: [{
item_id: '123',
item_name: 'Łóżko Otello 160',
item_brand: 'Mebstyle',
item_category: 'Łóżka',
price: 2499.00,
currency: 'PLN'
}]
}
});
// Po dodaniu do koszyka
dataLayer.push({
event: 'add_to_cart',
ecommerce: { items: [...] }
});
// Purchase (strona thank-you)
dataLayer.push({
event: 'purchase',
ecommerce: {
transaction_id: 'WC-12345',
value: 2499.00,
currency: 'PLN',
tax: 467.07,
shipping: 0,
items: [...]
}
});
W GTM tworzysz 4 typy tagów (po jednym per main event):
Kluczowe variables w GTM, które musisz zbudować:
DLV - ecommerce.transaction_id — Data Layer Variable z transaction_idDLV - ecommerce.value — wartość transakcjiDLV - ecommerce.currency — walutaDLV - ecommerce.items — lista produktów (tablica)JS - user_email_hash — Custom JS variable hashująca email klienta SHA-256 (dla Enhanced Conversions)Po deploycie GTM debug mode + Google Tag Assistant. Przejdź pełną ścieżką klienta (view → add to cart → checkout → purchase) i sprawdź:
Enhanced Conversions for Web wysyłają zhashowany email + telefon klienta razem z konwersją. Działa nawet bez cookies (post-iOS 14.5, post-cookie). Wymóg: zhashowany przez SHA-256 w przeglądarce, przesłany jako część conversion data.
// Custom JS variable w GTM
function() {
var email = {{DLV - customer.email}}; // z dataLayer
if (!email) return undefined;
return sha256(email.toLowerCase().trim());
}
Match rate Enhanced Conversions powinien być >50% po 7 dniach. Poniżej tego — coś nie działa (np. emaile nie są przekazywane).
Część transakcji w WooCommerce nie idzie przez standardowy checkout — np. zamówienia telefoniczne dodane przez admina, zamówienia z BLIK po telefonie. Te konwersje też trzeba zaraportować do Ads, inaczej algorytm widzi tylko 70% prawdy.
Implementacja: cron WooCommerce co 24h eksportuje nowe orders → REST API Google Ads → conversion uploads z GCLID (zapisanym w meta order, jeśli kupujący przyszedł z reklamy). Wzrost match rate z 70% do 95%.
Pełen pakiet — Google Ads dla e-commerce. Case implementacji od zera — PMax dla sklepu meblowego.