Śledzenie wewnątrz osadzonego widżetu
Widżet rezerwacji, krok płatności albo czat w iframe ma własny dataLayer. Dlaczego podgląd pokazuje jedno zdarzenie tam, gdzie log pokazuje dwa, i co naprawdę przekracza granicę.
Iframe to osobny dokument. Ma własne window, własny dataLayer, prawdopodobnie
własny kontener GTM i żadnego obowiązku mówienia czegokolwiek stronie nadrzędnej. Większość zamieszania ze
śledzeniem widżetów rezerwacyjnych, kroków płatności i czatów bierze się z traktowania tej granicy tak,
jakby jej nie było.
Co robi podgląd GTM na granicy
Podgląd podpina się do ramki, w której go otworzyłeś. Zdarzenia w innej ramce są albo niewidoczne, albo
pojawiają się raz, choć wystąpiły dwa razy. To nie błąd podglądu, tylko zakres, jaki dostał. Oznacza to
jednak, że „podgląd pokazał jedno page_view” nie jest dowodem, że wysłano tylko jedno.
Ta sama domena i inna domena to dwa różne problemy
- Ta sama domena — iframe jest na Twoim hoście. Możesz do niego sięgnąć, odczytać jego dataLayer i wypchnąć do niego zdarzenie. Wszystko jest możliwe, a jedyne realne pytanie brzmi, czy ktoś o tym pomyślał.
- Inna domena — widżet jest na hoście dostawcy. Nie dotkniesz jego DOM-u, dataLayer ani
cookies. Jedynym kanałem jest
postMessagei istnieje tylko wtedy, gdy dostawca go zbudował. Jeśli nie, żadna konfiguracja GTM nie wyciągnie zdarzenia z tej ramki.
Trzy awarie warte znajomości
- Konwersja dzieje się w cudzej usłudze. Widżet rezerwacji na domenie dostawcy uruchamia jego własne GA4. Zdarzenie istnieje — tylko nie na Twoim koncie. Zostaje Ci sesja urywająca się na widżecie i brak zakupu, co czyta się jak błąd śledzenia, a jest błędem architektury.
- Krok płatności to przebrany skok między domenami. Czy to iframe, czy przekierowanie, opuszczenie Twojej domeny bez linkera zaczyna nowy client ID. Odwiedzający wraca jako nowa osoba odesłana przez operatora płatności.
- Ten sam kontener w obu ramkach. Zainstaluj GTM w stronie nadrzędnej i jeszcze raz w
iframe z tej samej domeny, a dostaniesz dwa
page_viewna jedną stronę. Sesje i zaangażowanie po cichu rosną, a podgląd — patrzący na jedną ramkę — pokazuje jedno, całkiem zdrowe zdarzenie.
Tag Master nasłuchuje w każdej ramce, nie tylko w najwyższej. Każdy push do dataLayer jest oznaczony ramką, z której przyszedł, i nazwą hosta iframe'a, a filtr „Main frame” pozwala je ukryć lub pokazać — i tak przypadek duplikatu przestaje być niewidoczny.
Jak to sprawdzić
- Wczytaj stronę z widżetem i policz zdarzenia
page_viewprzy wyłączonym filtrze ramek. Więcej niż jedno oznacza kontener zainstalowany dwukrotnie. - Wejdź w interakcję z widżetem. Jeśli w żadnej ramce nic się nie pojawia, widżet jest z innej domeny i milczy, a odpowiedzią jest rozmowa z dostawcą, nie reguła.
- Jeśli zdarzenia z iframe'a jednak przychodzą, sprawdź, jakie konto niosą —
tiddla GA4, identyfikator piksela dla Mety. Własny identyfikator dostawcy oznacza, że dane idą do dostawcy. - Po obu stronach granicy widżetu sprawdź
cidtak samo jak przy każdym skoku między domenami.
Jeśli dostawca daje Ci postMessage
Wtedy wzorzec jest taki: widżet wysyła zdarzenie, listener w stronie nadrzędnej je odbiera i wypycha do
dataLayer strony nadrzędnej, a Twoje tagi uruchamiają się stamtąd. Na dwie rzeczy trzeba nalegać. Sprawdzaj
event.origin względem oczekiwanego hosta — listener przyjmujący wiadomości zewsząd chętnie
przyjmie zdarzenie zakupu ze strony, której nie pisałeś. I zadbaj, by ładunek niósł identyfikator
zamówienia, żeby zdarzenie dało się zdeduplikować z tym, co dostawca wysyła równolegle.
Powiązane poradniki
- Jak debugować server-side GTM
- Debugowanie Consent Mode V2: gcs, gcd i naruszenia, których nikt nie łapie
- Alternatywa dla Tag Assistant w 2026
Sprawdź na własnej stronie
Tag Master jest darmowy, nie wymaga konta i nie zbiera żadnych danych.
Dodaj do Chrome — za darmo