Common reasons form-submission tracking doesn’t fire
- GTM container not published - You imported the container but didn’t click Submit → Publish.
- GTM snippet not installed on your site - The GTM code needs to be in your site’s <head> and <body>.
- Form submits via AJAX (no page reload) - A Form Submission trigger in GTM only fires on native HTML form submissions that cause navigation. AJAX forms need a custom event or DOM listener.
- Form plugin intercepts the native submit - Many WordPress and Shopify form plugins call
event.preventDefault(), which stops the native form submit event from reaching GTM. - Confirmation popup instead of redirect - If the form shows a success message inline without navigating, a Page View trigger on a thank-you URL won’t fire.
- Multiple forms on the same page - Your trigger may fire on the wrong form. Use the Form ID or Form Classes variable in your trigger to target the correct form.
- Shopify forms may use Fetch API - Shopify themes often submit forms (contact, newsletter) via the Fetch API. GTM’s native Form Submission trigger won’t detect these.
Step-by-step debugging checklist
- Verify GTM is installed - Visit your site, right-click → View Page Source, search for “GTM-”. If you don’t see it, GTM isn’t installed.
- Check GTM Preview mode - In GTM, click Preview. Navigate your site and trigger the event. Look for your tag in the Tags Fired section.
- Check the trigger - If the tag shows as “Not Fired”, click on it to see which trigger conditions aren’t met.
- Check if the form is AJAX-based - Submit the form and watch the browser address bar. If the URL doesn’t change and no full page reload happens, it’s AJAX. You’ll need a Custom Event or DOM listener trigger instead.
- Look for plugin-specific JavaScript events - Many form plugins dispatch custom DOM events on success (e.g., CF7 dispatches
wpcf7mailsent). Use a Custom Event trigger matched to that event name.
Shopify-specific issues
Shopify contact forms and newsletter signup forms typically submit via the Fetch API in modern themes. The native Form Submission trigger in GTM will not detect these submissions. Instead, intercept the Fetch request to /contact or listen for the theme’s success callback.
Third-party apps like Klaviyo, Privy, or JustUno inject their own forms that run inside iframes or shadow DOM. GTM on the parent page cannot see events inside these. Check the app’s documentation for JavaScript hooks or API callbacks.
How to verify it’s working
- Open GTM Preview/Debug mode
- Navigate to your site
- Trigger the event (submit the form)
- Check the GTM debug panel - your tag should appear under “Tags Fired”
- Check GA4 DebugView (GA4 → Admin → DebugView) to confirm the event arrived
Still didn’t work?
Our team can help. Describe what’s happening and we’ll get back to you within 24 hours.