Blog
Śledzenie e-commerce w GA4. Jak sprawdzić, czy sklep wysyła dobre dane
„GA4 mamy podpięte, e-commerce też”. Tak zaczyna się wiele rozmów przy audytach sklepów. Potem otwieramy raport zakupów i porównujemy go z zamówieniami w panelu sklepu z tego samego tygodnia. Liczby się nie zgadzają, czasem o kilka procent, czasem o połowę. Nikt tego wcześniej nie sprawdził, bo GA4 coś pokazywało, a raport wyglądał wiarygodnie.
Na tych danych firma decyduje, w którą kampanię dołożyć pieniądze, a którą wyłączyć. Jeśli połowa zamówień ginie po drodze albo liczy się podwójnie, decyzje są podejmowane w ciemno, tylko z wykresem w tle.
Pokażę, jakie dane sklep powinien wysyłać do Google Analytics 4, jak sprawdzić, czy naprawdę je wysyła, i skąd biorą się różnice, których nie da się całkiem usunąć.
Jak działa e-commerce w GA4
GA4 nie ma osobnego „trybu e-commerce”, który się włącza. Sklep wysyła zdarzenia: klient zobaczył listę produktów, kliknął produkt, dodał go do koszyka, zapłacił. Każde zdarzenie niesie listę produktów (items) z identyfikatorem, nazwą, ceną i ilością. Z tych zdarzeń GA4 składa raporty sprzedaży, lejek zakupowy i wyniki poszczególnych produktów.
Kto pamięta Universal Analytics i rozszerzony e-commerce (enhanced ecommerce), zna tę logikę. W Google Analytics 4 zmieniły się jednak nazwy zdarzeń i parametrów, więc stare wdrożenia trzeba było przepisać od nowa. Samo GA4 w standardowej wersji jest bezpłatne, płatna wersja 360 jest przeznaczona dla dużych firm.
Google opisuje w dokumentacji zestaw zdarzeń e-commerce. Najważniejsze są te:
| Zdarzenie | Kiedy je wysłać |
|---|---|
view_item_list |
klient widzi listę produktów: kategorię, wyniki wyszukiwania, polecane |
select_item |
klient klika produkt na liście |
view_item |
klient ogląda kartę produktu |
add_to_cart |
produkt trafia do koszyka |
view_cart |
klient otwiera koszyk |
remove_from_cart |
produkt znika z koszyka |
begin_checkout |
klient zaczyna składać zamówienie |
add_shipping_info |
wybiera dostawę |
add_payment_info |
wybiera płatność |
purchase |
zamówienie zostało złożone |
refund |
zwrot |
Do tego są zdarzenia dla promocji wewnętrznych (view_promotion, select_promotion) i listy życzeń (add_to_wishlist). Nie każdy sklep potrzebuje wszystkich. Bez purchase i view_item raporty sprzedaży nie mają jednak sensu, a bez zdarzeń z listy nie zobaczysz, która kategoria sprzedaje.
Parametry, bez których zakup jest bezużyteczny
Samo zdarzenie purchase to za mało. Liczy się to, co ze sobą niesie.
transaction_id to numer zamówienia. Google w przykładzie dla zwrotów pisze, że jest wymagany przy zakupach i zwrotach. Bez niego nie połączysz zakupu z zamówieniem w sklepie i nie wyślesz poprawnego zwrotu.
value i currency to wartość zamówienia i waluta. Dokumentacja każe ustawić walutę zawsze, gdy wysyłasz wartość. Wartość bez waluty to częsta przyczyna zerowego przychodu w raportach przy niezerowej liczbie zakupów. Przy okazji ustal, co jest w value: z dostawą czy bez, brutto czy netto. GA4 przyjmie każdą z tych wersji, ale porównanie ze sklepem ma sens tylko wtedy, gdy wiesz, którą wysyłasz.
items to lista produktów. Każdy produkt potrzebuje item_id albo item_name, a Google zaleca podawanie obu. Jedno zdarzenie może zawierać do 200 produktów.
Jest jeszcze item_list_name przy zdarzeniach z listy. Dzięki niemu widać, czy klient doszedł do koszyka z kategorii, z wyszukiwarki czy z bloku polecanych produktów. Dlaczego ta informacja jest tak cenna, opisałem we wpisie o liście produktów, która sprzedaje.
Jak wdrożyć śledzenie e-commerce w GA4
Są dwie drogi.
Pierwsza to wtyczka albo integracja platformy sklepu. Większość popularnych platform ma gotowe połączenie z GA4 i to zwykle najszybszy start. Warto jednak sprawdzić, które zdarzenia wtyczka wysyła, bo bywa, że tylko purchase i view_item.
Druga to Google Tag Manager. Sklep wypycha dane o produktach i zamówieniu do warstwy danych (dataLayer), a w GTM ustawiasz tagi GA4, które je odczytują. Daje to więcej kontroli, ale wymaga kogoś, kto zna i sklep, i GTM.
Najwięcej problemów widzę tam, gdzie działają obie drogi naraz. Ktoś kiedyś wdrożył GTM, potem ktoś inny włączył wtyczkę i od tej pory każdy zakup trafia do GA4 dwa razy. Zanim cokolwiek poprawisz, ustal, skąd dziś wychodzą zdarzenia.
Jak sprawdzić, czy GA4 e-commerce działa poprawnie
Krok 1. Zakup testowy z podglądem
Włącz podgląd w Tag Managerze albo rozszerzenie Tag Assistant i otwórz w GA4 DebugView (w Administracji, w sekcji wyświetlania danych). Przejdź całą drogę jak klient: lista, produkt, koszyk, zamówienie. Przy każdym kroku sprawdź, czy pojawia się właściwe zdarzenie i czy ma produkty z ceną.
Przy purchase sprawdź cztery rzeczy: numer zamówienia zgodny ze sklepem, wartość, walutę i listę produktów. Potem odśwież stronę podziękowania. Jeśli zakup pojawi się drugi raz, masz pierwszą przyczynę różnic.
Zamówienia testowe oznacz w sklepie i usuń z porównań, bo inaczej same zafałszują wynik.
Krok 2. Tydzień porównania ze sklepem
Weź zamówienia z ostatniego pełnego tygodnia z panelu sklepu i zakupy z GA4 z tego samego okresu. W GA4 znajdziesz je w raporcie Generowanie przychodu, Zakupy e-commerce albo w eksploracji z wymiarem identyfikatora transakcji. Porównaj trzy liczby: liczbę zamówień, łączną wartość i listę numerów zamówień.
Lista numerów mówi najwięcej. Zamówienia, których brakuje w GA4, pokażą, czy problem dotyczy jednej metody płatności (na przykład płatności, po której klient nie wraca na stronę sklepu), jednego urządzenia albo zamówień złożonych telefonicznie. Numery, które w GA4 występują dwa razy, pokażą duplikaty.
Krok 3. Sprawdź źródła ruchu przy zakupach
Zakup bez źródła albo z dużym udziałem ruchu bezpośredniego i polecającego z bramki płatności to sygnał, że sesja urywa się przy płatności. W raporcie pozyskiwania ruchu pojawia się wtedy domena operatora płatności jako źródło sprzedaży. Rozwiązanie zwykle leży w ustawieniach GA4 (lista wykluczonych domen odsyłających), a porządek w źródłach zależy też od poprawnie oznaczonych linków UTM.
Skąd biorą się różnice między GA4 a sklepem
Część różnic da się naprawić, części nie.
Do naprawy są duplikaty, brak waluty, zamówienia testowe, zakupy, które nie wracają ze strony płatności, i zdarzenia wysyłane z dwóch miejsc naraz. GA4 sam pomija powtórzone zakupy z tym samym transaction_id od tego samego użytkownika w strumieniu danych z witryny. Google ostrzega przy tym przed odwrotnym błędem: jeśli sklep wysyła ten sam numer dla różnych zamówień, GA4 część z nich pominie i zaniży wynik.
Nie do usunięcia są klienci, którzy nie zgodzili się na pliki cookie analityczne, blokady reklam i przeglądarki, które ograniczają śledzenie. GA4 nie zobaczy więc każdego zamówienia i to jest w porządku. Ważne, żeby różnica była stabilna. Jeśli co tydzień brakuje podobnej części zamówień, trendy w GA4 nadal są wiarygodne. Jeśli różnica skacze z tygodnia na tydzień, coś się psuje i warto szukać przyczyny.
Z tego wynika prosta zasada. Przychód do księgowości i rozliczeń bierzesz ze sklepu. GA4 służy do porównywania kanałów, kampanii, list i produktów między sobą.
Co da się z tego wyczytać
Kiedy dane są poprawne, GA4 odpowiada na pytania, których panel sklepu nie zadaje:
- które kanały i kampanie przynoszą zamówienia, a które tylko ruch,
- na którym kroku lejka klienci odpadają: przy karcie produktu, w koszyku, przy wyborze dostawy,
- które listy produktów prowadzą do koszyka, a które tylko do przewijania,
- które produkty ludzie oglądają, a rzadko kupują.
Ostatnie pytanie bywa najcenniejsze. Produkt z dużą liczbą wyświetleń i małą liczbą zakupów może mieć złą cenę, słabe zdjęcia albo brak stanu w popularnym wariancie. Puste listy i oferty bez stanu to osobny rodzaj strat, który opisałem przy czarnych dziurach w sklepie.
Z tych zdarzeń biorą się też liczby do miesięcznego zestawienia: ruch, konwersja i średni koszyk. Jak z nich zbudować krótki pulpit dla właściciela, pokazuję w tekście o dashboardzie KPI dla małej firmy.
Porównanie, które robi się samo
Jednorazowe sprawdzenie pokazuje stan z jednego tygodnia. Wtyczka może się zaktualizować, ktoś zmieni stronę podziękowania albo doda nową metodę płatności, i różnica wróci po cichu.
Dlatego wolę automat. Raz w tygodniu pobiera zamówienia z API sklepu i zakupy z GA4 przez Data API, porównuje liczbę i wartość i wysyła krótką wiadomość, gdy różnica wyjdzie poza ustalony próg. Taki workflow da się zbudować w n8n albo Make w jedno popołudnie, a próg ustalasz na podstawie pierwszych tygodni porównań.
Kiedy pełne wdrożenie to przesada
Sklep z kilkoma zamówieniami tygodniowo nie potrzebuje wszystkich zdarzeń z tabeli i porównań co tydzień. Wystarczy poprawny purchase z numerem, wartością i walutą, view_item i raz na kwartał porównanie ze sklepem. Pełny lejek z listami ma sens wtedy, gdy masz dość ruchu, żeby różnice między listami i krokami były czymś więcej niż przypadkiem.
Twój GA4 pokazuje inną sprzedaż niż sklep i nie wiesz, której liczbie wierzyć? Napisz do mnie. Zaczniemy od tygodnia zamówień i listy numerów.


