Pomiar formularzy w GA4: jak liczone są form_start i form_submit i czego nie pokazuje ich stosunek

Spis treści
Poradnik Google o pozyskiwaniu leadów wymienia cztery punkty pomiaru dla formularza na stronie: ile osób trafia na witrynę, ile dociera do formularza, ile zaczyna go wypełniać i ile go wysyła. Trzy z czterech opierają się na zdarzeniach, które Google Analytics zbiera bez jednej linijki dodatkowego kodu, a poradnik zaleca zestawienie dwóch ostatnich, żeby znaleźć słabe miejsca formularza.
Właśnie to zestawienie zasługuje na drugie spojrzenie. Dokumentacja pomiaru rozszerzonego definiuje oba zdarzenia w jednym zdaniu każde. form_start odpala przy pierwszym kontakcie z formularzem w obrębie sesji. form_submit odpala przy wysłaniu formularza. Jedno z nich ma górny limit na sesję, drugie nie ma go wcale.

Skąd biorą się cztery liczby
Pierwsze dwa punkty pomiaru opierają się na page_view. To zdarzenie zbierane jest automatycznie dla każdego strumienia danych z sieci i jest jedyną opcją pomiaru rozszerzonego, której nie da się wyłączyć. Wizyty na witrynie i odsłony strony z formularzem to dwa odczyty tego samego zdarzenia, rozdzielone ścieżką strony.
Dwa ostatnie pochodzą z opcji Interakcje z formularzem w pomiarze rozszerzonym, ustawianej dla każdego strumienia w sekcji Administracja, dalej Zbieranie i modyfikowanie danych, dalej Strumienie danych. Przełączenie wymaga co najmniej uprawnień Edytującego na zasobie. Oba zdarzenia odczytują sam element formularza: form_id z jego atrybutu id, form_name z atrybutu name, form_destination z adresu, pod który formularz wysyła dane. Przy form_submit dochodzi jeszcze form_submit_text, czyli napis na przycisku.
Jedno rozpoczęcie na sesję, jedno wysłanie na każdą wysyłkę
Nierównowaga staje się widoczna, gdy dwie sesje zostaną rozpisane obok siebie.
Sesja 1
formularz kontaktowy, pierwszy klawisz . form_start 1
wyslane, walidacja odrzuca ............ form_submit 1
poprawione, wyslane ponownie .......... form_submit 2
pole newslettera w stopce ............. form_submit 3
brak drugiego form_start: limit jest juz zuzyty
Sesja 2
formularz kontaktowy, pierwszy klawisz . form_start 1
wyjscie bez wyslania .................. form_submit 0
Sumy form_start 2 form_submit 3
form_submit / form_start = 150 %
wizyty z ukonczeniem = 1 z 2 = 50 %Licznik liczy wysłania. Mianownik liczy sesje, w których dotknięto jakiegokolwiek formularza. To różne jednostki, więc iloraz zestawia dwie nieprzystające wielkości i potrafi przekroczyć sto procent, choć nic nie jest zepsute. Każda druga próba po błędzie walidacji go podnosi, a każdy drugi formularz na tej samej stronie również.
Wskaźnik ukończenia potrzebuje mianownika w jednostce licznika. Najbliższa uczciwa wersja to sesje z co najmniej jednym form_submit wobec sesji z form_start. Obie są wtedy liczone tak samo, a wynik zachowuje się przewidywalnie.
Cztery parametry, a raportu wciąż brak
Zdarzenia te przesyłają cztery parametry, ale nie oznacza to, że od razu można analizować liczby osobno dla każdego formularza. Według dokumentacji parametry są dostępne w raportach dopiero po utworzeniu wymiaru niestandardowego dla każdego z nich.
Do tego czasu pole newslettera w stopce, formularz kontaktowy i formularz prośby o demo lądują w tej samej nierozdzielonej liczbie. Na witrynie, gdzie formularz ze stopki stoi na każdej podstronie, liczbą tą rządzi akurat ten formularz, którego nikt nie zamierzał mierzyć, a proporcja z góry oddala się od czegokolwiek przydatnego.
Utworzenie wymiarów zajmuje kilka minut w Administracji w sekcji Definicje niestandardowe, a dokumentacja przewiduje 24 do 48 godzin oczekiwania, zanim dane dadzą się raportować. Warto zbudować to przed chwilą, w której pomiar będzie potrzebny, a nie w dniu pierwszej analizy.

