Jak debugować GTM bez trybu podglądu
Podgląd wymaga dostępu do kontenera, zmienia stronę i mówi tylko za jeden kontener. Oto jak zweryfikować GTM na podstawie żądań, które faktycznie tworzy.
Tryb podglądu to oficjalny sposób debugowania Google Tag Managera i jest bardzo dobry w jednej konkretnej rzeczy: mówi, dlaczego reguła zadziałała tak, a nie inaczej. Ma też trzy ograniczenia, które pojawiają się bez przerwy. Wymaga uprawnień do edycji tego kontenera. Zmienia stronę, którą debuguje. I wie tylko o tagach w tym jednym kontenerze, co rzadko obejmuje całe śledzenie na stronie.
Czego tryb podglądu nie obejmie
- Kontener, do którego nie masz dostępu. Strona klienta przed rozpoczęciem współpracy, przejęcie po innej agencji, wdrożenie konkurencji, własna strona, gdy konto GTM należy do kogoś, kto odszedł.
- Tagi spoza GTM. Piksel Mety wpisany na sztywno w motywie jest dla podglądu niewidoczny, a to właśnie ten tag powoduje podwójne konwersje i naruszenia zgód.
- Różnica między uruchomieniem a wysłaniem. Podgląd mówi, że tag się uruchomił. Reguła Content Security Policy, blokada treści albo błąd sieci wciąż mogą zatrzymać żądanie. „Uruchomiony” i „dotarł” to dwa różne twierdzenia.
- Strony, które pod podglądem zachowują się inaczej. Podgląd dokłada parametry i cookie debugowania, a aplikacje jednostronicowe, banery zgód i ochrona przed botami nie zawsze to znoszą.
Cztery pytania
Debugowanie wdrożenia GTM to w istocie cztery pytania po kolei, a na każde da się odpowiedzieć z poziomu przeglądarki:
- Czy kontener w ogóle jest na stronie? Żądanie
gtm.jspodaje identyfikator kontenera. Uważaj na stronę, która zmienia nazwędataLayer— ostatni argument snippetu to ta nazwa, a jeśli nie brzmidataLayer, wszystkie poradniki każące wpisaćdataLayerw konsoli są dla tej strony błędne. - Czy dataLayer otrzymał zdarzenie? Push albo nastąpił, albo nie, i jest to pytanie o kod samej strony, nie o GTM.
- Czy uruchomił się dla niego jakiś tag? Opublikowany kontener to plik publiczny. Jego odczytanie odpowiada na pytanie, czy w ogóle istnieje tag nasłuchujący tego zdarzenia — zaskakująco często jest to odpowiedź na „dlaczego nic się nie dzieje”.
- Czy żądanie wyszło i z czym? To jedyne pytanie, które dowodzi, że cokolwiek dotarło do dostawcy.
Czytanie kontenera bez podglądu
gtm.js jest serwowany publicznie każdemu odwiedzającemu, więc opublikowany kontener da się
odczytać z samego identyfikatora: tagi, reguły i zdarzenia, których te reguły nasłuchują. Zamienia to
zdanie „programista mówi, że jest tag zakupu” w coś sprawdzalnego.
Uczciwe ograniczenia: widzisz wersję opublikowaną, nie obszar roboczy, więc niewdrożone zmiany pozostają niewidoczne. Widzisz, że reguła istnieje, a nie dlaczego okazała się prawdziwa przy tym konkretnym wczytaniu strony. To drugie jest dokładnie zadaniem trybu podglądu i dlatego podgląd zachowuje swoje miejsce w zestawie narzędzi.
dataLayer i jego dwie pułapki
Moment odczytu. Wszystko, co czyta dataLayer po wczytaniu strony, widzi
tablicę, którą GTM już przetworzył i przepisał. Pushe z czasu ładowania — domyślne zgody, pierwsze
zdarzenie gtm.js, wyświetlenia e-commerce wywołane inline — mogą już zniknąć, zanim zajrzysz.
Monitor, który podpina się pod tablicę przed uruchomieniem skryptu strony, widzi całą historię; zrzut z
konsoli nie.
Kruchość. Wszystko, co nadpisuje push, żeby go obserwować, stoi w środku kodu
samej strony, a zrobione nieostrożnie psuje ją. Push zawierający strukturę cykliczną, węzeł DOM albo
wartość, której nie da się sklonować, musi przetrwać w całości i dotrzeć do GTM niezmieniony. Jeśli
narzędzie do debugowania zmienia zachowanie debugowanego obiektu, wszystko po tym jest szumem.
Od pusha do żądania
Przydatny widok to nie osobna lista pushy i osobna lista żądań, tylko każdy push obok żądań, które
wywołał. Utrudniają to dwie rzeczy. Platformy zapisują to samo zdarzenie inaczej — purchase w
GA4, Purchase u Mety, CompletePayment w TikToku — więc dopasowanie musi znać ten
słownik. Do tego GA4 łączy zdarzenia w paczki, więc żądanie może pojawić się długo po swoim pushu i po
niepowiązanych, późniejszych żądaniach.
Tag Master łączy każdy push do dataLayer z żądaniami, które wywołał, czyta opublikowany kontener, żebyś zobaczył, czy dla zdarzenia istnieje tag, i zamienia przechwycony push w gotowy przepis GTM: warunek reguły i nazwy zmiennych Data Layer do utworzenia.
Gdy tag się uruchamia, a nic nie dociera
To przypadek, który tryb podglądu raportuje jako sukces. Warto sprawdzić po kolei:
- Content Security Policy. Strona odmawia wczytania skryptu dostawcy albo połączenia z jego punktem końcowym. Konsola mówi o tym krótko i raz.
- Blokada zgodą. Tag się uruchomił, stan zgód mówił „odmowa”, a skrypt dostawcy sam zrezygnował z wysyłki.
- Moment opuszczenia strony. Tag uruchamiany przy kliknięciu linku lub wysłaniu
formularza ściga się z nawigacją. Bez
sendBeaconżądanie zostaje przerwane w locie i nigdzie się nie zapisuje. - Blokada treści. Twoja albo odwiedzającego. Łatwo o tym zapomnieć, debugując we własnej przeglądarce.
Zbudowanie reguły, której naprawdę potrzebujesz
Większość pracy z GTM to nie debugowanie, tylko to samo małe zadanie w kółko: coś na stronie ma stać się zdarzeniem. Kliknięcie elementu i otrzymanie stabilnego selektora CSS, warunku reguły oraz zmiennej wyciągającej wartość to różnica między pięcioma minutami a półgodziną — zwłaszcza na stronach, których nazwy klas są generowane i zmieniają się przy każdym wdrożeniu.
Kiedy tryb podglądu nadal jest właściwy
Wtedy, gdy pytanie brzmi dlaczego. Dlaczego ta reguła zadziałała na stronie, na której nie powinna. Która zmienna była pusta w chwili uruchomienia tagu. Co zwróciła tabela odnośników. Podgląd jest jedyną rzeczą, która widzi wnętrze oceny dokonywanej przez GTM, i żadna ilość czytania żądań tego nie zastąpi. Żądaniami ustal, że coś jest nie tak i gdzie; podglądem ustal dlaczego.
Powiązane poradniki
- Test Events dla TikToka, Snapa, UET i pięciu platform
- Testowanie śledzenia bez zaśmiecania produkcyjnych raportów
- Reguła kliknięcia w GTM, której nie zepsuje kolejne wdrożenie
Sprawdź na własnej stronie
Tag Master jest darmowy, nie wymaga konta i nie zbiera żadnych danych.
Dodaj do Chrome — za darmo