Server-side tracking 13 czerwca 2026 8 min czytania

Jak zainstalować Google Tag Manager (GTM) w Shoper - krok po kroku

Instalacja GTM na Shoperze zależy od wersji sklepu - RWD i Storefront mają różne drogi. Pokazuję obie metody wklejenia kontenera, kolejność z consentem i jak sprawdzić, że naprawdę działa.

Większość poradników o instalacji Google Tag Managera wygląda tak samo: wklej snippet w <head>, drugi przed </body> i gotowe. Na własnym HTML-u faktycznie tyle wystarczy. Na Shoperze nie, bo nie masz dostępu do surowego szablonu w taki sposób, a do tego instalacja wygląda inaczej w zależności od tego, którą wersję sklepu prowadzisz.

Ten tekst doprowadza kontener GTM do działania na Shoperze i pokazuje, jak to zweryfikować. Świadomie nie wchodzę w konfigurację samych tagów (GA4, konwersje Google Ads, warstwa danych) - to osobny, większy temat, do którego linkuję na końcu. Tutaj cel jest węższy i konkretny: zainstalować kontener poprawnie, raz, w dobrej kolejności, żeby reszta pomiaru miała się na czym oprzeć.

Najpierw ustal wersję: Shoper RWD czy Storefront

To nie jest formalność. Wersja sklepu determinuje, którą metodą wkleisz kod i czego potem oczekiwać po warstwie danych.

  • Shoper RWD (klasyczny) to starszy, ale wciąż najpopularniejszy front. Renderuje się po stronie serwera, masz w panelu pola na integracje i wstawki kodu. Instalacja GTM jest tu najprostsza.
  • Shoper Storefront to nowy, headless-podobny front: asynchroniczny, zamknięty, checkout ładowany w tle. Kontener GTM da się wpiąć, ale warstwa danych nazywa się shopLayer, a nie standardowy dataLayer, więc po instalacji czeka cię translacja.

Jak sprawdzić, co masz, jeśli nie wiesz? Otwórz sklep, kliknij prawym i podejrzyj źródło. Jeśli treść strony jest w HTML od razu, to RWD. Jeśli widać głównie pusty szkielet, a produkty doczytują się skryptem, to Storefront. Rozbiłem różnice obu wersji w pomiarze w tekście o tym, dlaczego standardowe metody zawodzą na Shoper Storefront.

Dla obu wersji są zasadniczo dwie drogi instalacji: natywne pole w panelu albo ręczne wklejenie kodu. Omawiam obie.

Metoda 1: natywne pole GTM w panelu Shoper

Najnowszy Shoper ma dedykowane miejsce na identyfikator kontenera, więc nie musisz wklejać całego snippetu. Wystarczy, że podasz ID w formacie GTM-XXXXXXX, a platforma sama wstrzyknie obie części kodu (z head i z body) w odpowiednie miejsca szablonu.

Ścieżka w panelu różni się między wersjami i aktualizacjami Shopera, ale szukasz sekcji integracji marketingowych lub Google (zwykle w okolicach ustawień lub dodatków). Wklejasz tam sam identyfikator kontenera, zapisujesz, gotowe.

To jest metoda zalecana, jeśli jest dostępna, z dwóch powodów. Po pierwsze, nie da się jej zepsuć łamaniem linii (o tym za chwilę). Po drugie, Shoper wstawia kod we właściwej kolejności względem reszty szablonu, więc kontener ładuje się tam, gdzie powinien, a nie gdzie akurat trafi twój wklej.

Jedyne, na co uważać: jeśli wcześniej ktoś wklejał GTM ręcznie, a teraz dodasz ID w natywnym polu, dostaniesz dwa kontenery na stronie. To klasyczny powód podwójnego liczenia. Zanim skorzystasz z natywnego pola, usuń stare ręczne wstawki.

Metoda 2: ręczne wklejenie kodu GTM

Jeśli twoja wersja Shopera nie ma natywnego pola, albo chcesz mieć pełną kontrolę nad tym, co i kiedy się ładuje, wklejasz kod ręcznie. Robisz to przez sekcję wstawek HTML, w Shoperze nazwaną zwykle Integracje własne (lub podobnie, w zależności od motywu i wersji).

GTM daje dwa fragmenty. Pierwszy idzie możliwie wysoko w head, drugi to wersja noscript zaraz po otwarciu body. Skopiuj oba z panelu Google Tag Managera (Administrowanie, Zainstaluj Google Tag Manager).

Tu jest pułapka, która kładła już niejedną instalację. Pole „Integracje własne” w Shoperze twardo zawija długie linie - mniej więcej na 68 znaku, w środku tokena. Snippet GTM ma długie linie, więc po zapisie kod potrafi się rozjechać w połowie wyrazu i przestaje być poprawnym JavaScriptem. Efekt: kontener się nie ładuje, a w źródle wygląda „prawie dobrze”, więc trudno to złapać.

Obejście: wklejaj kod połamany na krótkie linie, do około 64 znaków każda, zanim go zapiszesz. Najprościej rozbić długie wywołania na osobne wiersze ręcznie. Opisałem ten i pokrewne haczyki Shopera szerzej w tekście o tym, jak Shoper RWD potrafi gubić funnel.

Jeśli sklep obsługuje ruch z Unii Europejskiej, samo wklejenie kontenera to za mało, żeby pomiar był zgodny z RODO i z wymogami Google. Zanim GTM się odpali, w stronie musi już być ustawiony domyślny stan zgód na denied. Dopiero akceptacja w banerze cookies przełącza go na granted.

