MATEUSZ POPŁAWSKI
The LabToolsO mnieBlogCertyfikatyKontaktUmów konsultację

Usługi

  • Performance Ads
  • Web Analytics
  • Landing Pages
  • Automatyzacja

Case Studies

  • The Lab

Wiedza

  • Blog
  • Certyfikaty

Tools

  • Growth Ops Tools
  • Kalkulator SST

Kontakt

  • O mnie
  • Umów konsultację

Mateusz Popławski

Growth Ops Architect

Design i wykonanie: Mateusz Popławski
(MatPop Digital Mateusz Popławski)

© 2026. Built for Scale.

Stack: Next.js 16, React, Tailwind, Framer Motion

Polityka Prywatności
Stape Partner - oficjalny partner platformy Server-Side GTMGoogle Partner Badge - certyfikat partnerstwa Google Ads
  1. Start
  2. The Lab
  3. GTM Custom Data Attributes: Analityka odporna na zmiany UI
Mateusz Popławski

GTM Custom Data Attributes: Analityka odporna na zmiany UI

GTM Custom Data Attributes: Analityka odporna na zmiany UI

Executive Summary

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).

Wyzwanie

Dlaczego selektory CSS psują analitykę w Google Tag Managerze?

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ł.

Kontekst biznesowy

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.

Rozwiązanie

Architektura: Data Flow

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

Konfiguracja GTM krok po kroku: Warstwa HTML i zmienne AEV

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

Sprawdź, ile konwersji tracisz. Kalkulator SST.

Wyniki

Wnioski: Bezawaryjne śledzenie zdarzeń i lepsza jakość danych w GA4

  • 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.

Zrzut ekranu z trybu podglądu Google Tag Manager potwierdzający poprawne zbieranie danych dla przycisku "Umów konsultację" wraz z parametrami cta_location i link_url w usłudze GA4
Weryfikacja zdarzenia cta_click w GTM Debugger

Pro-Tips: Jak uniknąć błędów przy wdrażaniu Data Attributes?

Przy wdrażaniu tej metody napotkałem kilka istotnych kwestii, na które trzeba uważać:

  1. 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).

  2. 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.

  3. 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.

Chcesz podobnych rezultatów?

Umów bezpłatną konsultację i sprawdź, jak mogę pomóc Twojemu biznesowi.

Umów konsultację

Powiązane case studies

Automatyzacja przesyłu leadów do CRM zablokowanego na ruch przychodzący
Branża Automotive

Automatyzacja przesyłu leadów do CRM zablokowanego na ruch przychodzący

Zobacz case study
Server-Side Tagging  w branży Premium Automotive. Spadek CPA o 32%
Dealer Automotive (Segment Premium)

Server-Side Tagging w branży Premium Automotive. Spadek CPA o 32%

Zobacz case study
content_read_complete: Koniec z vanity metrics w analityce contentu.
Mateusz Popławski

content_read_complete: Koniec z vanity metrics w analityce contentu.

Zobacz case study