
Kluczowe informacje
Cel: Stworzenie skalowalnego systemu śledzenia interakcji (kliknięć), niewrażliwego na zmiany w kodzie CSS/HTML.
Stack: Google Tag Manager (Auto-Event Variables), HTML5 Data Attributes, Google Analytics 4.
Główny Wynik: 0 błędów w zbieraniu danych po redesignie strony i pełna granularność (lokalizacja kliknięcia).
W standardowych wdrożeniach analitycznych często polegamy na klasach CSS (.btn-primary) lub ID elementów. To rozwiązanie "zaciąga dług techniczny" już na starcie. Wystarczy, że developer zmieni nazwę klasy, strukturę zagnieżdżenia w DOM lub tekst na przycisku ("Kup" na "Zamów"), a trigger w GTM przestaje działać (tzw. Silent Failure).
Dodatkowo, śledzenie oparte na URL docelowym (Click URL) jest nieprecyzyjne. Nie ma możliwości rozróżnienia, czy kliknięcie w ten sam link nastąpiło w sekcji Hero, czy w Footerze, bez konieczności wdrażania nadmiarowych reguł.
Na własnej stronie potrzebowałem rozwiązania "Set and Forget". Tracenie czasu na debugowanie GTM po każdej zmianie koloru przycisku lub korekcie copywritingu było nieakceptowalne. Celem było przeniesienie logiki analitycznej bezpośrednio do kodu, w sposób deklaratywny.
Zamiast skomplikowanych skryptów JS, oparłem rozwiązanie o natywne atrybuty HTML5 (data-*). Przepływ danych wygląda następująco:
DOM Element (Atrybut) -> GTM (Auto-Event Variable) -> GTM (Trigger) -> GA4 Payload
1. Warstwa HTML (Deklaracja) Zamiast "zgadywać" w GTM, co robi dany przycisk, opisałem go wprost w kodzie HTML. Dodałem niestandardowe atrybuty data-track-*. Dzięki temu analityka jest "hardcoded" w logice elementu, a nie w jego wyglądzie.
<a href="/kontakt" class="btn btn-primary" data-track-event="cta_click" data-track-location="hero_section" data-track-label="umow_konsultacje"> </a>
Wyjaśnienie kodu:
data-track-event: Definiuje nazwę zdarzenia dla GTM (uniwersalny identyfikator).
data-track-location: Precyzuje miejsce kliknięcia (Hero, Footer, Sidebar).
data-track-label: Statyczna nazwa, niezależna od tego, co wyświetla się użytkownikowi (np. przy testach A/B tekstu).
2. Konfiguracja Zmiennych w GTM Kluczem do wydajności jest tutaj typ zmiennej Auto-Event Variable (AEV). Nie używam Data Layer (dataLayer.push), ponieważ dane są już w DOM. GTM "zeskrobuje" je w momencie kliknięcia.
Skonfigurowałem trzy zmienne mapujące atrybuty:
aev - data track event (mapuje data-track-event)
aev - data track location (mapuje data-track-location)
aev - data track label (mapuje data-track-label)
3. Uniwersalny Trigger Zamiast 20 triggerów dla każdego przycisku, stworzyłem jeden generyczny wyzwalacz, który obsługuje wszystkie obecne i przyszłe przyciski na stronie.
Typ: Click - Just Links
Warunek: aev - data track event równa się cta_click
Skalowalność: Dodanie nowej sekcji na stronie wymaga teraz jedynie dopisania atrybutów w HTML. Nie muszę nawet logować się do GTM, aby dane zaczęły spływać.
Jakość Danych: Wyeliminowałem błędy wynikające ze zmian wizualnych. CSS może się zmienić całkowicie, a tracking pozostaje nienaruszony.
Granularność: W GA4 mogę teraz budować raporty skuteczności sekcji (CTR dla Hero vs Footer) używając jednego parametru cta_location.

Przy wdrażaniu tej metody napotkałem kilka istotnych kwestii, na które trzeba uważać:
Variable Type Confusion: Łatwo pomylić zmienną warstwy danych (Data Layer Variable) ze zmienną zdarzenia automatycznego (Auto-Event Variable). Jeśli spróbujesz pobrać atrybut data-track używając Data Layer Variable, GTM zwróci undefined, ponieważ te dane nie siedzą w obiekcie dataLayer, lecz w strukturze DOM elementu klikniętego (gtm.element).
Element Nesting: Jeśli wewnątrz linku <a> znajduje się <span> lub ikona SVG, GTM może odczytać kliknięcie na elemencie podrzędnym, który nie ma atrybutów. Upewnij się, że używasz opcji "Check Validation" w triggerze lub CSS pointer-events: none na elementach wewnątrz linku, aby kliknięcie "przebijało" do głównego znacznika <a> posiadającego atrybuty.
GA4 Data Visibility Gap: Samo wysłanie parametru (np. cta_location) w tagu GTM to tylko połowa sukcesu. Krytyczny krok: Musisz zarejestrować te parametry jako Wymiary Niestandardowe (Custom Dimensions) w panelu admina GA4. Bez tego dane będą widoczne jedynie w surowym eksporcie BigQuery lub w podglądzie Real-Time, ale nie będą dostępne w Raportach Eksploracji (Explorations) ani w standardowych tabelach.
Umów bezpłatną konsultację i sprawdź, jak mogę pomóc Twojemu biznesowi.
Umów konsultację

