E-commerce: Promocja i uruchomienie sklepu internetowego
Przydatne artykuły i instrukcje dotyczące promocji, uruchomienia i rozwoju sklepów internetowych w branży E-commerce

Konfiguracja Google Analytics 4 (GA4) dla e-commerce: jak prawidłowo śledzić zakupy i wartość zamówień



Konfiguracja Google Analytics 4 (GA4) i Google Tag Manager dla e-commerce: pełny poradnik


Konfiguracja Google Analytics 4 (GA4) dla e-commerce: jak prawidłowo śledzić zakupy i wartość zamówień

Dlaczego podstawowa analityka nie pokazuje rzeczywistego obrazu. Jak skonfigurować zdarzenia view_item, add_to_cart, begin_checkout i purchase, aby widzieć zwrot z każdej reklamy. Poradnik dla właścicieli sklepów internetowych.

📊 GA4 e-commerce 📦 DataLayer ⚙️ Google Tag Manager 🔗 Shortcodes 🔄 Funkcje Callback 🛒 Zdarzenia zakupów 📈 Analityka sprzedaży

Dlaczego podstawowa analityka nie wystarcza

Standardowy kod GA4, który wielu po prostu wkleja w stopkę strony, pokazuje podstawowe metryki: liczbę odwiedzających, wyświetlenia stron, sesje. Ale dla sklepu internetowego to zdecydowanie za mało.

Bez rozszerzonego handlu elektronicznego nie dowiesz się:

  • Ile osób dodało produkt do koszyka, ale nie kupiło
  • Które produkty są najczęściej oglądane razem
  • Na którym etapie składania zamówienia ludzie porzucają koszyk
  • Która reklama przyniosła rzeczywiste zakupy, a nie tylko kliknięcia
  • Średnia wartość zamówienia dla każdego kanału reklamowego

Znajomy marketer opowiadał: skonfigurowali GA4 z e-commerce dla klienta — sklepu kosmetycznego. Po tygodniu okazało się, że 40% osób porzuca koszyk na etapie wyboru metody dostawy. Uprościli formularz — konwersja wzrosła o 15%. Bez danych nigdy by tego nie zauważyli.

Podstawowa konfiguracja GA4 dla sklepu internetowego

Zanim przejdziesz do zdarzeń e-commerce, musisz utworzyć strumień danych w GA4 i zainstalować podstawowy kod.

Krok 1. Utworzenie strumienia danych

  1. Wejdź w Google Analytics → Administracja → Utwórz zasób
  2. Wybierz "Strona internetowa", podaj URL swojego sklepu
  3. Skopiuj ID pomiaru (format G-XXXXXXXXXX)

Krok 2. Instalacja kodu na stronie

Jest kilka sposobów:

  • Przez Google Tag Manager (zalecane) — tworzysz tag GA4 z wyzwalaczem All Pages. GTM daje elastyczność konfiguracji zdarzeń bez modyfikacji kodu.
  • Bezpośrednio w kod strony — wstawiasz tag GA4 w <head> na wszystkich stronach. Odpowiednie, jeśli nie masz GTM.
  • Przez CMS/platformę — wiele platform pozwala wstawić ID GA4 w ustawieniach. Na przykład na BooStore.pro wystarczy wpisać ID w pole "Google Analytics ID", a kod podłącza się automatycznie na wszystkich stronach.
<!-- Podstawowy kod GA4 przez gtag.js --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-XXXXXXXXXX'); </script>
Ważne: Po instalacji kodu sprawdź go przez rozszerzenie Google Tag Assistant lub przez GA4 → Raporty na żywo. Jeśli widzisz aktywnych odwiedzających — kod działa.

Kluczowe zdarzenia e-commerce: od wyświetlenia do zakupu

Dla sklepu internetowego Google określił standardowy zestaw zdarzeń rozszerzonego handlu elektronicznego (enhanced e-commerce). Oto co należy skonfigurować w pierwszej kolejności:

