Every Suivo lead measured again, in every platform
After an update of the form plugin, no lead conversions reached GA4, Google Ads, Meta or LinkedIn anymore. The forms kept working, only the measurement went quiet. We found the causes and built a setup that survives the next update.
- Client
- Suivo
- Sector
- Fleet & workforce tech
- Role
- Tracking analysis, GTM & GA4
- Result
- Leads measured again
Every lead conversion depended on one data layer event. When a form update stopped that event, all ad platforms stopped measuring at once, without any error.
A root cause analysis in Google Tag Manager, a new form listener with safety nets, GA4 sent directly to Google and a clear consent route.
Contact, newsletter and e-book requests are measured again in GA4, Google Ads, Meta and LinkedIn, each with its own event.
Measurement that stops without anyone noticing
Suivo measures its leads through Gravity Forms forms on a WordPress site. Every request should land in GA4, Google Ads, Meta and LinkedIn, so each platform knows which campaign produced a lead. After a Gravity Forms update, the way forms are submitted changed. The old listener caught nothing anymore, the contact_form event no longer fired, and GA4 generate_lead, Meta Lead, Google Ads and LinkedIn all stopped at the same time.
The analysis surfaced two more weaknesses stacked on top. Google Tag Manager was loaded by the cookie plugin instead of the theme: changing the plugin meant losing all tracking, and consent worked all or nothing. GA4 also loaded twice, through the plugin and through GTM, with a risk of double page views. On top of that, GA4 ran through a server-side container the team had no access to, which blocked any investigation.
The tracking architecture, step by step
Root cause analysis in GTM Preview
We followed a real form submission through GTM Preview, GA4 DebugView and the network panel, and documented each cause separately. That made clear the problem was not in the tags, but in the event that fed them all.
One robust form listener
A central listener pushes the right event per form to the data layer: contact, newsletter or e-book, plus a generic form_submit. Every form is mapped deliberately; the job application form does not count as a marketing lead.
Three safety nets instead of one
The listener listens to the official Gravity Forms confirmation event, with a fallback that detects the confirmation message in the page and a fallback for forms that reload the page. A guard ensures one submission stays one event.
Data for enhanced conversions
The email address and form fields are read at the moment of submission, before the form clears them, and travel with the event. That lets Google Ads and GA4 use enhanced conversions.
GA4 straight to Google
The reference to the inaccessible server-side container was removed. GA4 sends client-side to Google again, with page views on and redundant temporary tags, triggers and variables cleaned up.
One loading route and a consent plan
GA4 and the pixels now load through GTM only, and the GA4 integration in the cookie plugin is switched off. As the durable next step we laid out the route to GTM in the theme with Consent Mode v2, so consent is respected per category.
The choices behind the setup
An event in the data layer is the standard way to fire tags in Google Tag Manager: tags whose trigger conditions are met fire as soon as the event arrives. That design is strong, but it turns that single event into a single point of failure. So we invested in the listener, not in more tags.
Gravity Forms documents its own JavaScript event that fires when the confirmation of an AJAX form is displayed. Listening to that official event is more stable than relying on the structure of the page, and the two fallbacks cover the cases where the event does not come.
Enhanced conversions send first-party data such as an email address, hashed with SHA256, along with the conversion. That is why the listener captures that data at the moment of submission.
Server-side tagging has real benefits, but only if you own and monitor the container. A container nobody can access is a blind spot. Measuring client-side directly gave Suivo control back; server-side remains an option for later, as we explain in server-side tracking for Google Ads.
Consent belongs in the tags themselves, not in whether GTM loads at all. With consent mode you set a default state and update it as soon as the visitor chooses, for ad_storage, analytics_storage, ad_user_data and ad_personalization.
From measuring on hope to measuring by design
Numbers you can steer on again
GA4, Google Ads, Meta and LinkedIn receive every lead again
contact, newsletter and e-book as separate events
three safety nets, one submission is one event
The generic form_submit event also feeds the attribution tool and Microsoft Ads. And because the test procedure is documented (GTM Preview, GA4 DebugView, network panel), the team spots the next break in one test round instead of after weeks of empty reports. Measuring forms without a thank-you page? Here is how: form conversions without a thank-you page.
What marketers ask us about this setup
How can lead tracking stop without anyone noticing? +
There is no error message. The forms keep working, only the event that feeds the tags stops firing. If every platform hangs on that one event, they all stop at once.
Can a form plugin update break your conversion tracking? +
Yes. If the submission method changes, a listener that relies on the page structure catches nothing anymore. Listen to the plugin’s official confirmation event and build in fallbacks.
Is it a problem if your cookie plugin loads Google Tag Manager? +
It is fragile: switch the plugin off and you lose all tracking, and consent works all or nothing. Install GTM separately and handle consent per category with Consent Mode v2.
What happens if GA4 loads twice? +
You risk double page views and inflated numbers. Let one system load GA4 and the pixels, preferably Google Tag Manager.
How do you test whether a lead conversion works again? +
In GTM Preview: accept cookies, submit the form and check that the lead event fires, followed by the GA4, Google Ads, Meta and LinkedIn tags. Then confirm in GA4 DebugView that generate_lead arrives with the user data.
Get started on your own tracking
Suivo: the lead generation system behind more and better leads
Are all your leads still reaching your ad platforms?
We test your forms from submission to conversion in GA4, Google Ads, Meta and LinkedIn, and show where the chain breaks. Contact Tanguy.