Przejdź do treści

E-commerce w GA4 od początku do końca przez kontener serwerowy

Gdy GA4 działa już przez Twój kontener serwerowy, e-commerce to głównie praca w kontenerze Web. Strona wysyła każdą akcję w sklepie do dataLayer, jeden tag zdarzenia GA4 przekazuje ją do https://sgtm.example.com, a serwerowy tag GA4, który już masz, wysyła ją dalej razem ze wszystkimi produktami. W tej lekcji skonfigurujesz zdarzenia, tag i regułę, zabezpieczysz zakup przed podwójnym liczeniem i sprawdzisz dane po drodze.

Średnio zaawansowany 13 min czytania

Czego się nauczysz

  • Dowiesz się, jakich zalecanych zdarzeń e-commerce oczekuje GA4 i jakich parametrów wymaga każde z nich.
  • Wyślesz do dataLayer czyste dane e-commerce, najpierw czyszcząc poprzedni obiekt.
  • Wyślesz każde zdarzenie e-commerce jednym tagiem zdarzenia GA4 i jedną regułą Custom Event.
  • Uruchomisz purchase raz na zamówienie i sprawdzisz go w Preview serwera, DebugView i raportach Monetization.

Zanim zaczniesz

  • GA4 w kontenerze Web wysyłające dane do kontenera serwerowego (lekcja 3).
  • Serwerowy tag GA4 z regułą Client Name equals GA4 (lekcja 4).
  • Programista albo wtyczka sklepu, która potrafi wysyłać dane do dataLayer na stronach produktu, koszyka i zamówienia.

02 Wyślij dane do dataLayer

Każdy push składa się z dwóch części: najpierw ecommerce: null, potem zdarzenie ze świeżym obiektem ecommerce. dataLayer scala obiekty, więc bez resetu produkty z poprzedniego zdarzenia mogą przeciec do następnego, na przykład produkt z view_item trafi do add_to_cart.

js
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
  event: 'view_item',
  ecommerce: {
    currency: 'EUR',
    value: 129.90,
    items: [{ item_id: 'SKU-1', item_name: 'Shoes', item_brand: 'Acme', item_category: 'Footwear', price: 129.90, quantity: 1 }]
  }
});
js
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
  event: 'add_to_cart',
  ecommerce: {
    currency: 'EUR',
    value: 129.90,
    items: [{ item_id: 'SKU-1', item_name: 'Shoes', price: 129.90, quantity: 1 }]
  }
});

Push zakupu dodaje transaction_id i pełną wartość zamówienia. Wyrenderuj go na stronie podziękowania z prawdziwymi danymi zamówienia ze sklepu.

js
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
  event: 'purchase',
  ecommerce: {
    transaction_id: 'T-10293',
    value: 129.90,
    currency: 'EUR',
    items: [{ item_id: 'SKU-1', item_name: 'Shoes', price: 129.90, quantity: 1 }]
  }
});

03 Jeden tag zdarzenia GA4 dla wszystkich zdarzeń e-commerce

W kontenerze Web nie potrzebujesz osobnego tagu dla każdego zdarzenia. Jeden tag Google Analytics: GA4 Event może odczytać z dataLayer nazwę zdarzenia i dane e-commerce i wysłać to zdarzenie, które akurat trafiło do dataLayer.

  1. 1 Utwórz regułę typu Custom Event. Jako nazwę zdarzenia wpisz ^(view_item_list|select_item|view_item|add_to_cart|remove_from_cart|view_cart|begin_checkout|add_shipping_info|add_payment_info|purchase)$ i zaznacz Use regex matching.
  2. 2 Utwórz tag typu Google Analytics: GA4 Event. Wpisz swój identyfikator pomiaru G-XXXXXXXXXX (albo wybierz swój Google tag) i w polu Event Name ustaw wbudowaną zmienną {{Event}}.
  3. 3 W More Settings otwórz Ecommerce, zaznacz Send Ecommerce data i jako źródło danych wybierz Data Layer.
  4. 4 Podepnij regułę Custom Event, nazwij tag (na przykład GA4 - ecommerce) i zapisz.