Kolejność jest nieprzypadkowa i to ona najczęściej się sypie:

  1. Najpierw ładuje się skrypt z domyślnym stanem Consent Mode (default: denied).
  2. Potem kontener GTM.
  3. Baner cookies pozwala użytkownikowi zmienić zgodę, co wywołuje aktualizację (update).

Jeśli GTM załaduje się przed ustawieniem domyślnego stanu zgód, tagi mogą odpalić, zanim w ogóle wiadomo, czy użytkownik się zgodził. Na Shoperze, gdzie nie masz pełnej swobody w kolejności skryptów, najpewniejsza jest konfiguracja domyślnego stanu wewnątrz samego kontenera GTM (tag Consent Mode wyzwalany na Consent Initialization) plus poprawnie podpięty baner. Pełną konfigurację consentu krok po kroku pokazuję w przewodniku o wdrożeniu Google Ads i GTM na Shoperze.

Jak sprawdzić, że kontener naprawdę działa

Instalacja bez weryfikacji to instalacja na wiarę. Trzy szybkie sprawdzenia:

Tag Assistant / tryb podglądu. W panelu GTM kliknij Podgląd, podaj adres sklepu i sprawdź, czy Tag Assistant łączy się i pokazuje, że kontener jest aktywny. Jeśli się nie łączy, kod się nie załadował (najczęściej przez połamany snippet z Metody 2 albo blokadę adblockiem przy testach).

Konsola przeglądarki. Otwórz narzędzia deweloperskie, zakładka Console, wpisz dataLayer i zatwierdź. Powinieneś dostać tablicę, a nie błąd „undefined”. Na Shoper Storefront sprawdź dodatkowo shopLayer - to tam żyją zdarzenia e-commerce, które dopiero trzeba przetłumaczyć na dataLayer. Jeśli te pojęcia brzmią niejasno, definicje dataLayer, kontenera GTM i pokrewnych terminów zebrałem w słowniku pojęć trackingowych.

Strony kluczowe, nie tylko home. Najczęstszy błąd to kontener obecny na stronie głównej, a nieobecny tam, gdzie naprawdę zależy: na karcie produktu, w koszyku i na stronie podziękowania po zakupie. Na Storefroncie strona potwierdzenia zamówienia bywa ładowana inaczej niż reszta sklepu, więc zweryfikuj ją osobno. Bez kontenera na thank-you page nie zmierzysz transakcji.

Najczęstsze błędy instalacji

Zbiór tego, co najczęściej idzie nie tak na samym etapie wpięcia kontenera, zanim ktokolwiek dotknie konfiguracji tagów:

  • Dwa kontenery naraz - natywne pole plus stara ręczna wstawka. Każde zdarzenie liczy się podwójnie. Zostaw jedną metodę.
  • Połamany snippet z pola „Integracje własne” (pułapka 68 znaków). Kod wygląda prawie dobrze, ale nie jest poprawnym JS i kontener milczy.
  • GTM przed Consent Mode - tagi odpalają, zanim ustalony jest stan zgód. Niezgodne z RODO i zaszumia dane.
  • Brak kontenera na checkout i thank-you page (częste na Storefroncie z asynchronicznym checkoutem).
  • Pomylony identyfikator - wklejony G-XXXXXXX (to GA4) zamiast GTM-XXXXXXX. To dwa różne produkty Google. W natywne pole GTM idzie wyłącznie identyfikator zaczynający się od GTM-.

Co dalej: od instalacji do realnego pomiaru

Działający kontener to fundament, nie cały dom. Sam GTM jeszcze nic nie mierzy - to pusty pojemnik, który czeka na tagi i na dane wejściowe. Następne kroki, w kolejności:

  1. Warstwa danych. Na RWD sprawdź, czy funnel leci do dataLayer, czy przypadkiem przez gtag (częsty problem, opisany tutaj). Na Storefroncie czeka cię translacja shopLayer na dataLayer - czym się różnią i co się gubi po drodze.
  2. Tagi i konwersje. GA4, konwersje Google Ads i Enhanced Conversions, krok po kroku dla Shopera, zebrałem w kompletnym przewodniku wdrożenia.
  3. Server-side, gdy pomiar w przeglądarce przestaje wystarczać - adblocki, ograniczenia przeglądarek, ucinane bramki płatności. To temat na server-side GTM dla Shopera.

Jeśli wolisz, żeby ktoś przeszedł przez to za ciebie i zostawił sklep z czystym, kompletnym pomiarem, na tym właśnie polega moja usługa wdrożenia pomiaru dla Shopera.

Podsumowanie

Instalacja GTM na Shoperze to nie „wklej dwa snippety i gotowe”. Najpierw ustal wersję sklepu, bo RWD i Storefront różnią się drogą instalacji i warstwą danych. Jeśli masz natywne pole na identyfikator kontenera, użyj go - jest odporne na łamanie linii i wstawia kod we właściwej kolejności. Przy ręcznym wklejaniu pamiętaj o pułapce zawijania w polu „Integracje własne”. Zadbaj o domyślny stan Consent Mode przed załadowaniem kontenera i zweryfikuj instalację na stronach kluczowych, nie tylko na home. Dopiero działający i sprawdzony kontener jest punktem, od którego zaczyna się realny pomiar.

Porozmawiajmy o Twoim trackingu

30 minut bez zobowiązań. Bez sesji sprzedażowej. Powiem czy mogę pomóc i co realnie da się odzyskać.