{"id":14139,"date":"2026-09-03T14:20:00","date_gmt":"2026-09-03T12:20:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=14139"},"modified":"2026-10-09T22:56:24","modified_gmt":"2026-10-09T20:56:24","slug":"ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/","title":{"rendered":"GA4 Form Tracking: How form_start and form_submit Are Counted and What Their Ratio Does Not Show"},"content":{"rendered":"<p>Google&#8217;s tutorial on generating leads sets out four measuring points for a form on a website: how many people arrive at the site, how many reach the form, how many begin filling it in, and how many submit it. Three of the four rest on events that Google Analytics collects without a line of extra code, and the tutorial recommends holding the last two against each other to find weaknesses in the form.<\/p>\n<p>That comparison deserves a second look. The enhanced-measurement reference defines the two events in one line each. <code>form_start<\/code> fires the first time a user interacts with a form <em>in a session<\/em>. <code>form_submit<\/code> fires when a form is submitted. One of the two carries a per-session cap, the other does not.<\/p>\n<figure class=\"lw-diagram\">\n<img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/formularzaehlung-en.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"Two session lanes marked with form events: the upper lane holds one form_start pill followed by three form_submit pills, the lower lane a single form_start with nothing after it, beside a totals panel showing two starts against three submits\"><figcaption>Two sessions, two starts, three submits. The quotient the tutorial suggests comes out at 150 percent, while the share of visitors who finished is 50 percent.<\/figcaption><\/figure>\n<h2>Where the four numbers come from<\/h2>\n<p>The first two measuring points both rest on <code>page_view<\/code>. That event is collected automatically for every web data stream, and it is the one enhanced-measurement option that cannot be switched off. Visits to the site and views of the page carrying the form are two readings of the same event, separated by the page location.<\/p>\n<p>The last two come from the Form interactions option in enhanced measurement, set per data stream under Admin, then Data collection and modification, then Data streams. Changing the switch requires Editor rights or above on the property. Both events read the form element itself: <code>form_id<\/code> from its id attribute, <code>form_name<\/code> from its name attribute, <code>form_destination<\/code> from the address the form posts to. <code>form_submit<\/code> adds one more, <code>form_submit_text<\/code>, the label printed on the button.<\/p>\n<h2>One start per session, one submit per submission<\/h2>\n<p>The asymmetry becomes visible as soon as two sessions are written out side by side.<\/p>\n\n\n<figure style=\"--cbb-digits:2\" class=\"cbb cbb--wrap cbb--numbers wp-block-code-beautifier-block-code\" data-lang=\"plain\"><figcaption class=\"cbb-head\"><span class=\"cbb-lang\">Text<\/span><span class=\"cbb-actions\"><button type=\"button\" class=\"cbb-button cbb-button--wrap\" data-cbb-action=\"wrap\" aria-pressed=\"true\" title=\"Wrap long lines\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M2 4h12M2 8h9.5a2.5 2.5 0 0 1 0 5H8m0 0 1.5-1.5M8 13l1.5 1.5M2 12h3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"cbb-sr\">Wrap long lines<\/span><\/button><button type=\"button\" class=\"cbb-button cbb-button--copy\" data-cbb-action=\"copy\" data-cbb-done=\"Copied\" data-cbb-failed=\"Press Ctrl+C to copy\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><rect x=\"5.5\" y=\"5.5\" width=\"8\" height=\"8.5\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M10.5 3.5V3A1.5 1.5 0 0 0 9 1.5H4A1.5 1.5 0 0 0 2.5 3v6.5A1.5 1.5 0 0 0 4 11h.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/svg><span class=\"cbb-button-label\" aria-live=\"polite\">Copy<\/span><\/button><\/span><\/figcaption><pre class=\"cbb-pre\" tabindex=\"0\"><code class=\"cbb-code language-plain\" style=\"counter-reset:cbb-line 0;\"><span class=\"cbb-line\">Session 1\n<\/span><span class=\"cbb-line\">  contact form, first keystroke ....... form_start    1\n<\/span><span class=\"cbb-line\">  sent, rejected by validation ........ form_submit   1\n<\/span><span class=\"cbb-line\">  corrected, sent again ............... form_submit   2\n<\/span><span class=\"cbb-line\">  newsletter box in the footer ........ form_submit   3\n<\/span><span class=\"cbb-line\">      no second form_start here: the cap is already spent\n<\/span><span class=\"cbb-line\">\n<\/span><span class=\"cbb-line\">Session 2\n<\/span><span class=\"cbb-line\">  contact form, first keystroke ....... form_start    1\n<\/span><span class=\"cbb-line\">  leaves without sending .............. form_submit   0\n<\/span><span class=\"cbb-line\">\n<\/span><span class=\"cbb-line\">Totals   form_start  2        form_submit  3\n<\/span><span class=\"cbb-line\">         form_submit \/ form_start  = 150 %\n<\/span><span class=\"cbb-line\">         visitors who finished     = 1 of 2 = 50 %<\/span><\/code><\/pre><\/figure>\n\n\n<p>The numerator counts submissions. The denominator counts sessions in which any form was touched. Those are different units, so the quotient compares two unlike things and can pass one hundred per cent without anything being broken. Every retry after a validation error inflates it, and so does a second form on the same page.<\/p>\n<p>A completion rate needs a denominator in the unit of the numerator. The nearest honest version is sessions containing at least one <code>form_submit<\/code> against sessions containing a <code>form_start<\/code>. Both are then counted the same way, and the result behaves.<\/p>\n<h2>Four parameters, and no report showing them yet<\/h2>\n<p>These events carry four parameters, but their presence does not mean reports can immediately show counts for each form. The reference states that each parameter becomes available in reports only after a custom dimension has been created for it.<\/p>\n<p>Until then the newsletter box in the footer, the contact form and the demo request form all land in the same undifferentiated count. On a site where the footer form sits on every page, that count is dominated by the form nobody meant to measure, and the ratio above drifts further from anything useful.<\/p>\n<p>Registering the dimensions takes a few minutes in Admin under Custom definitions, and the documentation puts a wait of 24 to 48 hours on it before the data can be reported on. Worth setting up before the measurement is needed rather than on the day the numbers are first read.<\/p>\n<figure class=\"lw-illu\">\n<img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/illustrationen\/illu-ga4-formular.webp\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"A single upright post with three arms reaching out at three different heights, each ending in a small disc\"><br \/>\n<\/figure>\n<h2>What form_submit actually witnesses<\/h2>\n<p>The event fires in the browser, at the moment the form is submitted. Everything that decides whether a lead exists happens after that: validation on the server, the spam filter, the double opt-in mail, the duplicate check against the CRM. None of it is visible to the tag.<\/p>\n<p>So <code>form_submit<\/code> counts attempts, and the goal named in the tutorial itself, a person who showed interest and can be contacted, sits one step further along. The step is short, and it is exactly where the losses are. A submission the server rejected looks identical in Analytics to one that turned into a contract.<\/p>\n<h2>Four figures that do line up<\/h2>\n<p>A funnel holds together when one unit runs through all of it, and sessions are the convenient unit here because the form events already work that way.<\/p>\n\n\n<figure style=\"--cbb-digits:1\" class=\"cbb cbb--wrap cbb--numbers wp-block-code-beautifier-block-code\" data-lang=\"plain\"><figcaption class=\"cbb-head\"><span class=\"cbb-lang\">Text<\/span><span class=\"cbb-actions\"><button type=\"button\" class=\"cbb-button cbb-button--wrap\" data-cbb-action=\"wrap\" aria-pressed=\"true\" title=\"Wrap long lines\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M2 4h12M2 8h9.5a2.5 2.5 0 0 1 0 5H8m0 0 1.5-1.5M8 13l1.5 1.5M2 12h3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"cbb-sr\">Wrap long lines<\/span><\/button><button type=\"button\" class=\"cbb-button cbb-button--copy\" data-cbb-action=\"copy\" data-cbb-done=\"Copied\" data-cbb-failed=\"Press Ctrl+C to copy\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><rect x=\"5.5\" y=\"5.5\" width=\"8\" height=\"8.5\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M10.5 3.5V3A1.5 1.5 0 0 0 9 1.5H4A1.5 1.5 0 0 0 2.5 3v6.5A1.5 1.5 0 0 0 4 11h.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/svg><span class=\"cbb-button-label\" aria-live=\"polite\">Copy<\/span><\/button><\/span><\/figcaption><pre class=\"cbb-pre\" tabindex=\"0\"><code class=\"cbb-code language-plain\" style=\"counter-reset:cbb-line 0;\"><span class=\"cbb-line\">sessions with a view of the form page   page_view, split by page location\n<\/span><span class=\"cbb-line\">sessions with form_start                enhanced measurement\n<\/span><span class=\"cbb-line\">sessions with form_submit               enhanced measurement\n<\/span><span class=\"cbb-line\">sessions with the confirmation          page_view on the thank-you page,\n<\/span><span class=\"cbb-line\">                                        or an event sent by the server\n<\/span><span class=\"cbb-line\">                                        once it has accepted the entry<\/span><\/code><\/pre><\/figure>\n\n\n<p>The last line has to be built; the first three arrive on their own. Between the third and the fourth sits the difference between attempts and leads, and those two numbers next to each other say more about a form than the ratio the tutorial proposes.<\/p>\n<div class=\"lw-faq\">\n<h2>Questions and answers<\/h2>\n<h3>Why do some forms stay invisible to enhanced measurement?<\/h3>\n<p>Because both events read the form element itself. A form embedded in an iframe from another domain sits in a separate document that the page\u2019s tag cannot look into, and input fields without an enclosing <code>&lt;form&gt;<\/code> element give the measurement nothing to attach to. Such forms need an event of their own, for instance through the form provider or through Tag Manager.<\/p>\n<h3>How can the ratio of sessions with form_submit to sessions with form_start actually be evaluated?<\/h3>\n<p>In one of two places, depending on where the data is analysed:<\/p>\n<ul>\n<li>In an exploration, using two session segments, one with the condition event name equals form_start and one with form_submit, together with the Sessions metric. A session segment takes in every session in which the event occurred at least once, however often; three submissions in one session count as one there.<\/li>\n<li>In the BigQuery export, by counting session identifiers. A session there is the combination of user_pseudo_id and the event parameter ga_session_id; <code>COUNT(DISTINCT \u2026)<\/code> over that combination, once for form_start and once for form_submit, gives numerator and denominator in the same unit.<\/li>\n<\/ul>\n<p>Both routes remain imprecise as long as the forms are not separated. Only once a custom dimension exists for form_id can the segment condition be narrowed to a single form; in the export, by contrast, the parameter sits in event_params even without being registered. For the example in the article, both routes give 1 in 2, or 50 %, instead of the 150 % from the event quotient.<\/p>\n<\/div>\n<div class=\"lw-quellen\">\n<h2>Sources<\/h2>\n<ul>\n<li><a href=\"https:\/\/developers.google.com\/analytics\/devguides\/collection\/ga4\" target=\"_blank\" rel=\"noopener noreferrer\">Google Analytics 4 developer guide<\/a><\/li>\n<li><a href=\"https:\/\/support.google.com\/analytics\/answer\/9191807\" target=\"_blank\" rel=\"noopener noreferrer\">How sessions are counted in GA4<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Google&#8217;s lead-generation tutorial recommends holding form starts against form submits. Enhanced measurement caps form_start at one per session and leaves form_submit uncapped, so that comparison is not a completion rate and can pass 100 percent with nothing wrong.<\/p>\n","protected":false},"author":1,"featured_media":15266,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[91261,91258,91252],"class_list":["post-14139","post","type-post","status-publish","format-standard","hentry","category-digital-analytics","tag-conversion-tracking","tag-google-analytics-4","tag-web-analytics"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>GA4 Form Tracking: How form_start and form_submit Are Counted and What Their Ratio Does Not Show | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Why form_submit divided by form_start is no completion rate in GA4: one event is capped at once per session, the other is not.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GA4 Form Tracking: How form_start and form_submit Are Counted and What Their Ratio Does Not Show | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Why form_submit divided by form_start is no completion rate in GA4: one event is capped at once per session, the other is not.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-03T12:20:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-09T20:56:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-14139-ga4-form-tracking-form-start-once-pe-n.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"GA4 Form Tracking: How form_start and form_submit Are Counted and What Their Ratio Does Not Show\",\"datePublished\":\"2026-09-03T12:20:00+00:00\",\"dateModified\":\"2026-10-09T20:56:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\\\/\"},\"wordCount\":1015,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-14139-ga4-form-tracking-form-start-once-pe-n.png\",\"keywords\":[\"Conversion Tracking\",\"Google Analytics 4\",\"Web Analytics\"],\"articleSection\":[\"Digital Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\\\/\",\"name\":\"GA4 Form Tracking: How form_start and form_submit Are Counted and What Their Ratio Does Not Show | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-14139-ga4-form-tracking-form-start-once-pe-n.png\",\"datePublished\":\"2026-09-03T12:20:00+00:00\",\"dateModified\":\"2026-10-09T20:56:24+00:00\",\"description\":\"Why form_submit divided by form_start is no completion rate in GA4: one event is capped at once per session, the other is not.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-14139-ga4-form-tracking-form-start-once-pe-n.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-14139-ga4-form-tracking-form-start-once-pe-n.png\",\"width\":1200,\"height\":630,\"caption\":\"GA4 Form Tracking: How form_start and form_submit Are Counted and What Their Ratio Does Not Show\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GA4 Form Tracking: How form_start and form_submit Are Counted and What Their Ratio Does Not Show\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"GA4 Form Tracking: How form_start and form_submit Are Counted and What Their Ratio Does Not Show | Lukas Wojcik","description":"Why form_submit divided by form_start is no completion rate in GA4: one event is capped at once per session, the other is not.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/","og_locale":"en_US","og_type":"article","og_title":"GA4 Form Tracking: How form_start and form_submit Are Counted and What Their Ratio Does Not Show | Lukas Wojcik","og_description":"Why form_submit divided by form_start is no completion rate in GA4: one event is capped at once per session, the other is not.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-03T12:20:00+00:00","article_modified_time":"2026-10-09T20:56:24+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-14139-ga4-form-tracking-form-start-once-pe-n.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"GA4 Form Tracking: How form_start and form_submit Are Counted and What Their Ratio Does Not Show","datePublished":"2026-09-03T12:20:00+00:00","dateModified":"2026-10-09T20:56:24+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/"},"wordCount":1015,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-14139-ga4-form-tracking-form-start-once-pe-n.png","keywords":["Conversion Tracking","Google Analytics 4","Web Analytics"],"articleSection":["Digital Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/","url":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/","name":"GA4 Form Tracking: How form_start and form_submit Are Counted and What Their Ratio Does Not Show | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-14139-ga4-form-tracking-form-start-once-pe-n.png","datePublished":"2026-09-03T12:20:00+00:00","dateModified":"2026-10-09T20:56:24+00:00","description":"Why form_submit divided by form_start is no completion rate in GA4: one event is capped at once per session, the other is not.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-14139-ga4-form-tracking-form-start-once-pe-n.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-14139-ga4-form-tracking-form-start-once-pe-n.png","width":1200,"height":630,"caption":"GA4 Form Tracking: How form_start and form_submit Are Counted and What Their Ratio Does Not Show"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-form-tracking-how-form_start-and-form_submit-are-counted-and-what-their\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"GA4 Form Tracking: How form_start and form_submit Are Counted and What Their Ratio Does Not Show"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/14139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=14139"}],"version-history":[{"count":4,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/14139\/revisions"}],"predecessor-version":[{"id":21978,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/14139\/revisions\/21978"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/15266"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=14139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=14139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=14139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}