Kliknięcia w linki w GA4 możesz śledzić na dwa sposoby: włączyć pomiary zaawansowane (enhanced measurement), które wysyłają zdarzenie click dla linków wychodzących i file_download dla plików, albo zbudować w Google Tag Managerze regułę Kliknięcie - Tylko linki (Click - Just Links) i wysyłać własne zdarzenie z parametrami, które sam wybierasz. Pomiary zaawansowane załatwiają podstawy za darmo. GTM załatwia całą resztę: wewnętrzne CTA, linki mailto: i tel:, teksty przycisków i miejsce na stronie, w którym padło kliknięcie.
Cała sztuka polega na tym, żeby wiedzieć, gdzie kończy się jedno, a zaczyna drugie. Pomylisz się i albo zgubisz połowę kliknięć, albo będziesz liczyć to samo kliknięcie dwa razy, pod dwiema różnymi nazwami zdarzeń, do końca świata.
- Pomiary zaawansowane wysyłają
click(zoutbound,link_url,link_domain) tylko dla linków do innych domen. Linki wewnętrzne i większość linkówmailto:/tel:są dla nich niewidoczne. - Do całej reszty użyj w GTM ścieżki Reguły > Nowa > Kliknięcie - Tylko linki oraz wbudowanych zmiennych Click URL i Click Text.
- Nie nazywaj zdarzenia z GTM
clickanifile_download. Google wymienia obie nazwy jako zarezerwowane dla strumieni internetowych. Użyj np.link_clickalbocontact_click. - Jeśli linki wychodzące śledzą jednocześnie GTM i pomiary zaawansowane, dostajesz dwa zdarzenia na jedno kliknięcie. Każdy typ linku musi mieć jednego właściciela.
- Testuj w trybie podglądu GTM i w GA4 DebugView, a potem zarejestruj własne parametry jako wymiary niestandardowe, inaczej nie pojawią się w raportach.
Co GA4 śledzi samo (i co po cichu pomija)
Pomiary zaawansowane znajdziesz w Administracja > Strumienie danych > Twój strumień internetowy > Pomiary zaawansowane (ikona koła zębatego). Tutaj liczą się dwa przełączniki.
Kliknięcia wychodzące wywołują zdarzenie click "za każdym razem, gdy użytkownik kliknie link prowadzący poza bieżącą domenę", jak pisze Google. Wysyłają link_classes, link_domain, link_id, link_url i outbound (wartość logiczna). Linki do domen dodanych w konfiguracji pomiaru między domenami nie liczą się jako wychodzące. Tak ma być.
Pobrania plików wywołują file_download, gdy link prowadzi do pliku pasującego do wyrażenia regularnego Google: pdf|xlsx?|docx?|txt|rtf|csv|exe|key|pp(s|t|tx)|7z|pkg|rar|gz|zip|avi|mov|mp4|mpe?g|wmv|midi?|mp3|wav|wma. Parametry: file_extension, file_name, link_text, link_url, plus klasy i ID.
Zobacz, czego brakuje. Nie ma linków wewnętrznych. Nie ma przycisku "Umów rozmowę", który prowadzi na /kontakt. Nie ma pobrań .webp ani .json.
A z mojego doświadczenia linki mailto: i tel: nie pojawiają się jako kliknięcia wychodzące na tyle pewnie, żeby na tym raportować. Prawda jest taka, że przy linkach kontaktowych w ogóle nie ufam pomiarom zaawansowanym.
Oto porównanie, które pokazuję klientom:
| Co chcesz śledzić | Pomiary zaawansowane | Reguła Tylko linki w GTM |
|---|---|---|
| Linki wychodzące do innych domen | Tak, zdarzenie click |
Tak, jeśli ją zbudujesz |
Wewnętrzne linki CTA (/cennik, /kontakt) |
Nie | Tak |
Linki mailto: i tel: |
Nie polegaj na tym | Tak |
| Pobrania PDF, DOCX, ZIP | Tak, file_download |
Tak |
Nietypowe pliki (.webp, .json, .ics) |
Nie | Tak, z własnym regexem |
| Tekst linku jako parametr | Tylko przy pobraniach | Tak, przez Click Text |
| Miejsce na stronie (nagłówek, stopka, artykuł) | Nie | Tak, z jedną dodatkową zmienną |
| Nakład pracy | Jeden przełącznik | 20-40 minut na konfigurację |
Na małej stronie wizytówce z pięcioma linkami do partnerów przełącznik wystarczy. Wszędzie tam, gdzie kliknięcie jest sygnałem leada, buduję to w GTM.
Dlaczego przestałem ufać przełącznikowi przy linkach kontaktowych
Paulina prowadzi sieć gabinetów fizjoterapii z czterema lokalizacjami pod Poznaniem. Jej agencja przez ponad rok raportowała z GA4 "kliknięcia w telefon" i liczba wyglądała zdrowo: 310 miesięcznie. Potem gabinet zmienił dostawcę call trackingu, a log połączeń pokazał 1140 rozmów rozpoczętych ze strony w tym samym miesiącu.
Liczba z GA4 nie była kliknięciami w telefon. Było to zdarzenie click przefiltrowane po "zawiera tel" na wymiarze, który miała tylko część kliknięć. Na mobilnym Safari spora porcja kliknięć tel: w ogóle nie generowała zdarzenia. Nikt tego nie sprawdził, bo liczba rosła i spadała jak prawdziwa metryka.
Przebudowałem to w GTM w jedno popołudnie: jedna reguła Tylko linki dla tel:, jedna dla mailto:, jeden tag zdarzenia GA4 o nazwie contact_click z parametrem contact_method. W kolejnym miesiącu GA4 pokazało 1062 zdarzenia contact_click z contact_method = phone. Nie 1140, bo część osób wybrała numer ręcznie, po przeczytaniu go na stronie. Wystarczająco blisko, żeby planować na tym budżety.
I to jest lekcja. Wiarygodnie wyglądająca liczba jest groźniejsza niż brakująca.
Jak śledzić kliknięcia w linki w GA4 przez GTM, krok po kroku
Zakładam, że masz już w kontenerze tag Google (Twój identyfikator pomiaru GA4). Jeśli sam GTM jest dla Ciebie nowy, zacznij od tekstu czym jest Google Tag Manager i jak działa i wróć tutaj.
Krok 1: Włącz wbudowane zmienne kliknięć
Wejdź w Zmienne > Zmienne wbudowane > Konfiguruj i zaznacz wszystko w sekcji Kliknięcia: Click Element, Click Classes, Click ID, Click Target, Click URL, Click Text. W nowym kontenerze są domyślnie wyłączone. Jeśli to pominiesz, w liście warunków reguły nie zobaczysz nawet Click URL.
Krok 2: Utwórz zmienną z nazwą hosta klikniętego linku
Click URL daje Ci pełny href. Do logiki linków wychodzących potrzebujesz samej nazwy hosta.
Zmienne > Zmienne zdefiniowane przez użytkownika > Nowa > URL. Ustaw Typ komponentu na Nazwa hosta, zaznacz Usuń "www.", a w Więcej ustawień zmień Źródło URL z Page URL na {{Click URL}}. Nazwij ją URL - Click Hostname.
Ta jedna zmienna chroni Cię przed kruchymi warunkami w stylu "Click URL nie zawiera mojastrona.pl", które sypią się w dniu, w którym ktoś podlinkuje mojastrona.pl.podejrzany-redirect.net. Porównanie nazwy hosta jest dokładne, porównanie fragmentu tekstu nie jest.
Krok 3: Zbuduj regułę
Reguły > Nowa > Konfiguracja reguły > Kliknięcie - Tylko linki. Zobaczysz dwa pola wyboru:
- Czekaj na tagi (Wait for Tags): GTM wstrzymuje przejście, dopóki tagi się nie uruchomią albo nie minie limit czasu. Domyślnie maksymalnie 2000 milisekund. Ma znaczenie tylko dla linków otwieranych w tej samej karcie.
- Sprawdź poprawność (Check Validation): reguła uruchamia się tylko wtedy, gdy kliknięcie jest "prawidłowym działaniem", czyli nic innego na stronie nie anulowało domyślnego zachowania linku. Zostaw to odznaczone, jeśli strona używa routerów JavaScript albo
preventDefault()na linkach, bo inaczej reguła nigdy się nie uruchomi.
Jeśli zaznaczysz którekolwiek, GTM zapyta, kiedy włączyć tę regułę. Ustaw Page URL pasuje do wyrażenia regularnego .*, chyba że chcesz ją ograniczyć.
Potem Ta reguła uruchamia się przy: Niektóre kliknięcia linków, z warunkami. Trzy reguły, których używam prawie na każdej stronie:
- Wychodzące:
URL - Click Hostnamenie pasuje do wyrażenia regularnego(^|\.)example\.com$ORAZ Click URL zaczyna się odhttp - Telefon: Click URL zaczyna się od
tel: - E-mail: Click URL zaczyna się od
mailto:
Krok 4: Utwórz tag zdarzenia GA4
Tagi > Nowy > Konfiguracja tagu > Google Analytics > Google Analytics: zdarzenie GA4. Wpisz identyfikator pomiaru, a potem:
- Nazwa zdarzenia:
link_clickdla wychodzących,contact_clickdla telefonu i maila - Parametry zdarzenia:
link_url={{Click URL}}link_text={{Click Text}}link_domain={{URL - Click Hostname}}contact_method=phonealboemail(tylko w tagu kontaktowym)
Podepnij odpowiednią regułę. Jeden tag na jedną nazwę zdarzenia trzyma raporty w porządku. Wolę mieć trzy małe tagi niż jeden sprytny tag z tabelą przeglądową, której za pół roku nikt nie zrozumie.
Krok 5: Podgląd, test, publikacja
Kliknij Podgląd, otwórz stronę, kliknij link. O testowaniu więcej niżej, bo właśnie tu większość wdrożeń psuje się po cichu.
Śledzenie mailto, tel i pobrań bez bałaganu
Linki kontaktowe zasługują na osobne zdarzenie. To nie jest "ruch wychodzący", to intencja. Jeśli wrzucisz tel: do ogólnego link_click, ktoś zbuduje raport kliknięć w linki partnerskie i przypadkiem doliczy do niego 400 telefonów.
Kilka konkretów, na których ludzie się wykładają:
- Click Text przy linkach-ikonach jest pusty. Ikona słuchawki bez widocznego tekstu daje
link_text = "". Dodaj zamiast tego parametrlink_location, zbudowany z atrybutu DOM w styludata-location="header"albo z najbliższej sekcji. Zmienna Custom JavaScript czytająca{{Click Element}}.closest('[data-location]')zadziała, jeśli developerzy dodadzą atrybut. - Pobrania spoza domyślnej listy. Jeśli udostępniasz pliki kalendarza
.icsalbo grafiki.webp, które ludzie faktycznie zapisują, zbuduj regułę Tylko linki z Click URL pasującym do\.(ics|webp|json)(\?|$)i wysyłajfile_download_custom, niefile_download. - Wartości parametrów są ucinane na 100 znakach. Taki jest limit Google dla wartości parametrów zdarzeń w standardowych usługach. Długi, podpisany URL pobrania zostanie obcięty. Jeśli parametry zapytania to szum, wytnij je zmienną URL.
// Zmienna Custom JavaScript: miejsce linku z najbliższego atrybutu data
function() {
var el = {{Click Element}};
if (!el || !el.closest) return 'unknown';
var box = el.closest('[data-location]');
return box ? box.getAttribute('data-location') : 'body';
}
Jak uniknąć podwójnego liczenia z pomiarami zaawansowanymi
Marcin odpowiada za marketing u resellera SaaS w Krakowie. Jego raport w Looker Studio pokazał, że kliknięcia w linki partnerów skoczyły z około 900 do 1850 miesięcznie, z dnia na dzień, zaraz po tym, jak freelancer "dodał porządne śledzenie linków w GTM". Partnerzy byli zachwyceni. Marcin nie, bo liczba zapytań o demo nawet nie drgnęła.
Strzelały oba systemy. Pomiary zaawansowane wysyłały click z outbound = true. Nowy tag GTM wysyłał outbound_click dla tych samych linków.
Raport w Lookerze sumował obie nazwy zdarzeń, bo filtr brzmiał "nazwa zdarzenia zawiera click". Każde kliknięcie wychodzące liczyło się dwa razy.
Są dwa czyste wyjścia:
- Linki wychodzące należą do GTM. Wyłącz przełącznik Kliknięcia wychodzące w pomiarach zaawansowanych. Twój tag GTM staje się jedynym źródłem.
- Wychodzące należą do pomiarów zaawansowanych, reszta do GTM. Zostaw przełącznik, a reguły GTM ogranicz do wewnętrznych CTA,
tel:imailto:.
Powiem wprost: opcja 1 jest prawie zawsze lepsza. Kontrolujesz parametry, możesz dodać link_location i widzisz logikę w historii wersji kontenera. Przełącznik na ekranie administracji GA4 nie daje Ci nic z tych rzeczy.
I nigdy nie nazywaj zdarzenia z GTM click. Zasady nazewnictwa zdarzeń Google wymieniają click, file_download, scroll, video_start i video_progress jako nazwy zarezerwowane dla stron internetowych. Nawet jeśli trafienie przejdzie, mieszasz dwa źródła w jednej nazwie zdarzenia i nigdy ich w raportach nie rozplączesz.
Testowanie w trybie podglądu i DebugView
Najpierw podgląd. Kliknij link na stronie i spójrz na lewy panel Tag Assistanta. Powinno się tam pojawić zdarzenie Link Click (w warstwie danych to gtm.linkClick). Wybierz je i sprawdź:
- Zakładka Tagi: Twój tag
GA4 - link_clickw sekcji "Tags Fired". Jeśli wisi w "Tags Not Fired", otwórz go i zobacz, który warunek reguły nie przeszedł. - Zakładka Zmienne: Click URL, Click Text i Twoja zmienna z hostem mają oczekiwane wartości. Pusty Click Text tutaj oznacza pusty parametr w GA4.
Klasyczna pułapka: linki otwierane w nowej karcie przez target="_blank" łatwo przetestować. Linki w tej samej karcie wyładowują stronę, zanim zdążysz cokolwiek zobaczyć. Klikaj z wciśniętym Ctrl albo Cmd, albo na czas testów zaznacz Czekaj na tagi.
Potem otwórz w GA4 Administracja > DebugView. Zdarzenie link_click powinno pojawić się w ciągu kilku sekund, z listą parametrów.
Jeśli jest w podglądzie, a nie ma go w DebugView, sprawdź zgody. Przy analytics_storage ustawionym na denied to, co dociera do GA4, zależy od konfiguracji Consent Mode. Mój poradnik o trybie debugowania GA4 opisuje przypadki, w których DebugView zostaje pusty bez widocznego powodu.
Rejestrowanie parametrów jako wymiarów niestandardowych
Zdarzenie pojawi się w Raporty > Zaangażowanie > Zdarzenia w ciągu 24-48 godzin. Parametry nie pojawią się, chyba że pasują do wymiaru, który GA4 już ma.
GA4 ma gotowe wymiary dla parametrów z pomiarów zaawansowanych: URL linku, Domena linku, Tekst linku, Wychodzące, Nazwa pliku, Rozszerzenie pliku. Twoje własne parametry, takie jak link_location czy contact_method, trzeba zarejestrować. Administracja > Wyświetlanie danych > Definicje niestandardowe > Utwórz wymiar niestandardowy, zakres Zdarzenie, i wpisz dokładną nazwę parametru.
Trzy zasady, których się trzymam:
- Rejestruj tylko to, po czym ktoś będzie filtrował. Standardowa usługa ma 50 wymiarów niestandardowych o zakresie zdarzenia i schodzą szybciej, niż myślisz.
- Dane pojawiają się od momentu rejestracji, nie wstecz. Rejestruj pierwszego dnia.
- Nazwy muszą się zgadzać co do znaku.
Link_Locationilink_locationto dla GA4 dwie różne rzeczy.
Pełny opis, razem z limitami dla różnych typów usług, znajdziesz w poradniku o wymiarach niestandardowych GA4. Jeśli dane o linkach mają pochodzić z samej strony, a nie ze skrobania DOM, poradnik o warstwie danych GA4 i GTM pokazuje, jak je czysto wypchnąć.
Najczęstsze pytania
Czy GA4 śledzi kliknięcia w linki automatycznie?
Tylko wychodzące, przez pomiary zaawansowane, jako zdarzenie click z outbound, link_url i link_domain. Linki wewnętrzne i CTA nie są śledzone w ogóle. Do nich potrzebujesz reguły w GTM albo własnego kodu.
Czym się różni Kliknięcie - Wszystkie elementy od Kliknięcie - Tylko linki?
Tylko linki nasłuchuje wyłącznie kliknięć w elementy <a> i zwraca href linku jako Click URL, nawet jeśli użytkownik kliknął <span> w jego środku. Wszystkie elementy uruchamia się przy każdym kliknięciu i zwraca dane dokładnie tego elementu, który kliknięto. Przy linkach Tylko linki daje czystsze dane.
Jak śledzić kliknięcia mailto i tel w GA4?
Utwórz regułę Tylko linki z Click URL zaczynającym się od mailto: albo tel:, a potem tag zdarzenia GA4 z własną nazwą, np. contact_click. Dodaj parametr contact_method i zarejestruj go jako wymiar niestandardowy, żeby oddzielić maile od telefonów.
Dlaczego tag kliknięcia w link uruchamia się dwa razy? Najczęściej linki śledzą jednocześnie pomiary zaawansowane i GTM albo dwie reguły pasują do tego samego kliknięcia. Sprawdź w podglądzie, czy przy jednym zdarzeniu Link Click nie strzelają dwa tagi, i czy przełącznik Kliknięcia wychodzące nadal jest włączony.
Czy zaznaczać Czekaj na tagi? Przy linkach w tej samej karcie, które wyprowadzają ze strony, tak, bo trafienie ma czas się wysłać, zanim strona się wyładuje. Minus to do 2 sekund opóźnienia, jeśli coś się zawiesi. Przy linkach w nowej karcie nie daje nic sensownego.
Czy mogę nazwać zdarzenie z GTM "click"?
Nie robiłbym tego. Google wymienia click jako zarezerwowaną nazwę zdarzenia dla strumieni internetowych. Użyj własnej nazwy, np. link_click, małymi literami z podkreśleniami i poniżej 40 znaków.
Co dalej
Otwórz dziś swoją usługę GA4 i sprawdź dwie rzeczy: czy przełącznik Kliknięcia wychodzące jest włączony i czy jakiś tag w GTM też śledzi linki wychodzące. Jeśli oba warunki są spełnione, liczysz podwójnie. Jeśli żadne z nich nie obejmuje tel: i mailto:, w ogóle nie widzisz kliknięć o najwyższej intencji.
Najpierw rozstrzygnij, kto jest właścicielem jakich linków. Potem zbuduj trzy reguły opisane wyżej, przetestuj je w podglądzie i zarejestruj contact_method, zanim będzie Ci potrzebny.
Jeśli wolisz, żeby ktoś przejrzał kontener i powiedział Ci dokładnie, które kliknięcia liczą się podwójnie, których brakuje i która metryka "kliknięć w telefon" jest fikcją, zrób darmowy audyt GTM. A jeśli chcesz stałych kontroli, które wyłapią moment, w którym redesign psuje Ci reguły, zobacz abonament na monitoring GTM.
Źródła i dalsza lektura - Enhanced measurement events (Pomoc Google Analytics) - Click trigger (Pomoc Menedżera tagów) - Built-in variables for web containers (Pomoc Menedżera tagów) - Event naming rules (Pomoc Google Analytics)
Nie wiesz, które kliknięcia GA4 faktycznie liczy?
Darmowy audyt GTM sprawdza reguły kliknięć, zdublowane zdarzenia i ustawienia pomiarów zaawansowanych, i mówi wprost, co liczy się podwójnie, a czego brakuje.
Zacznij darmowy audyt GTM