Tag Manager niczego nie mierzy, tylko podaje dalej
Google Tag Manager (GTM) to bezpłatny kontener na kody śledzące: Google Analytics, piksele reklamowe, kody konwersji. Zamiast wklejać każdy z nich w szablon strony, wgrywa się raz kontener, a pojedyncze tagi konfiguruje w panelu.
Podział ról bywa opisywany myląco, więc zacznijmy od niego: liczby zbiera Analytics, a Tag Manager tylko decyduje, kiedy i któremu narzędziu przekazać sygnał. Wyłączenie kontenera nie kasuje danych historycznych. Przerywa dopływ nowych.
Warstwa danych decyduje, co tag w ogóle zobaczy
Sercem konfiguracji jest dataLayer. Dokumentacja definiuje go jednym zdaniem: „The data layer is an object used by Google Tag Manager and gtag.js to pass information to tags”.2 Tag sam z siebie nie wie, że koszyk ma wartość 240 zł ani że użytkownik jest zalogowany. Dowiaduje się tego wyłącznie z warstwy danych.
Kolejność w kodzie ma tu znaczenie rozstrzygające. Jeśli zmienne mają być dostępne od momentu wczytania kontenera, wywołanie dataLayer.push() musi stać powyżej fragmentu GTM.2 Przestawienie tych dwóch bloków to jedna z tych usterek, które nie dają żadnego komunikatu o błędzie: tagi się uruchamiają, tylko część zmiennych przychodzi pusta.
Kiedy kontener tylko dokłada pracy
Jednostronicowa wizytówka z samym Analytics nie potrzebuje menedżera tagów. Dokłada on wtedy warstwę, którą trzeba utrzymywać, testować i pamiętać o niej przy każdej zmianie szablonu. Sens pojawia się przy trzech, czterech narzędziach naraz albo wtedy, gdy marketing musi zmieniać śledzenie bez czekania na programistę.
Odwrotna sytuacja też występuje. Sklep mierzący zdarzenia zakupowe, remarketing i testy A/B bez kontenera skazuje się na to, że każda korekta pomiaru wchodzi razem z wdrożeniem kodu, czyli raz na dwa tygodnie, jeśli dobrze pójdzie.
Warstwa przyspieszająca stronę potrafi uciszyć pomiar
Google każe umieścić pierwszy fragment kontenera „as high in the <head> tag as possible”, a drugi „immediately after the opening <body> tag”.3 Wtyczki optymalizujące ładowanie robią dokładnie odwrotnie: przechwytują skrypty i odpalają je dopiero przy pierwszym ruchu myszy albo dotknięciu ekranu.
Sprawdziliśmy to na tym serwisie 19 sierpnia 2026 roku. Nasz tag pomiarowy siedzi w kodzie jako type="essa/delay" z adresem przeniesionym do data-essa-src, w towarzystwie 31 innych odroczonych skryptów; osadzony obok znacznik <noscript> kontenera zostaje nietknięty.4 Konsekwencja jest przewidywalna i łatwa do przeoczenia: wejście zakończone bez żadnej interakcji nie zostawia śladu w pomiarze, bo skrypt nie zdążył wystartować.
Zanim więc uznasz, że ruch spadł, otwórz źródło strony i poszukaj, czy adres tagu nie został przeniesiony do atrybutu zastępczego. Kompromis między szybkością a kompletnością danych jest do przyjęcia, ale musi być świadomy, a nie odziedziczony po ustawieniach domyślnych wtyczki.
Zgody: cztery typy, nie trzy
Przy ruchu z Europy kontener pełni jeszcze jedną funkcję: trzyma ustawienia zgód. Dokumentacja wymienia cztery typy: ad_storage („Enables storage (such as cookies) related to advertising”), ad_user_data („Sets consent for sending user data related to advertising to Google”), ad_personalization („Sets consent for personalized advertising”) oraz analytics_storage („Enables storage (such as cookies) related to analytics e.g. visit duration”).1
Ten czwarty ginie w opracowaniach najczęściej, a odpowiada za pomiar ruchu, nie za reklamy. Tagi Google obsługujące tryb zgody „already adjust their behavior based on these consent types”, więc baner zgód potrafi wyciszyć statystyki, mimo że w Analytics nikt niczego nie zmieniał.1 Ustawienia sprawdza się w każdym tagu przez Advanced Settings → Consent Settings.1 Powiązanie z plikami cookies jest tu bezpośrednie, podobnie jak wpływ na listy odbiorców opisany w haśle retargeting.
Kontener, do którego nikt nie zagląda przez rok
Swoboda dodawania tagów bez programisty jest zaletą i zagrożeniem w jednym opakowaniu. Po roku typowy kontener zawiera kody kampanii zakończonych dawno temu, dublujące się zdarzenia i pozycje, których pochodzenia nikt w firmie nie pamięta.
Higiena pracy sprowadza się do trzech nawyków: każdy tag ma właściciela i opis, zmiany przechodzą przez tryb podglądu przed publikacją, a przegląd zawartości wpisuje się w kalendarz raz na kwartał. Przy porządkowaniu od razu sprawdź poprawność oznaczeń kampanii. Służy do tego kod UTM.
Najczęstsze pytania
Czy Google Tag Manager zbiera dane?
Nie. Kontener uruchamia inne kody i to one zbierają dane. Sam kontener przekazuje im wyłącznie informacje z warstwy danych.
Która zgoda odpowiada za statystyki odwiedzin?
analytics_storage. Zgody reklamowe (ad_storage, ad_user_data, ad_personalization) sterują osobnym obszarem i ich odrzucenie nie tłumaczy braków w Analytics.
Dlaczego tag działa w podglądzie, a na żywej stronie nie?
Najczęściej dlatego, że warstwa przyspieszająca odracza skrypty, albo przez zmienne pobierane z warstwy danych, która w danym momencie jest jeszcze pusta. Tryb podglądu wymusza wczytanie i pierwszą z tych przyczyn maskuje.
Źródła
1. Google Tag Manager Help, „Consent mode support in Tag Manager” — opisy typów zgód: ad_storage „Enables storage (such as cookies) related to advertising”, ad_user_data „Sets consent for sending user data related to advertising to Google”, ad_personalization „Sets consent for personalized advertising”, analytics_storage „Enables storage (such as cookies) related to analytics e.g. visit duration”; „Google tags that support consent mode already adjust their behavior based on these consent types”; ustawienia w tagu przez „Advanced Settings > Consent Settings”. Zobacz dokumentację trybu zgody →
2. Google Tag Platform, „Data layer”: „The data layer is an object used by Google Tag Manager and gtag.js to pass information to tags”; „If you want these data layer variables to be available to Tag Manager when the container is loaded, add a dataLayer.push() call above the Tag Manager container code”. Zobacz dokumentację warstwy danych →
3. Google Tag Manager Help, „Install a web container”: „Copy the first block of code and paste it as high in the <head> tag as possible”; „Copy the second block of code and paste it immediately after the opening <body> tag”. Zobacz instrukcję instalacji kontenera →
4. Pomiar własny, essaseo.pl, 19 sierpnia 2026: tag pomiarowy w kodzie strony głównej jako type="essa/delay" z adresem w data-essa-src, łącznie 32 skrypty odroczone do pierwszej interakcji użytkownika; znacznik <noscript> kontenera obecny bez zmian.
Tadeusz Wolskizałożyciel ESSA SEO · 40+ zrealizowanych projektów · 5,0★ Google · 5,0★ Fiverr (30+ ocen)Zaktualizowano ⋅ 19 sierpnia 2026