ZdarzenieKiedy występujeCo daje
view_itemOdwiedzający otworzył kartę produktuWidzisz, które produkty są oglądane, ale nie kupowane. Możesz przeanalizować cenę, zdjęcie, opis
view_item_listOdwiedzający widzi listę produktów (kategoria, wyszukiwanie)Analiza popularności kategorii, efektywności wyszukiwania na stronie
add_to_cartProdukt dodany do koszykaKonwersja z wyświetlenia do koszyka — jeden z głównych wskaźników
remove_from_cartProdukt usunięty z koszykaKtóre produkty są wkładane, a potem usuwane? Możliwa wysoka cena lub słaby opis
begin_checkoutRozpoczęcie składania zamówieniaNa tym etapie ludzie są już zmotywowani. Jeśli tutaj odpadają — problem w formularzu lub dostawie
add_shipping_infoWybór metody dostawyJeśli użytkownicy nie docierają do wyboru — formularz zamówienia jest zbyt skomplikowany
add_payment_infoWybór metody płatnościMoże pokazać, że jakaś metoda płatności jest niewygodna lub nie działa
purchaseZakończenie zakupuNajważniejsze zdarzenie. Pokazuje rzeczywisty przychód, średnią wartość zamówienia, zwrot z reklamy

Każde zdarzenie przekazuje parametry: id produktu, nazwę, kategorię, cenę, ilość, walutę. Te dane tworzą raporty w lejku zakupowym i w raporcie "Monetyzacja".

Krytycznie ważne: Zdarzenie purchase musi przekazywać rzeczywistą kwotę zamówienia z uwzględnieniem rabatów i dostawy. Jeśli przekażesz kwotę produktów bez rabatu — dane o przychodzie będą nieprawidłowe, a algorytmy reklamowe Google zoptymalizują się na błędnych danych.

Czym jest DataLayer i jak działa

DataLayer — to obiekt JavaScript na stronie, który tymczasowo przechowuje dane o produktach, koszyku i zamówieniu. GA4 przez GTM lub gtag.js odczytuje te dane i wysyła je jako parametry zdarzeń.

Bez DataLayer każde zdarzenie trzeba by było kodować na sztywno. Z DataLayer dane są zbierane automatycznie — wystarczy napisać poprawną strukturę.

Przykład DataLayer przy dodawaniu produktu do koszyka:

<script> dataLayer.push({ event: "add_to_cart", ecommerce: { items: [{ item_id: "SKU-001", item_name: "Buty Nike Air Max", price: 4599.00, quantity: 1, item_category: "Obuwie/Buty Sportowe", currency: "UAH" }] } }); </script>

Jak skonfigurować DataLayer w zależności od platformy

  • WordPress + WooCommerce: użyj wtyczki Google Listings & Ads lub GTM4WP (Google Tag Manager for WooCommerce). Automatycznie generują DataLayer na wszystkich stronach.
  • OpenCart: potrzebny moduł rozszerzonego handlu elektronicznego. Bez niego DataLayer trzeba pisać ręcznie w plikach motywu.
  • BooStore.pro: DataLayer jest generowany automatycznie na poziomie rdzenia. Wszystkie zdarzenia e-commerce są przekazywane do GA4 bez instalacji wtyczek. Więcej — poniżej.
Wskazówka: Po skonfigurowaniu DataLayer sprawdź go przez tryb Preview w Google Tag Manager lub przez rozszerzenie DataLayer Inspector. Upewnij się, że przy dodawaniu produktu do koszyka pojawia się obiekt ecommerce z poprawnymi danymi.

Google Tag Manager vs gtag.js: co wybrać

Do przekazywania danych do GA4 można użyć dwóch podejść — bezpośredniej instalacji przez gtag.js lub przez Google Tag Manager (GTM). Każde ma swoje plusy i minusy.

Czym jest Google Tag Manager

GTM — to bezpłatny menedżer tagów Google. Zamiast wstawiać wiele skryptów (GA4, Facebook Pixel, Hotjar itp.) bezpośrednio w kod strony, instalujesz jeden kontener GTM, a wszystkie tagi konfigurujesz przez interfejs webowy.

Pozwala to zmieniać ustawienia analityki bez angażowania programisty i bez modyfikacji kodu strony. Wystarczy opublikować nową wersję kontenera — i zmiany wchodzą w życie na wszystkich stronach.

Czym jest dataLayer.push() i jak to działa

