Modelowane listy odbiorców nie zawierają konkretnych osób, tylko prawdopodobieństwa. Wyjaśniam, jak powstają, gdzie ich szukać w panelu i jak czytać ich raporty.
Na większości kont, które przejmuję, formularz jest zmierzony w jednym punkcie: wysłanie. To lepsze niż nic, ale zostawia poza obrazem wszystko, co decyduje o tym, ile formularzy w ogóle powstaje.
Bo formularz nie jest zdarzeniem, a procesem. Ktoś go zauważa, ktoś zaczyna wypełniać, ktoś potyka się o pole, którego nie rozumie, ktoś dostaje komunikat o błędzie i rezygnuje. Mierząc tylko wysłanie, wiesz ilu przeszło całą drogę i nie wiesz nic o tym, gdzie tracisz pozostałych.
Google Tag Manager pozwala zmierzyć te etapy bez ingerencji w kod strony za każdym razem — i to jest jego główna zaleta w tym zadaniu. Trzeba tylko wiedzieć, którego mechanizmu użyć, bo domyślny nie zawsze działa.
Cztery zdarzenia, które w mojej praktyce dają najwięcej.
Do tego oczywiście wysłanie, ale z zastrzeżeniem: wysłanie formularza to nie to samo co potwierdzenie jego przyjęcia przez serwer. O tym rozróżnieniu będzie osobno, bo to najczęstsze źródło zawyżonych statystyk.
GTM daje kilka dróg i wybór zależy od tego, jak formularz jest zbudowany.
Wbudowany detektor przesłania formularza jest najprostszy i warto zacząć od niego. Problem polega na tym, że opiera się na standardowym zdarzeniu przeglądarki, a większość nowoczesnych formularzy — zwłaszcza wysyłanych asynchronicznie, bez przeładowania strony — tego zdarzenia nie generuje albo przerywa jego domyślne działanie. Zdarza się też, że reguła uruchamia się przy nieudanej walidacji, czyli liczy wysłania, których nie było.
Nasłuch zdarzeń w warstwie danych to rozwiązanie najlepsze i wymagające współpracy z programistą. Formularz sam ogłasza, co się stało — rozpoczęcie, błąd z nazwą pola, potwierdzone przyjęcie — a GTM tylko na to reaguje. Jeśli masz taką możliwość, wybierz ją; wszystkie pozostałe metody są obejściami.
Detektor widoczności elementu obsługuje wyświetlenie formularza i podziękowanie po wysłaniu. Prosty, niezawodny, nie wymaga zmian w kodzie.
Detektor kliknięcia na pola i na przycisk — przydatny do rozpoczęcia wypełniania i jako awaryjne przybliżenie wysłania, ale kliknięcie w przycisk to nie to samo co udane wysłanie.
Wyświetlenie strony podziękowania jest najpewniejszą metodą pomiaru realnego wysłania, o ile taka strona istnieje. Formularze pokazujące komunikat bez zmiany adresu tej możliwości nie dają.
Kolejność, która oszczędza najwięcej czasu na debugowaniu.
Włącz potrzebne zmienne wbudowane — identyfikator i klasy formularza, tekst i identyfikator klikniętego elementu, adres strony. Bez nich reguły nie mają na czym się oprzeć.
Zbuduj reguły od najpewniejszego zdarzenia. Zaczynam od strony podziękowania albo widoczności komunikatu o sukcesie, bo to zdarzenie, które chcę mieć poprawne przede wszystkim.
Nazwij zdarzenia konsekwentnie, na przykład według wzorca obszar–akcja, i trzymaj się tego schematu. Po roku pracy nazwy nadawane doraźnie zamieniają kontener w archeologię.
Przekaż kontekst w parametrach: identyfikator formularza, jego położenie na stronie, nazwę pola przy błędzie walidacji. Zdarzenie bez parametrów mówi, że coś się stało, ale nie pozwala tego naprawić.
Testuj w trybie podglądu, wypełniając formularz na kilka sposobów: poprawnie, z błędem, z porzuceniem w połowie, na telefonie. Ten etap wyłapuje większość problemów.
Liczenie kliknięcia w przycisk jako wysłania. Najczęstsza przyczyna zawyżonych statystyk konwersji. Użytkownik, który kliknął, zobaczył błąd walidacji i wyszedł, zostaje policzony jako lead. Przy trudnym formularzu różnica bywa dramatyczna.
Podwójne zdarzenia. Dwie reguły łapiące tę samą akcję — na przykład wbudowany detektor i własna reguła kliknięcia — dają dwa zdarzenia z jednego wysłania. Warto to sprawdzić w podglądzie, zanim ktoś zacznie raportować te liczby.
Brak reguły blokującej dla środowiska testowego. Formularze wypełniane przez zespół podczas testów trafiają do tych samych statystyk co ruch klientów.
Zdarzenie bez informacji, o który formularz chodzi. Przy serwisie z formularzem kontaktowym, zapisem na newsletter i zapytaniem ofertowym jedno wspólne zdarzenie „wysłanie formularza” jest praktycznie bezużyteczne.
Przesyłanie treści pól do systemu analitycznego. To błąd poważniejszy niż pozostałe, bo dotyczy danych osobowych. Do analityki trafiają nazwy pól i informacja o zdarzeniu, nigdy wpisane przez użytkownika wartości.
Wątek, który przy formularzach jest szczególnie wrażliwy i którego nie da się dopisać po wdrożeniu.
Tagi analityczne i reklamowe powinny uruchamiać się zgodnie ze stanem zgody użytkownika. GTM ma do tego wbudowaną obsługę — tag można ustawić tak, żeby czekał na odpowiednią zgodę, zamiast wystrzelić natychmiast. Warto to skonfigurować, a nie polegać wyłącznie na tym, że banner „blokuje skrypty”, bo takie blokowanie bywa nieszczelne.
Druga rzecz to zakres przesyłanych danych. Do pomiaru interakcji z formularzem nie potrzebujesz ani jednej wartości wpisanej przez użytkownika. Jeśli natomiast planujesz przekazywać dane kontaktowe do systemu reklamowego w ramach mechanizmów dopasowania konwersji, to osobny temat z własnymi wymogami — haszowanie po stronie klienta i ustalona podstawa prawna. Nie mieszam tych dwóch spraw w jednym wdrożeniu.
Na koniec praktyczna uwaga: udokumentuj, co i kiedy wysyłasz. Kontener bez opisu po roku staje się nieczytelny dla wszystkich, w tym dla osoby, która go zbudowała — a przy formularzach dokumentacja jest też odpowiedzią na pytanie, jakie dane przetwarzasz i po co.
Używamy plików cookies, aby ułatwić Ci nawigację oraz wykonywanie określonych funkcji. Szczegółowe informacje o wszystkich plikach cookies znajdziesz w każdej kategorii zgody poniżej.
Pliki cookies oznaczone jako "Niezbędne" są przechowywane w Twojej przeglądarce, ponieważ są one kluczowe dla zapewnienia podstawowych funkcji strony.
Używamy również plików cookies firm trzecich, które pomagają nam analizować, w jaki sposób korzystasz z tej strony, zapamiętują Twoje preferencje oraz dostarczają treści i reklamy odpowiednie dla Ciebie. Te pliki cookies będą przechowywane w Twojej przeglądarce tylko za Twoją uprzednią zgodą.
Możesz zdecydować, czy chcesz włączyć lub wyłączyć niektóre bądź wszystkie te pliki cookies, jednak wyłączenie niektórych z nich może wpłynąć na Twoje doświadczenia podczas przeglądania strony.
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| __cf_bm | 13 minutes | Cloudflare bot management — distinguishes humans from bots. |
| rc::* | Persistent | Google reCAPTCHA — localStorage holding anti-bot challenge state. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| wpEmojiSettingsSupports | Session | WordPress — sessionStorage flag caching whether the browser can render emoji (feature detection). |
| ytidb* | Persistent | YouTube — IndexedDB storing playback/search state for embedded videos. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| _ga_* | 400 days | Google Analytics 4 — persists session state per property. |
| _ga | 400 days | Google Analytics — distinguishes unique users via a client id. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| NID | 183 days | Google — stores preferences for personalized ads. |
| fr | 90 days | Meta — encrypted Facebook id and browser id for ads. |
| _gcl_au | 90 days | Google AdSense/Ads — experiments with advertising efficiency (conversion linker). |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| __Secure-YNID | 180 days | |
| YSC | Session | |
| __Secure-ROLLOUT_TOKEN | 180 days | |
| VISITOR_INFO1_LIVE | 180 days | |
| VISITOR_PRIVACY_METADATA | 180 days | |
| datr | 400 days | |
| sb | 400 days | |
| wd | 7 days |