Lesson 16 of 17
Form Start & Submit
① Connect your GTM container
Paste your container ID to load it into this page. It only ever runs here.
Advanced: use a specific environment
Counting form submissions tells you who finished, but not how many started and gave up. A form that 500 people begin and 50 complete has a problem you would never spot from the 50 alone. To see abandonment you need both ends of the funnel.
So the page fires two events, mirroring GA4 Enhanced Measurement: form_start on the first field interaction and form_submit on submit. You build a Custom Event trigger for each, and form_start ÷ form_submit gives you a completion rate.
Goal
Fire a tag on both form_start (first interaction) and form_submit to measure abandonment.
Build it in GTM
Know what the page pushes
The first time a field is focused the page pushesdataLayer.push({ event: "form_start" }), and on submit it pushesdataLayer.push({ event: "form_submit" }). GTM sees both event names.Create the form_start trigger
Go to Triggers → New → Custom Event and set Event name toform_start, matching the pushed string exactly.Create the form_submit trigger
Add a second Custom Event trigger with Event nameform_submit. Two events means two triggers.Fire a tag on each
Add both triggers to your tag's firing triggers (or use two tags). On a real site these are GA4 Event tags,form_startandgenerate_lead; here a Custom HTML tag namedCustom HTML - Testcontaining<script></script>stands in for either.
Debug in Tag Assistant
Copy this lesson's live URL and paste it into GTM Preview, that is the page Tag Assistant connects to. It has the clickable elements, so this page stays clean for reading.
- In your GTM, click Preview.
- Paste the live URL above and click Connect.
- Interact with the live page and watch your tag fire in Tag Assistant.
What you should expect to see
form_start event appears in Tag Assistant; submit and a form_submit event follows. Your tag shows under Tags Fired for each, so you can compare the two counts.Verify your container
Built it? Export your container, Admin → Export Container, choose your workspace, then drop the JSON here to check it against this lesson.
Drop your container .json here
or browse · checked in your browser, nothing is uploaded