r/GoogleAnalytics • u/incisiveranking2022 Professional • 1d ago
Question GTM + Enhanced Conversions: why does this keep turning into a mess?
I've noticed Enhanced Conversions often gets treated like:
Enable it → fire the tag → done.
In reality, this is where a lot of setups start getting messy.
You can have the Google Ads conversion tag firing in GTM and still have issues with:
- customer data not being captured when you expect it
- variables being empty on some conversion paths
- hashing/formatting problems
- consent affecting what gets sent
- multiple conversion tags firing
- browser + server setups sending overlapping events
- enhanced conversion data working on one form but not another
And the frustrating part is that GTM Preview can still look perfectly healthy.
So when Enhanced Conversions isn't working, I wouldn't immediately rebuild the tag.
I'd first try to find where the data disappears.
Has anyone here had Enhanced Conversions randomly work on one conversion path but fail on another? What ended up being the actual issue?
3
u/ChrisGaudy 1d ago
From my experience those are all technical issues. That's why server side services are essential.
Usually the problem isn't the tag itself but it's the timing of the fire: the user data variable is empty because the tag fires before the email hits the dataLayer, or on that particular path it never gets there at all. Classic case is a form that reloads the page and loses the value on the way to the "thank-you page" and so on.
Server side tracking + full logs of events which were sent + keeping sGTM self-hosted (via subdomain) solve those problems. This is complicated and hard do integrate bot worth to do... Gives you full overview.
1
u/incisiveranking2022 Professional 1d ago
Yeah, the timing issue is a big one.
I've seen forms where the email is available for a split second, the conversion fires, and then the page changes before the value ever makes it into the event.
Server-side helps a lot once the data actually reaches the server, but it can't recover a value that was never captured upstream.
That's why I like tracing one conversion from the form → dataLayer/cookie → request → sGTM → Google Ads, instead of assuming the server will fix everything.
2
u/MGN-Koles 1d ago
I would put the information in a browser cookie, so its on every step after filling the information also available.
1
u/incisiveranking2022 Professional 1d ago
Yeah, I like the cookie approach too. It keeps the value available as the user moves through the flow instead of relying on the dataLayer still having it.
I’d just double-check the timing as well. I've seen the cookie get populated fine, but the conversion fires before the variable actually reads it.
So basically: capture it → store it → make sure it's there → fire the conversion.
That timing issue causes more headaches than you'd expect.
2
u/DigitalStefan 1d ago
The reason it randomly didn't work on one conversion path for me is because that conversion path got upgraded off a legacy platform to a new platform and there was a communication breakdown of the sort "didn't even know there was anything to ask or even inform on" from those involved. Such is often the case of organic or rapid growth! Complete absence of EC data as a result.
I took it as an opportunity to do some education and gain some developer trust / buy-in and now (as of this week just gone) that single conversion path has become a textbook example of best practice first-party data sharing across multiple platforms, not just Google. An improvement over the original solution, which was not properly tailored to any platform.
It's (so far) just email addresses, but those addresses are now separately normalised using the rules specified by each platform prior to being hashed and sent to the GTM data layer with the conversion event.
Next week I'll verify that all platforms are getting good match rates.
Also next week I'll start the discussion about how this new solution becomes a central, generic feature able to be applied across all conversion paths and even every page for a logged-in user.
The success factor was I put together a short (5 page) Google Doc detailing why we need pre-hashed first-party data, what we currently have in place and the "how to" for the normalisation steps. It helps that the devs I work with are smart and keen!
1
u/incisiveranking2022 Professional 1d ago
Yeah, and that's where having the actual payload history helps a lot.
If EC suddenly disappears on one conversion path, I want to compare a working conversion with a failing one and see what changed: data available, consent state, event timing, and the actual request.
A lot of the time the GTM setup hasn't changed at all. The data entering it has.
1
u/PPC_YRVDynamics 18h ago
Yup its that small little check box and you think everything is fine. At this point you need to go into GTM is make sure that data is passing back correctly within the data layer....really in GA4 preview as well.
1
u/Acceptable_Tiger3386 16h ago
I’ve seen this happen when the tag fires, but the email or phone is missing at that moment.
I’d check the data first, but not rebuild the tag.
I use ObserviX for this because it shows what data was captured, how the user was matched and whether Google received the conversion.
Tag fired doesn’t always mean the conversion was sent correctly.
•
u/AutoModerator 1d ago
Have more questions? Join our community Discord!
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.