DataLayer — to globalna tablica JavaScript, która przechowuje dane na stronie. GTM odczytuje tę tablicę i przy pojawieniu się nowych danych automatycznie uruchamia odpowiednie tagi. Metoda dataLayer.push() dodaje nowy obiekt do tej tablicy, informując tym samym GTM o wystąpieniu zdarzenia.

Podstawowa struktura wywołania:

<script> dataLayer.push({ event: "custom_event", parameter1: "value1", parameter2: 42 }); </script>

Po wywołaniu dataLayer.push() GTM sprawdza, czy istnieje wyzwalacz reagujący na zdarzenie custom_event. Jeśli tak — uruchamia powiązane z nim tagi. To podstawa całej analityki zdarzeniowej.

Przykład: śledzenie kliknięcia przycisku przez dataLayer.push

Zakładając, że masz przycisk «Kup w 1 kliknięcie» i chcesz śledzić jego kliknięcia w GA4. Zamiast wieszać handler bezpośrednio na GA4, dodajesz dataLayer.push w kod JavaScript przycisku:

<button onclick="purchaseOneClick()">Kup w 1 kliknięcie</button> <script> function purchaseOneClick() { // Wysyłamy dane do DataLayer dla GTM dataLayer.push({ event: "quick_buy", product_id: "SKU-001", product_name: "Produkt X", price: 1299.00 }); // Dalej twoja logika składania zamówienia // ... } </script>

W GTM tworzysz wyzwalacz na zdarzenie quick_buy i tag GA4, który wysyła to zdarzenie z parametrami product_id, product_name i price. Gotowe — bez modyfikacji podstawowego kodu GA4.

Porównanie podejść: gtag.js vs GTM

Parametrgtag.js (instalacja bezpośrednia)Google Tag Manager
Poziom trudnościNiski — wkleiłeś kod i gotoweŚredni — trzeba utworzyć kontener, skonfigurować tagi i wyzwalacze
ElastycznośćNiska — do zmian trzeba modyfikować kodWysoka — wszystko przez interfejs, bez kodu
Szybkość zmianTrzeba wypychać zmiany w kodzieOpublikowałeś nową wersję — zmiany od razu na stronie
Liczba tagówKażdy tag to osobny skrypt w kodzieJeden kontener dla wszystkich tagów (GA4, Pixel, Hotjar itp.)
Podgląd (Preview)Tylko przez konsolę przeglądarkiWbudowany tryb Preview — widać wszystkie uruchomione tagi i DataLayer
Kontrola wersjiBrakJest — można wrócić do poprzedniej wersji kontenera
WydajnośćSkrypty ładują się od razuAsynchroniczne ładowanie, tagi nie blokują renderowania
Próg wejściaMinimalnyTrzeba zrozumieć wyzwalacze, zmienne, tagi

Kiedy co wybrać

  • gtag.js — jeśli masz prosty sklep, tylko GA4 i nie planujesz często zmieniać ustawień analityki. Odpowiednie do szybkiego startu.
  • GTM — jeśli masz kilka systemów analityki (GA4 + Facebook Pixel + Hotjar), planujesz śledzić niestandardowe zdarzenia, chcesz mieć możliwość szybkiego wprowadzania zmian bez programisty.
Ważne dla GTM: Po publikacji kontenera odczekaj 5-10 minut, aby zmiany rozeszły się na wszystkie serwery CDN. Używaj trybu Preview do debugowania — pokazuje stan DataLayer w czasie rzeczywistym i które tagi uruchomiły się na każdej stronie.

Śledzenie zakupów (purchase event)

Zdarzenie purchase — najważniejsze. To na jego podstawie Google oblicza przychód, rentowność reklamy (ROAS) i optymalizuje kampanie.

Tak powinien wyglądać prawidłowy DataLayer dla zakupu:

<script> dataLayer.push({ event: "purchase", ecommerce: { transaction_id: "ORDER-12345", value: 5299.00, currency: "UAH", items: [{ item_id: "SKU-001", item_name: "Buty Nike Air Max", price: 4599.00, quantity: 1, item_category: "Obuwie" }] } }); </script>

Parametry, które należy przekazywać:

  • transaction_id — unikalny ID zamówienia. Ochrona przed duplikowaniem: jeśli GA4 otrzyma dwa zdarzenia z tym samym transaction_id, uwzględni tylko pierwsze.
  • value — końcowa kwota zamówienia z rabatem i dostawą. Nie suma produktów, ale rzeczywiście zapłacona przez klienta.
  • currency — waluta (UAH, USD, EUR).
  • items — tablica kupionych produktów z cenami i ilościami.
Weryfikacja: Złóż testowe zamówienie na stronie na minimalną kwotę. Po 5-10 minutach wejdź w GA4 → Monetyzacja → Przegląd. Powinien wyświetlić się przychód. Jeśli nie — sprawdź poprawność przekazywania transaction_id, jest obowiązkowy.

Jak widzieć zwrot z każdej reklamy

Gdy wszystkie zdarzenia e-commerce są skonfigurowane, można podłączyć kanały reklamowe. Bez tego widzisz tylko kliknięcia, ale nie wiesz, które z nich doprowadziły do zakupów.

Połączenie GA4 + Google Ads

W GA4 wejdź w Administracja → Połączenia z innymi produktami → Połączenie z Google Ads. Następnie w raportach Google Ads pojawią się konwersje z GA4 (purchase, add_to_cart itp.).

Połączenie GA4 + Facebook / Meta Ads

Skonfiguruj Conversions API (CAPI) po stronie serwera. Bez CAPI piksel traci do 30% danych z powodu blokerów reklam i ograniczeń iOS. GA4 w tym schemacie działa jako serwer potwierdzenia konwersji.

Atrybucja: która reklama rzeczywiście sprzedaje

W GA4 są raporty atrybucji. Pokazują, które kanały prowadzą do zakupów, a które — tylko do pierwszych kliknięć. Na podstawie tych danych realokujesz budżet: usuwasz nieefektywne kanały, wzmacniasz działające.

Przykład z praktyki: skonfigurowaliśmy klientowi analitykę end-to-end GA4 + Google Ads + Facebook. Okazało się, że Facebook daje 80% pierwszych kontaktów, ale tylko 20% kończących. Google Ads — odwrotnie. Zrealokowaliśmy budżet: Facebook zostawiliśmy dla świadomości (górny lejek), Google Ads dla konwersji (dolny lejek). ROI wzrósł o 35%.

Modele atrybucji w GA4: Domyślnie używana jest atrybucja Data-Driven — Google sam określa, które kontakty są ważniejsze. Dla sklepu internetowego to najlepsza opcja. Nie zmieniaj na Last Click — to przestarzały model.

GA4 na BooStore.pro: konfiguracja w 5 minut

W tym miejscu u właścicieli WordPress i OpenCart zwykle zaczyna się ból: instalacja wtyczki, konfiguracja DataLayer, sprawdzanie konfliktów skryptów, aktualizacja przy zmianie motywu. Na BooStore.pro wszystko jest inaczej. Platforma oferuje również potężne narzędzia automatyzacji i umożliwia tworzenie stron rezerwacji usług — cała analityka jest już wbudowana także dla nich.

Rozszerzony handel elektroniczny GA4 jest zintegrowany na poziomie rdzenia platformy. Oznacza to:

ID pomiaru w panelu administracyjnym

Wystarczy wstawić ID śledzenia GA4 (G-XXXXXXXXXX) w odpowiednie pole w ustawieniach strony. Kod podłącza się na wszystkich stronach automatycznie.

Automatyczne zdarzenia e-commerce

view_item, add_to_cart, remove_from_cart, begin_checkout, purchase — wszystkie zdarzenia są przekazywane do GA4 bez dodatkowej konfiguracji.

Poprawny DataLayer

DataLayer jest generowany przez rdzeń z prawidłowymi parametrami: cena z rabatem, waluta, kategoria produktu, unikalny ID zamówienia. Żadnych wtyczek.

Google Tag Manager

Obsługiwana jest zarówno bezpośrednia integracja GA4, jak i przez GTM. Wystarczy wstawić ID kontenera GTM — i zarządzaj tagami przez interfejs Google.

Zdarzenia formularzy i subskrypcji

Wysyłanie danych z formularzy kontaktowych, subskrypcji newslettera, rejestracji — wszystkie te zdarzenia również są przekazywane do GA4, jeśli są skonfigurowane.

Oddzielne ustawienia GA4 i GTM

Można podłączyć zarówno GA4 bezpośrednio, jak i GTM jednocześnie — nie kolidują ze sobą. Każdy z własnym ID.

Porównaj: na WordPress trzeba zainstalować wtyczkę (np. GTM4WP), skonfigurować jej mapę danych, sprawdzić kompatybilność z motywem i innymi wtyczkami, przetestować. Przy aktualizacji motywu lub wtyczki — sprawdzić ponownie. Na BooStore.pro wszystko działa "od razu" i nie psuje się przy aktualizacjach.

Do startu wystarczy darmowy plan — GA4, DataLayer i zdarzenia e-commerce działają na wszystkich planach, włączając darmowy. Ograniczenie tylko na liczbę produktów, ale nie na analitykę.

Shortcodes i funkcje Callback: analityka niestandardowa na BooStore.pro NOWOŚĆ

Standardowy zestaw zdarzeń GA4 często wystarcza do podstawowej analityki, ale w przypadku złożonych scenariuszy może być potrzebne przekazywanie własnych danych. Na BooStore.pro są do tego dwa potężne narzędzia — Shortcodes i funkcje Callback.

Shortcodes: dynamiczne dane w dowolnym miejscu

Shortcodes — to zastępowalne aliasy, które podstawiają rzeczywiste dane z systemu: ID produktu, nazwę, cenę, kategorię, SKU, ścieżkę do obrazu i wiele innych. Działają na poziomie HTML i JavaScript, umożliwiając wbudowanie aktualnych danych bezpośrednio w kod analityki.

Pełna lista Shortcodes jest opisana w dokumentacji platformy.

Przykład: przekazanie ID produktu do niestandardowego zdarzenia GA4

Zakładając, że chcesz wysłać do GA4 zdarzenie przy kliknięciu przycisku «Szybki podgląd» z danymi produktu. Użyjemy Shortcodes, aby dynamicznie podstawić ID, nazwę i cenę produktu:

<script> function trackQuickView() { dataLayer.push({ event: "quick_view", product_id: "[product_id]", product_name: "[product_name]", price: [product_price], category: "[product_category]", sku: "[product_sku]" }); } </script> <!-- Przy kliknięciu przycisku '[product_id]' zostanie zastąpiony rzeczywistym ID --> <button onclick="trackQuickView()">Szybki podgląd</button>

Shortcodes [product_id], [product_name], [product_price] i [product_sku] zostaną automatycznie zastąpione rzeczywistymi danymi karty produktu przy jej otwarciu. W GTM tworzysz wyzwalacz na zdarzenie quick_view i odczytujesz te parametry.

Przykład: zdarzenie przy wysyłce formularza z danymi zamówienia

Shortcodes działają nie tylko z produktami, ale także z innymi danymi strony. Na przykład można przekazywać kwotę zamówienia na stronie "Dziękujemy":

<script> dataLayer.push({ event: "form_submit", form_id: "[shortcode_current_id]", order_total: [order_total], currency: "[order_currency]" }); </script>

Funkcje Callback: przechwytywanie zdarzeń platformy

BooStore.pro obsługuje JavaScript Callback-funkcje, które są automatycznie wywoływane po załadowaniu lub zmianie określonych danych na stronie. Umożliwia to wdrożenie własnej logiki analityki bez modyfikacji rdzenia strony. Wszystkie zdarzenia są opisane w dokumentacji funkcji Callback.

Dostępne zdarzenia Callback dla analityki

callback_add_cart(product_id)

Wywoływane przy dodaniu produktu do koszyka. Przekazuje ID produktu. Można od razu wysłać zdarzenie add_to_cart do GA4.

callback_remove_cart(product_id)

Wywoływane przy usunięciu produktu z koszyka. Przydatne do śledzenia remove_from_cart.

callback_variation_change(product_id, variation_id)

Wywoływane przy zmianie wariantu produktu (np. wybór rozmiaru lub koloru). Można analizować, które warianty są popularniejsze.

callback_favorite_add(product_id)

Wywoływane przy dodaniu produktu do ulubionych. Przydatne do remarketingu.

callback_list_products(products)

Wywoływane po wyświetleniu listy produktów. Przekazuje tablicę produktów na stronie. Użyj dla view_item_list.

callback_order_confirm(order_id, total)

Wywoływane przy potwierdzeniu zamówienia. Przekazuje ID zamówienia i kwotę — idealne dla purchase event.

Rzeczywisty przykład: niestandardowy purchase event przez Callback

Zakładając, że chcesz wysłać do GA4 zdarzenie purchase z dodatkowymi danymi, których nie przekazuje standardowy DataLayer BooStore.pro. Możesz nadpisać callback_order_confirm:

<script> function callback_order_confirm(order_id, total, currency) { // Wysyłamy niestandardowe zdarzenie do GA4 przez DataLayer dataLayer.push({ event: "purchase_custom", ecommerce: { transaction_id: order_id, value: total, currency: currency || "USD", payment_type: "online", customer_type: "new" } }); // Można też wysłać dane do zewnętrznego CRM fetch("https://your-crm.com/api/order", { method: "POST", body: JSON.stringify({ order_id, total }) }); } </script>

Przykład: śledzenie zmiany wariantu produktu

Jeśli sprzedajesz produkty z wariantami (kolor, rozmiar), warto wiedzieć, który wariant jest wybierany najczęściej. Używamy callback_variation_change:

<script> function callback_variation_change(product_id, variation_id, variation_data) { // variation_data zawiera nazwę i cenę wybranego wariantu dataLayer.push({ event: "variation_selected", product_id: product_id, variation_id: variation_id, variation_name: variation_data?.name || "", variation_price: variation_data?.price || 0 }); } </script>

Przykład: niestandardowe przekazywanie danych przy dodawaniu do koszyka

Czasami trzeba wysłać do GA4 nie tylko standardowe pola, ale także dodatkowe informacje — na przykład skąd przyszedł użytkownik lub jego grupę rabatową:

<script> function callback_add_cart(product_id) { // Pobieramy dodatkowe dane przez Shortcodes var userGroup = "[user_group]"; var referrer = document.referrer || "direct"; dataLayer.push({ event: "add_to_cart_extended", product_id: product_id, user_group: userGroup, referrer: referrer, timestamp: new Date().toISOString() }); } </script>
Na BooStore.pro: Połączenie Shortcodes i funkcji Callback daje pełną kontrolę nad analityką. Możesz przekazywać dowolne dane — od ID produktu po grupę użytkownika i referrer — do GA4, Facebook Pixel, własnego CRM lub dowolnego innego systemu. Jest to możliwe bez instalacji wtyczek i bez modyfikacji rdzenia platformy. Więcej — automatyzacja sklepu na BooStore.pro.

Szybka integracja przez GTM + Shortcodes

Możesz łączyć GTM z Shortcodes dla elastycznej konfiguracji. Zamiast pisać kod JavaScript na stronie, użyj tagu Custom HTML w GTM, wstaw tam kod z Shortcodes, a GTM będzie go przetwarzać jak zwykły tag:

<!-- Tag Custom HTML w GTM --> <script> window.onload = function() { var productData = { id: "[product_id]", name: "[product_name]", price: [product_price], brand: "[product_brand]" }; // Wysyłamy do DataLayer dla kolejnych tagów dataLayer.push({ event: "product_view", productData: productData }); }; </script>

Ten tag będzie uruchamiany na stronach produktów i przekaże do DataLayer rzeczywiste dane z Shortcodes. Pozostałe tagi GTM będą miały do nich dostęp.

Typowe błędy przy konfiguracji GA4

Widziałem dziesiątki sklepów, gdzie GA4 jest skonfigurowane, ale dane nie przychodzą lub są nieprawidłowe. Oto najczęstsze błędy:

  • Brak transaction_id w purchase — GA4 nie zalicza zakupu bez niego. System uznaje, że to duplikat. Sprawdź, czy ID zamówienia jest przekazywane w DataLayer.
  • Duplikowanie zdarzenia purchase — jeśli zdarzenie purchase jest wysyłane dwukrotnie za jeden zakup (np. na stronie "Dziękujemy za zamówienie" i jeszcze gdzieś), GA4 podwoi przychód. transaction_id chroni przed duplikatami tylko w ramach jednego zasobu.
  • Nieprawidłowa waluta — jeśli w sklepie jest ustawiona hrywna, a zdarzenie wysyła USD, dane o przychodzie będą nieprawidłowe. Sprawdź parametr currency w każdym zdarzeniu.
  • Nieaktualny kod Universal Analytics — jeśli na stronie wisi stary kod UA (UA-XXXXXX), ale nie ma GA4 (G-XXXXXXX), dane nie przychodzą. Potrzebny jest właśnie nowy kod GA4. Universal Analytics został wyłączony w lipcu 2023.
  • Blokery reklam — wielu użytkowników używa AdBlock, który blokuje GA4. Serwerowy GTM (Server-side Tagging) rozwiązuje ten problem, ale wymaga konfiguracji.
  • Ignorowanie testowego zakupu — skonfigurowałeś i zapomniałeś sprawdzić. Zawsze wykonuj testowe zamówienie i sprawdzaj przez raport na żywo, czy przyszło zdarzenie purchase.
Szybka weryfikacja: Zainstaluj rozszerzenie GA4 DebugView dla przeglądarki. Pokazuje wszystkie zdarzenia GA4 w czasie rzeczywistym z ich parametrami. Lub użyj trybu Preview GTM — jeszcze potężniejsze.

Analityka to nie magia, a dane

Prawidłowo skonfigurowana analityka pokazuje, które produkty się sprzedają, skąd pochodzą klienci i ile zarabiasz z każdej złotówki budżetu reklamowego. Bez niej zarządzasz sklepem po omacku.

Zacznij od małego: zainstaluj GA4, skonfiguruj purchase event, sprawdź testowy zakup. Za tydzień będziesz miał dane, na podstawie których możesz podejmować decyzje. Za miesiąc — zrozumienie, jak rozdzielać budżet reklamowy.

GA4, Facebook Pixel, zdarzenia e-commerce — wszystko wbudowane.

Często zadawane pytania o konfigurację GA4 dla sklepu internetowego

Odpowiedzi na pytania, które najczęściej pojawiają się przy konfiguracji analityki e-commerce.

Czy trzeba ręcznie konfigurować DataLayer na BooStore.pro?

Nie. Na platformie BooStore.pro DataLayer jest generowany automatycznie na poziomie rdzenia. Wszystkie zdarzenia e-commerce (view_item, add_to_cart, purchase itp.) są przekazywane do GA4 bez instalacji wtyczek i dodatkowej konfiguracji. Wystarczy wstawić ID śledzenia GA4 w ustawieniach strony.

Czym GA4 różni się od Universal Analytics dla sklepu internetowego?

GA4 używa modelu zdarzeń (events), a nie sesji (sessions), jak UA. Daje to bardziej elastyczną analitykę: widzisz nie tylko "odwiedziny", ale konkretne działania użytkowników. Ponadto GA4 obsługuje śledzenie cross-platformowe (strona + aplikacja mobilna), atrybucję Data-Driven i uczenie maszynowe do prognozowania zachowań. Universal Analytics został oficjalnie wyłączony w lipcu 2023 roku — wszyscy muszą przejść na GA4.

Dlaczego w GA4 nie wyświetlają się zakupy?

Najczęstsza przyczyna — brak obowiązkowego parametru transaction_id w zdarzeniu purchase. Bez niego GA4 ignoruje zdarzenie. Inne przyczyny: duplikowanie ID zamówienia, nieprawidłowa waluta, blokery reklam, nieprawidłowa instalacja kodu GA4. Zalecamy sprawdzenie przez tryb Preview GTM lub GA4 DebugView.

Czy można podłączyć GA4 do sklepu internetowego bez GTM?

Tak, można zainstalować kod GA4 bezpośrednio (gtag.js). Ta metoda jest prostsza, ale mniej elastyczna. Google Tag Manager jest zalecany, jeśli planujesz konfigurować wiele zdarzeń, pikseli i integracji. Na BooStore.pro obsługiwane są obie metody — podaj ID GA4 w panelu administracyjnym lub ID kontenera GTM.

Jak GA4 oblicza przychód z zakupów?

GA4 sumuje wartość parametru value we wszystkich zdarzeniach purchase. W value należy przekazywać końcową kwotę zamówienia z uwzględnieniem rabatów, kosztów dostawy i podatków. Jeśli value nie jest przekazywane, GA4 próbuje obliczyć przychód jako sumę price × quantity dla każdego produktu, ale jest to mniej niezawodna metoda.

Czy trzeba oznaczać linki znacznikami UTM?

Tak, koniecznie. GA4 automatycznie określa źródło ruchu dla Google Ads i wyszukiwania organicznego. Dla wszystkich pozostałych kanałów (newslettery e-mail, media społecznościowe, linki partnerskie) należy dodawać znaczniki UTM. Prawidłowe oznaczanie to podstawa poprawnej atrybucji. Bez znaczników UTM ruch z Instagrama może trafiać do "Direct" lub "Referral" i nie zobaczysz jego rzeczywistej wartości.

Które raporty GA4 są najważniejsze dla sklepu internetowego?

Top 5 raportów dla e-commerce: 1) Monetyzacja → Przegląd — przychód, zakupy, średnia wartość zamówienia. 2) Monetyzacja → Handel elektroniczny — zakupy według produktów i kategorii. 3) Zaangażowanie → Zdarzenia — wyświetlenia wszystkich zdarzeń (add_to_cart, begin_checkout, purchase). 4) Atrybucja → Modele atrybucji — który kanał rzeczywiście sprzedaje. 5) Grupy odbiorców → Przegląd — zachowanie klientów, nowi vs. powracający. Dodaj te raporty do ulubionych dla szybkiego dostępu.

