Lesson 3 of 9
Too Many Events — Which One Do I Pick?
You did the action once and three things fired. This is the single most common mess in the wild, and it is worth understanding why it happens before you choose, because the source tells you how trustworthy each candidate is.
Where the duplicates come from
- GTM's own auto-event: a Form Submit trigger makes GTM push
gtm.formSubmitwithgtm.elementand friends attached. - A plugin or theme: the forms plugin pushes its own
form_submit(orwpcf7submit,gravityFormSubmission…) with its own field names. - A developer's custom push: someone added
formSubmittedby hand for a project two years ago. - GA4 Enhanced Measurement: may already be collecting a generic
form_submitwith no business context at all.
So "the form submit" might be four different events, each firing at a slightly different moment with a different payload. Picking blindly is how you end up sending a conversion with a blank plan name, or counting every submit twice.
The three tests for a good event
Rank your candidates against these, in order:
1. Reliable
- Fires once per real action, not zero or two
- Fires on success, not on every click of the button
- Behaves the same across the pages you care about
2. Rich
- Carries the values you need to send
- Or sits next to data you can reach
- Real values, not empty strings or 'undefined'
And the third, which decides ties: can you target it uniquely? An event is only useful if you can write a trigger that fires on this case and nothing else — covered in the next lesson.
The richest-payload heuristic
When two candidates are equally reliable, prefer the one that already carries the data. Put the payloads side by side from the console and compare:
// Candidate A — plugin's custom event
{ event: "form_submit", formId: "demo-request", plan: "pro", value: 500 }
// Candidate B — GTM's native auto-event
{ event: "gtm.formSubmit", "gtm.elementId": "demo-request", "gtm.element": <form> }A hands you plan and value directly — no extra work, nothing to scrape. B only knows the element. If both fire reliably once, A wins because it is richer. The trap is choosing B out of habit ("I always use the Form Submit trigger") and then spending an hour scraping the plan name back out of the DOM that A was handing you for free.
Key takeaway
Duplicate events are the norm. Choose the one that fires reliably once, carries the most usable data, and can be targeted uniquely. When reliability ties, the richest payload wins — don't scrape back data a sibling event already gives you.