Cookie-based tracking keeps getting worse, and it is not going to recover. Safari and Firefox block third-party cookies outright. Consent banners remove another slice. Ad blockers take more. What is left is a partial picture that Google fills in with estimates.
Enhanced conversions are the supported way to claw some of that back, using data you already collect. For lead generation specifically, they also unlock the thing that matters far more: sending real sales outcomes back into Google Ads.
Most guides stop at "turn it on." Here is what it does, how to set it up, and the four ways it quietly fails.
What it actually does
When someone submits your form, you already capture their email address. Enhanced conversions take that email, hash it with SHA-256 in the browser so the raw value never leaves, and send the hash to Google Ads.
Google compares that hash against its own hashed records of signed-in users. When there is a match, the conversion gets attributed to the ad click that earned it, even when the cookie that would normally carry that connection is gone.
You are trading a cookie-based join for a first-party-data join. The user is identified by something they gave you directly, not by a tracker following them around.
Two versions, and they do different jobs
This trips up nearly everyone, so be sure which one you are configuring.
Enhanced conversions for web improves measurement of conversions that already happen on your site. The thank-you page fires, the conversion is recorded, and the hashed email makes the attribution more accurate.
Enhanced conversions for leads is for conversions that happen after the form, offline, in your CRM. The lead submits, the hashed email is stored against that conversion, and weeks later when the deal closes you upload that outcome back to Google Ads keyed on the same hashed email. No GCLID required.
If your sales cycle ends in a conversation rather than a checkout, the second one is the one worth your time.
Setup, in order
1. Accept the customer data terms.
In Google Ads, go to Admin, then Account settings, then find the enhanced conversions section under your conversion settings. You have to accept Google's customer data terms before any of this works. Skip this and everything else you configure sits inert.
2. Confirm your form captures an email on the page where the tag fires.
This sounds obvious and it is the most common point of failure. The tag needs to read the email at the moment it fires. If your form redirects to a thank-you page that no longer contains the email, there is nothing to hash.
Multi-step forms and single-page applications break this constantly.
3. Turn on user-provided data in your tag.
In Google Tag Manager, open your Google tag or your Google Ads conversion tag and enable "Include user-provided data from your website." Then create a User-Provided Data variable.
You have two options for that variable:
- Manual configuration: point it at your email field with a CSS selector or a dataLayer variable. More work, far more reliable.
- Automatic collection: let Google find the email field itself. Faster to set up, and it breaks the next time somebody changes your form markup.
Use manual configuration. Automatic collection is how this quietly stops working six months from now after a site redesign nobody told you about.
The hashing happens in the browser automatically. Do not hash the value yourself first, or you will send a hash of a hash and match nothing.
4. Verify it is actually recording.
Go to your conversion action in Google Ads and open the diagnostics tab. It reports the enhanced conversions status and flags problems with the data it is receiving.
Check this a few days after setup, and check it again after any website release. "I set it up in March" is not evidence that it worked in September.
5. Upload your CRM outcomes.
Once leads are being recorded with hashed identifiers, export closed deals from your CRM and upload them to Google Ads as conversions from leads, matched on the same hashed email.
This is the step that changes performance rather than just reporting. Smart Bidding stops chasing form fills and starts chasing the leads your sales team qualified.
The four ways it breaks
The email is not on the page when the tag fires. Covered above. The single most common cause. Test with a real submission and watch the network request.
Consent mode is blocking it. If your banner denies the relevant consent, the data is not sent. That is the banner working correctly. Expect reduced coverage in the EU and UK, and do not treat it as a bug to be worked around.
A site redesign moved the field. Automatic collection and brittle CSS selectors both break when the markup changes. Put a tracking check into your release process, or you will find out from a bidding collapse instead.
The terms were never accepted. Everything looks configured, nothing matches. Check step 1 first when diagnosing.
When you should not use this at all
If your form tells Google something about a person's health condition, do not send it.
A form on a page about a specific treatment, procedure, or diagnosis means the submission itself carries health information, regardless of what fields you collect. Google's own policies prohibit sending personally identifiable information tied to sensitive categories, and if you operate under HIPAA, your obligations are stricter than Google's policies and are yours to answer for.
The workable pattern in regulated categories is to break the chain deliberately: measure a generic, non-specific conversion on the site, keep identifiable outcome data inside your own systems, and give up some attribution precision on purpose. That is a real cost, and it is cheaper than a breach notification.
If you are in healthcare, legal, or financial services, have this reviewed by whoever owns compliance before you turn anything on. Not after.
Worth the effort?
For lead generation with a sales cycle longer than a day, yes, and it is not close. Recovering attribution is the small half. Teaching Google Ads the difference between a form fill and a qualified opportunity is the half that changes what you pay per real customer.
For a low-volume account with a short cycle and no CRM, the web version is a modest accuracy gain and not much more.
Not sure yours is working?
The Conversion Tracking Audit checks whether your enhanced conversions are configured, accepted, firing, and actually matching, along with the rest of your conversion setup. You get a written list of what is broken and what to fix first, in priority order.
$599, fixed fee, findings are yours either way.