Czym jest dataLayer.push() i do czego służy?

dataLayer.push() — to metoda JavaScript, która dodaje dane do globalnej tablicy DataLayer na stronie. Kiedy wywołujesz dataLayer.push({event: "custom_event", ...}), Google Tag Manager natychmiast otrzymuje powiadomienie i uruchamia tagi przypisane do tego zdarzenia. To podstawowy sposób przekazywania niestandardowych zdarzeń do GA4, Facebook Pixel i innych systemów analityki bez wstawiania dodatkowych skryptów w kod strony.

GTM czy gtag.js — co jest lepsze dla sklepu internetowego?

Jeśli masz prosty sklep z jednym-dwoma skryptami analityki — wystarczy gtag.js. Jest szybszy w konfiguracji. Jeśli używasz GA4 + Facebook Pixel + Hotjar + własne zdarzenia — wybierz GTM. Daje elastyczność: możesz zmieniać ustawienia bez programisty, jest tryb podglądu, kontrola wersji i scentralizowane zarządzanie wszystkimi tagami. Na BooStore.pro obsługiwane są oba podejścia.

Jak przekazać niestandardowe dane do GA4 przez Shortcodes na BooStore.pro?

Shortcodes — to aliasy w postaci [product_id], [product_name], [product_price], które są automatycznie zastępowane rzeczywistymi danymi karty produktu. Możesz ich używać w kodzie JavaScript na stronie. Na przykład: dataLayer.push({event: "view", id: "[product_id]"}). Przy otwarciu produktu [product_id] zostanie zastąpiony jego ID. Pełna lista dostępnych Shortcodes — w dokumentacji.

Jak używać funkcji Callback BooStore.pro do analityki?

Funkcje Callback — to funkcje JavaScript, które są automatycznie wywoływane przez platformę przy wystąpieniu określonych zdarzeń: dodaniu do koszyka (callback_add_cart), usunięciu z koszyka (callback_remove_cart), zmianie wariantu (callback_variation_change), potwierdzeniu zamówienia (callback_order_confirm) i innych. Definiujesz te funkcje w swoim kodzie, a one otrzymują dane o zdarzeniu. Wewnątrz funkcji możesz wysłać te dane do GA4 przez dataLayer.push() lub do dowolnego innego systemu. Pełny opis — w dokumentacji funkcji Callback.



Uruchomienie reklamy Google dla sklepu internetowego: Merchant Center, reklama kontekstowa, Performance Max, analityka
Checklista przed uruchomieniem sklepu internetowego: 29 krytycznych punktów do sprawdzenia przed pierwszą reklamą
Dlaczego wynajem sklepu internetowego to korzyść?