Czego form_submit naprawdę jest świadkiem
Zdarzenie odpala w przeglądarce, w chwili wysłania. Wszystko, co rozstrzyga o powstaniu leada, dzieje się później: walidacja po stronie serwera, filtr antyspamowy, wiadomość potwierdzająca przy podwójnym opt-in, porównanie z istniejącymi rekordami w CRM. Nic z tego nie jest widoczne dla tagu.
form_submit liczy więc próby, a cel nazwany w samym poradniku, czyli osoba zainteresowana i możliwa do skontaktowania, leży o krok dalej. Krok jest krótki i dokładnie tam siedzą straty. Wysyłka odrzucona przez serwer wygląda w Analytics identycznie jak ta, z której powstał kontrakt.
Cztery liczby, które do siebie pasują
Lejek trzyma się kupy, gdy przez wszystkie stopnie przebiega jedna jednostka, a sesje są tu jednostką wygodną, bo zdarzenia formularza i tak tak właśnie działają.
sesje z odsloną strony formularza page_view, rozdzielone sciezka strony
sesje z form_start pomiar rozszerzony
sesje z form_submit pomiar rozszerzony
sesje z potwierdzeniem page_view na stronie podziekowania
albo zdarzenie od serwera, gdy juz
przyjal wpisOstatnią linię trzeba zbudować, pierwsze trzy przychodzą same. Między trzecią a czwartą siedzi różnica między próbą a leadem, a te dwie liczby obok siebie mówią o formularzu więcej niż proporcja proponowana w poradniku.
Pytania i odpowiedzi
Dlaczego niektóre formularze pozostają niewidoczne dla pomiaru rozszerzonego?
Oba zdarzenia odczytują sam element formularza. Formularz osadzony w ramce iframe z innej domeny znajduje się w osobnym dokumencie, do którego tag strony nie ma dostępu. Przy polach bez obejmującego je elementu <form> brakuje elementu potrzebnego do pomiaru. Takie formularze wymagają własnego zdarzenia, na przykład przez dostawcę formularza albo przez Tag Managera.
Jak w praktyce policzyć stosunek sesji z form_submit do sesji z form_start?
W jednym z dwóch miejsc, zależnie od tego, gdzie dane są analizowane:
- W eksploracji, za pomocą dwóch segmentów sesji, jednego z warunkiem nazwa zdarzenia równa form_start i drugiego z form_submit, oraz wskaźnika Sesje. Segment sesji obejmuje każdą sesję, w której zdarzenie wystąpiło co najmniej raz, niezależnie od liczby powtórzeń; trzy wysłania w jednej sesji liczą się tam jako jedno.
- W eksporcie do BigQuery, przez zliczanie identyfikatorów sesji. Sesja to tam połączenie user_pseudo_id i parametru zdarzenia ga_session_id;
COUNT(DISTINCT …)po tym połączeniu, raz dla form_start i raz dla form_submit, daje licznik i mianownik w tej samej jednostce.
Oba sposoby pozostają nieostre, dopóki formularze nie są rozdzielone. Dopiero gdy dla form_id powstanie wymiar niestandardowy, warunek segmentu da się zawęzić do jednego formularza; w eksporcie parametr leży natomiast w event_params także bez rejestracji. Dla przykładu z artykułu oba sposoby dają 1 z 2, czyli 50 %, zamiast 150 % z ilorazu zdarzeń.