How to Track Form Submissions Using Google Tag Manager: 2026 Step-by-Step Guide
How to track form submissions using Google Tag Manager is one of the most valuable analytics skills you can learn. According to HubSpot research, 47% of marketers say tracking form submissions is their biggest analytics challenge. Without form tracking, you can’t measure lead generation — which means you can’t optimize it.
Form submissions are often your most important conversion events. A contact form submission, quote request, or newsletter signup is a lead — possibly a future sale. But most website forms don’t track submissions properly. GA4’s default tracking misses them. The solution? Google Tag Manager (GTM).
GTM lets you track form submissions without touching your website’s code. It works for Contact Form 7, Gravity Forms, WPForms, HubSpot forms, Typeform, custom forms — any form on your site.
In this guide, I’ll show you exactly how to track form submissions using Google Tag Manager — with 3 methods (simple to advanced) and step-by-step instructions for the most common form plugins.
External Resources (Bookmark These)
- HubSpot — Marketing Statistics
- Google — GTM Form Tracking Guide
- Analytics Mania — GTM Tutorials
- Measure School — Form Tracking Tutorial
- Neil Patel — GTM Form Tracking
- Simo Ahava — Advanced Form Tracking
- Loves Data — GTM Form Guide
- Optimize Smart — GTM Tutorial
- Google — Tag Manager Developer Guide
- Google Tag Manager — Sign In
Internal Rafirit Station Resources
- Web Analytics Services — GTM setup and tracking
- CRO Services — Form conversion optimization
- Case Studies — Lead generation results
- Full-Service Digital Marketing — Analytics integration
- Contact Rafirit Station — Free analytics audit
📊 Stop Missing Lead Data — Track Every Form Submission
Book a 60-minute analytics consultation with Rafirit Station — we’ll set up GTM form tracking for your website and ensure every lead is captured in GA4.
📊 Book Your Free Analytics Audit →
Google Tag Manager | Form Tracking | GA4 Events | Conversion Tracking | Debugging
What Is Google Tag Manager? (The Simple Explanation)
Google Tag Manager (GTM) is a free tool that lets you add and update tracking codes on your website without editing code. Instead of asking a developer every time you need to track something, you manage everything through GTM’s interface.
Without GTM (the old way):
- Need to track form submissions → email developer → wait 3 days → developer adds code → test → wait → maybe it works
With GTM (the smart way):
- Log into GTM → configure trigger and tag → publish (5 minutes) → it works immediately
GTM works by placing one container code on your website (once, by a developer). After that, you manage all tracking through GTM’s web interface.
Rafirit Station sets up GTM and form tracking for 50+ clients.
Method 1: Simple Form Tracking (GTM’s Built-in Trigger)
This method works for most standard forms (Contact Form 7, WPForms, Gravity Forms, custom HTML forms).
Step 1: Install GTM on Your Website
- Create a GTM account at tagmanager.google.com
- Create a container (name = your website name)
- Copy the two code snippets GTM provides
- Paste them into your website:
- First snippet: right after
<body>tag - Second snippet: in
<head>section
- First snippet: right after
- For WordPress: Use “Insert Headers and Footers” plugin (free) to add the code
- For Shopify: Go to Online Store → Themes → Edit code → theme.liquid → add snippets
Step 2: Create a GA4 Configuration Tag (One-time setup)
- In GTM, go to “Tags” → “New”
- Tag type: “Google Analytics: GA4 Configuration”
- Enter your GA4 Measurement ID (from GA4 → Admin → Data Streams → Your stream → Measurement ID)
- Trigger: “All Pages” (fires on every page)
- Save → Name: “GA4 Config”
Step 3: Create a Form Submission Trigger
- In GTM, go to “Triggers” → “New”
- Trigger type: “Form Submission”
- Check: “Wait for Tags” and “Check Validation” (both ON — prevents false positives)
- Enable: “This trigger fires on: All Forms” (for all forms on your site)
- Save → Name: “Form Submission Trigger”
Step 4: Create a GA4 Event Tag
- “Tags” → “New” → Tag type: “Google Analytics: GA4 Event”
- Configuration tag: Select the “GA4 Config” tag you created
- Event name: “generate_lead” (or “form_submission” or “contact”)
- Trigger: Select “Form Submission Trigger”
- Save → Name: “GA4 – Form Submission Event”
Step 5: Test and Publish
- Click “Preview” in GTM (top right)
- Enter your website URL → Click “Connect” → Your site opens in a new tab with GTM debug panel at bottom
- Fill out and submit a form on your site
- In the debug panel, you should see:
- Form Submission trigger fired (green checkmark)
- GA4 Form Submission Event tag fired
- If both fire, click “Submit” → “Publish”
Pro tip: Wait 10-30 minutes after publishing, then check GA4 → Configure → DebugView. Submit another form. You should see “generate_lead” or “form_submission” event appear in DebugView.
🔧 Forms Not Tracking? Let Us Fix It.
Let Rafirit Station set up form tracking in GTM — so you never lose another lead attribution.
Method 2: Tracking Specific Forms by ID or Class (More Accurate)
If your site has multiple forms (contact form, newsletter signup, quote request), you may want separate tracking for each. Or if GTM’s “All Forms” trigger fires too often (false positives), use this method.
Step 1: Find Your Form’s ID or Class
- Open your website in Chrome
- Right-click on the form → “Inspect” or “Inspect Element”
- Look for
<form id="contact-form" ...>or<form class="wpforms-form" ...> - Note the ID or class value (e.g., “contact-form”, “gform_1”, “wpforms-form-123”)
Step 2: Create a Conditional Form Trigger
- GTM → Triggers → New → “Form Submission”
- Select “This trigger fires on: Some Forms”
- Set conditions:
- If you have an ID:
Form ID equals contact-form - If you have a class:
Form Classes contains wpforms-form
- If you have an ID:
- Check “Wait for Tags” and “Check Validation” (both ON)
- Save
Step 3: Create Separate GA4 Events for Each Form
- Tags → New → GA4 Event
- Event name: “contact_form_submit” (for contact form)
- Select your specific form trigger
- Create separate tags for each form on your site
Pro tip: Different form types can have different event names — easier to analyze in GA4 (“newsletter_signup” vs “contact_form_submit” vs “quote_request”).
Method 3: Track Multi-Step Forms (Typeform, Gravity Forms Multi-page)
Multi-step forms (Typeform, Gravity Forms with multi-page, JotForm) don’t always trigger GTM’s standard form submission trigger because they use AJAX and never reload the page.
Option A: Use Thank You Page Tracking (Simplest)
- Set your form to redirect to a “Thank You” page after submission (most forms have this option)
- Create a GA4 event tag in GTM with trigger: “Page View” → condition: “Page URL contains /thank-you” (or your thank you page URL)
- Track that as the form submission event
Option B: Use Data Layer Push (Typeform-specific)
- In Typeform’s embed code, enable “Data Layer” events (Typeform documentation)
- Use GTM’s “Custom Event” trigger with event name “typeform-submit”
Option C: Use Element Visibility Trigger (Last Resort)
- Use GTM’s “Element Visibility” trigger to fire when a “Thank you” message appears on the same page
- Configure trigger: “ID” or “CSS selector” of the success message element
- This works when form doesn’t redirect but shows confirmation message on same page
Tracking Form Submissions for Specific CMS/Plugins
Contact Form 7 (WordPress):
CF7 works with Method 1 (standard form submission trigger) OR use the built-in “wpcf7mailsent” JavaScript event:
// Add this to your theme or via CF7's settings
document.addEventListener('wpcf7mailsent', function(event) {
window.dataLayer.push({
event: 'cf7_form_submit',
formId: event.detail.contactFormId
});
});
Gravity Forms:
Use Method 2 (trigger by form ID). Gravity Forms typically has IDs like “gform_1”, “gform_2”.
WPForms:
Use Method 2. WPForms classes include “wpforms-form” and ID includes “wpforms-form-123”.
HubSpot Forms:
Use HubSpot’s built-in tracking (HubSpot includes its own tracking code) OR Method 2 with form ID.
How to Verify Form Tracking Is Working (Debugging)
After setup, verify before assuming it’s working.
Method 1: GTM Preview Mode (Real-time — Best for testing)
- Click “Preview” in GTM
- Enter your website URL
- Fill out and submit your form
- Check that trigger fires (green checkmark in “Tags Fired On This Page”)
- Check that GA4 event tag fires
Method 2: GA4 DebugView (Real-time)
- In GA4 → Configure → DebugView
- Enable debug mode (install GA Debugger Chrome extension or add `?debug_mode=1` to URL)
- Submit a form
- See event appear in DebugView (0-10 second delay)
Method 3: GA4 Reports (After 24-48 hours)
- In GA4 → Reports → Engagement → Events
- Look for your form event (e.g., “generate_lead” or “form_submission”)
- Check event count (should show number of submissions)
Common Form Tracking Issues (And How to Fix Them)
Tag fires multiple times per submission</td;
Trigger fires on form load AND submit</td;
Check “Check Validation” in trigger. Add condition “Form ID does not equal (empty)”.</td;GA4 not showing events after 24 hours</td;
GA4 Configuration tag not firing</td;
Check GA4 Config tag fires on All Pages. Verify Measurement ID is correct.</td;Form submission not tracking in Preview</td;
GTM container not installed correctly</td;
Check GTM Preview says “Connected”. If not, reinstall GTM container code.</td;False positives (tag fires without submission)</td;
Form validation triggers on page load</td;
Enable “Check Validation” in trigger. Also set condition “Form ID equals [your form ID]”.</td;
| Issue | Likely Cause | Solution |
|---|---|---|
| Form submits but tag doesn’t fire in Preview</td; | Form uses AJAX, no page reload</td; | Use Method 2 with specific form ID, or Method 3 (thank you page)</td; |
Form Tracking Checklist
GA4 Configuration tag created (fires on All Pages)</td;
☐</td;Form Submission trigger created (All Forms or specific form ID)</td;
☐</td;GA4 Event tag created (event name: “generate_lead” or “form_submission”)</td;
☐</td;Test in Preview mode — trigger fires, tag fires</td;
☐</td;Check GA4 DebugView — event appears</td;
☐</td;Publish container</td;
☐</td;Mark as conversion in GA4 (Admin → Conversions → Mark as conversion)</td;
☐</td;Wait 24-48 hours — verify event appears in GA4 reports</td;
☐</td;
| Task | Status |
|---|---|
| GTM container installed on website (verify with Tag Assistant)</td; | ☐</td; |
Real Example: How a Dhaka Agency Recovered 45 Missing Form Submissions Per Month Using GTM
Client: Dhaka-based digital agency. Monthly form submissions: 50-60 (as reported by Contact Form 7). But GA4 showed only 12-15 “generate_lead” events. 75% attribution gap.
Problem identified:
- GA4’s built-in enhanced measurement wasn’t tracking form submissions reliably
- AJAX form submissions (no page reload) weren’t captured
- Client couldn’t measure which traffic channels drove leads → couldn’t optimize ad spend
Solution implemented:
- Set up GTM container on WordPress site (10 minutes)
- Created Form Submission trigger (All Forms with validation enabled)
- Created GA4 Event tag for “generate_lead”
- Tested with Preview mode — all forms fired correctly
- Published container
Results after 30 days:
- GA4 “generate_lead” events increased from 15 → 58 (+287%)
- Match with CF7 submission count: 58 vs 62 (94% accuracy, up from 24%)
- Discovery: LinkedIn drove 40% of leads (previously attributed only 10% due to missing data)
- Reallocated ৳50,000/month ad spend based on accurate lead source data
- Lead volume increased 35% with same budget (better channel mix)
- Setup time: 2 hours (one-time)
- Cost: ৳0 (GTM is free)
Key takeaway: Without proper form tracking, you’re making marketing decisions with incomplete data. This agency was under-optimizing for 75% of their leads — and losing money as a result. GTM form tracking fixed the gap and helped them reallocate budget to better-performing channels. See more analytics success stories.
Frequently Asked Questions
Do I need Google Tag Manager to track form submissions?
No — you could hard-code GA4 events into your form’s success page. But GTM is much easier, doesn’t require developer changes for every form, and works for all forms on your site with one setup.
Why isn’t GA4’s built-in form tracking enough?
GA4’s Enhanced Measurement includes form tracking, but it’s unreliable (misses AJAX forms, multi-step forms, forms without page reload). GTM is more accurate and gives you more control.
What’s a “thank you” page and why is it helpful for tracking?
A thank you page is shown after form submission (e.g., yoursite.com/thank-you). Tracking is simple: create a “Page View” trigger for “Page URL contains /thank-you”. This works for all forms, regardless of how they submit.
How do I track form submissions in GA4 as conversions?
After events appear in GA4, go to Admin → Conversions → New conversion event → Enter “generate_lead” (or your event name) → Mark as conversion. Now GA4 will count them as conversions.
Can Rafirit Station set up form tracking for my website?
Yes — Rafirit Station’s analytics team sets up GTM, form tracking events, and GA4 conversion tracking — including testing and verification for all forms on your site.
The Bottom Line
Form submissions are your most important conversion events. Without proper tracking, you’re making marketing decisions with incomplete data. Google Tag Manager gives you accurate form tracking in under an hour — without developer help.
Your next step (today):
- Create a Google Tag Manager account (5 minutes)
- Install GTM container on your website (10 minutes — use plugin if WordPress)
- Create GA4 Configuration tag (5 minutes)
- Create Form Submission trigger and GA4 Event tag (10 minutes)
- Test by submitting a form in Preview mode (5 minutes)
- Publish container (2 minutes)
One hour of setup today = accurate lead attribution forever.
👉 Professional GTM & GA4 Setup →
👉 Form Conversion Optimization →
👉 See Analytics Results →
👉 Data-Driven Marketing →
👉 📊 Book Your Free Analytics Audit on Calendly →
Want a free GTM Form Tracking Setup Checklist + Debugging Guide? Drop “GTM FORMS” in the comments — I’ll send you a step-by-step setup guide with screenshots, common form ID/class examples, and a debugging checklist for 5 common form types (CF7, Gravity Forms, WPForms, HubSpot, Typeform).
💬 Leave a Comment
Your email will not be published. Fields marked * are required.