
October 5, 2020
Why is there a Form Submit event on every page view?
Updated: October 5th, 2020
Here’s a situation. You enable a Preview and Debug mode in GTM, refresh the page and when the page loads, you see Form Submit (gtm.formSubmit) event on the left side of the Preview console. But the form on that page was not submitted! Or, maybe even worse, there is no form on that page at all!
Why is this happening? What is causing this? Spoiler alert: it’s Facebook Pixel.
In this quick blog post, I’ll explain what is happening and what you should do next (or shouldn’t?).

A quick context
This does not happen on all projects but some of you have definitely seen it. Right during the page loading process (before the appearance of the Window Loaded event), there is a Form Submit event.
Even if that page does not contain any form, you might still see this event. And there are two prerequisites for this to appear:
- You have Facebook Pixel implemented on a page
- You have at least one built-in GTM Form Submission trigger enabled on a page.
If both of these “requirements” are met, you’ll see false Form Submit events. I call them false because they not related to actual forms that are a part of your website.
Why does this happen?
That’s just the way how Facebook Pixel sends now the data over to Facebook’s servers, via a form submission. According to Simo Ahava’s comment in GTM Community on Facebook, Facebook uses a form submission for the pixel simply because it’s the most cross-browser-safe to send data to another domain. It basically creates a form with the data, then submits the form, and finally deletes the form.
So it doesn’t matter whether you have a form on a page, or you don’t. Facebook Pixel will do that anyway, as long as it is implemented on your page.
Form Submission trigger just displays those submissions in the Preview and Debug console because that’s its purpose, to display Form Submission Events.
You can distinguish a normal/usual form submission from the Facebook Pixel one by looking at the Data Layer.
FB Pixel’s form submission can be identified by two parameters:
- gtm.elementTarget (which can be used in GTM as a Form Target). Its value starts with fb and then is followed by some numbers.
- gtm.elementUrl (which can be used in GTM as a Form URL). Its value is https://www.facebook.com/tr/.
So what can you do about that false Form Submit event?
Honestly, not much. That’s just how the FB Pixel works now. You will continue seeing that event in your preview and debug mode as long as you have at least one Form Submission trigger enabled on a page. But just to make sure that your trigger does not falsely fire a tag on such Form Submit, update your trigger’s conditions by adding the following line:
Form URL does not contain facebook.com/tr
Simple as that.
9 COMMENTS
thanks for posting this. seeing gtm.formSubmit on every page was driving me nuts.
Hi Julius,
This seems like an easy fix, however even after following your instructions the gtm.formSubmit is still showing up for every page load. Why wouldn't the trigger listen to the 'does not contain facebook.com/tr' condition?
You will continue seeing the event. But your tags will not fire then if all your form submission triggers exclude facebook's domain.
Understood - thanks!
Thanks so much man! I was looking all around the internet for a explanation about this and it was driving me crazy trying to understand what the heck was happening. Good and helpful post!
Hey Julius,
As we know facebook fires a default form submission trigger with click url "Facebook.com/tr/"
so in all form submission, we have excluded when the click URL is "Facebook.com/tr/". Recently in normal legit form submission also have this "Facebook.com/tr" URL and so this legit conversion are not attributed.
Do you know how we can avoid this situation?
I have the same question. Did you ever figure this out?
I have the FB pixel installed and and excluding facebook.com/tr on my triggers so it blocks the initial form submission while page is loading, but it is still blocking legit form submissions because the form URL contains facebook.com/tr
This was really helpful and fixed my issue. Just wanted to say thanks.
Excellent article! Thanks a lot, Julius!