Tag wychodzi przez ten sam Google tag, który ma już server_container_url ustawione na https://sgtm.example.com z lekcji 3, więc każde zdarzenie e-commerce trafia najpierw do Twojego kontenera serwerowego.

04 Co zmienia się w kontenerze serwerowym

Nic. Klient GA4 przejmuje trafienia e-commerce jak każde inne zdarzenie GA4, a produkty jadą w środku trafienia. Tag GA4 z lekcji 4, z regułą Client Name equals GA4, przekazuje je do Google Analytics razem z value, currency i transaction_id.

Kontener serwerowy to nadal dobre miejsce na dodatkowe miejsca docelowe. Tag Meta Conversions API może odczytać to samo zdarzenie purchase, więc zamówienie trafia do Mety z tych samych danych (lekcja 7 pokazuje, jak współdzielić event_id na potrzeby deduplikacji). Odczytuje je też tag konwersji Google Ads z następnej lekcji.

05 Licz każdy zakup raz

Google Analytics deduplikuje zdarzenia purchase z tym samym transaction_id dla danych ze strumieni z witryny. Traktuj to jako zabezpieczenie, a nie rozwiązanie. Najczęstszym źródłem duplikatów jest strona podziękowania: odwiedzający ją odświeża, wraca przez historię przeglądarki albo otwiera link potwierdzenia z e-maila i push zakupu uruchamia się ponownie.

  • Renderuj push zakupu tylko przy pierwszym wyświetleniu strony podziękowania. Trzymaj przy zamówieniu w sklepie znacznik (na przykład tracked_at) i pomijaj push, gdy jest ustawiony.
  • Zawsze wysyłaj prawdziwy, unikalny transaction_id. Nigdy pusty tekst: GA4 traktuje wszystkie zakupy z transaction_id ustawionym na pusty tekst jako jedną transakcję.
  • Nie umieszczaj w transaction_id danych osobowych, takich jak adres e-mail. Użyj numeru zamówienia.
  • Wysyłaj zwroty z transaction_id pierwotnego zamówienia, żeby GA4 mogło je dopasować.

06 Sprawdź dane od początku do końca

Testuj w trzech miejscach, od serwera na zewnątrz. Otwórz Preview w obu kontenerach i przejdź przez sklep: wyświetl produkt, dodaj go do koszyka, przejdź do zamówienia i złóż zamówienie testowe.

  • Preview Web: tag GA4 - ecommerce uruchamia się przy każdym zdarzeniu e-commerce i przy żadnym innym.
  • Preview serwera: zapytanie idzie do sgtm.example.com, a w danych zdarzenia widać items z item_id, price i quantity oraz value i currency.
  • Preview serwera: tag GA4 jest na liście Tags Fired dla purchase.
  • GA4 DebugView: zdarzenia docierają z parametrami i produktami.
  • Raporty GA4 Monetization: pojawiają się zakupy i przychód. Wypełnienie tych raportów może trwać 24 do 48 godzin, więc nie oceniaj ich tego samego dnia.

Najczęstsze pytania

Czy potrzebuję osobnego tagu serwerowego dla zdarzeń e-commerce?

Nie. Tag GA4 w kontenerze serwerowym przekazuje każde zdarzenie przejęte przez klienta GA4, razem z produktami. E-commerce wymaga pracy tylko w dataLayer i w kontenerze Web.

Dlaczego w GA4 widzę zakupy, ale bez przychodu?

Zwykle brakuje currency albo value jest wysyłane jako tekst. Sprawdź dane zdarzenia w Preview serwera: value musi być liczbą, a currency trzyliterowym kodem, na przykład EUR.

Czy GA4 samo usuwa zduplikowane zakupy?

W strumieniach z witryny deduplikuje zdarzenia zakupu z tym samym transaction_id. Mimo to warto uruchamiać zakup raz, bo inne narzędzia czytające to samo zdarzenie, na przykład platformy reklamowe, mogą policzyć powtórkę jako drugą konwersję.

Gotowy, żeby przejść do praktyki?

Wdróż kontener server GTM na własnej domenie w kilka minut. Plan darmowy nie wymaga karty.

Załóż darmowe konto