Enhanced conversions in Google Ads is a feature that sends hashed first-party customer data, usually email address and phone number, along with your conversion tags so Google can match conversions to signed-in Google accounts when cookies are missing or blocked. It comes in two forms: enhanced conversions for web, which improves measurement of on-site conversions, and enhanced conversions for leads, which lets you import offline outcomes from your CRM matched on hashed email or phone instead of only a click ID.
This piece explains the difference between the two, walks through setup with Google Tag Manager or the Google tag, covers hashing and the customer data terms, shows how to read the diagnostics, and lays out how to import qualified, booked and sold outcomes, which is where the real gain for lead generation accounts sits.
What enhanced conversions are and why they exist.
Standard Google Ads conversion tracking relies on a click identifier (the GCLID and its app-era cousins) stored in a first-party cookie. When a browser limits cookies, a user clears them, switches devices, or declines consent, the conversion can still happen but the link back to the ad click is lost. Enhanced conversions add a second path: if the conversion tag includes a hashed email or phone, Google can look for a match among signed-in users who clicked or viewed an ad.
The data is hashed with SHA-256 before it leaves the browser when you use the Google tag or Tag Manager. Google matches hashes, not readable addresses. You still need a privacy policy and consent flow that cover sharing this data, and you must accept Google's customer data terms in the account before any of it is used.
Enhanced conversions for web vs for leads.
| For web | For leads | |
|---|---|---|
| What it measures | Conversions that happen on your website | Outcomes that happen after the lead, usually in a CRM |
| When data is sent | At the moment of the on-site conversion | Captured on the form, then uploaded later with the outcome |
| Match keys | Hashed email, phone, name and address from the page | Hashed email or phone, with GCLID where available |
| Typical conversion | Purchase, sign-up, form submit | Qualified lead, booked appointment, closed sale |
| Who needs it most | E-commerce and self-serve sign-ups | Lead generation with a sales process |
| Main setup work | Tag configuration | Tag configuration plus a CRM import pipeline |
For an online store, enhanced conversions for web is usually enough, because the purchase is the conversion and it happens on the site. For a service business, a law firm, a contractor or a lender, the form submit is only the start. What matters is which leads qualified, booked and bought, and that information lives in the CRM. That is the job of enhanced conversions for leads and of offline conversion tracking generally.
Step by step: setting up enhanced conversions for web.
Google moves these settings around between interface updates, so labels may differ slightly, but the sequence holds.
Hashing, normalization and what Google does for you.
When you send plain values through the Google tag or Tag Manager, Google normalizes and hashes them before transmission. If you hash yourself, which is required for API uploads and CSV imports, normalize first: trim spaces, lowercase the email, and format phone numbers in E.164 with a leading plus and country code. For Gmail addresses, Google's guidance has been to remove periods in the local part before hashing. A hash of a slightly different string is simply a different hash, and Google cannot recover the match.
Importing CRM outcomes: GCLID and enhanced conversions for leads.
Offline conversion tracking means telling Google Ads, after the fact, which clicks led to valuable outcomes. There are two ways to key those imports. GCLID imports capture the click ID from the landing page URL into a hidden form field, store it on the CRM record, and upload it later with a conversion name, time and optional value. Enhanced conversions for leads upload hashed email or phone instead, which survives cases where the GCLID was lost, and you can include the GCLID too when you have it.
Create a separate conversion action for each stage you care about, for example Qualified Lead, Booked Appointment and Closed Won, with source set to import from CRMs, files or other data sources. Upload via scheduled file upload from Google Sheets or SFTP, the Google Ads API, or a native connector if your CRM has one (HubSpot and Salesforce both do). Imports must fall inside the conversion window counted from the click, so a sales cycle longer than the window needs a longer window or an earlier-stage conversion to optimize on. We cover the CRM side in more depth in Google Ads offline conversions from your CRM.
“Bidding on form fills teaches Google to find people who fill out forms. Bidding on sold jobs teaches it to find customers.”
Once outcome data flows, choose deliberately which action is primary for bidding. Many accounts make the qualified or booked stage primary because it has enough volume to learn from, and keep the sold stage as secondary or feed it in with values so value-based bidding can weigh leads by what they are worth.
Reading the diagnostics.
Each conversion action has a diagnostics view that reports on enhanced conversions: whether data is being received, what share of conversions include user data, and whether there are formatting or terms problems. For imports, the Uploads page shows each file or API batch with counts of accepted and rejected rows and the reasons, such as an unrecognized GCLID, a conversion time before the click, or a conversion action name that does not match.
- Low coverage on web usually means the email is not present on the page where the conversion fires.
- Rejected import rows with click time errors usually mean time zone mismatches between the CRM and the account.
- A healthy upload that never shows conversions often points at the wrong conversion action name or an action set to the wrong source.
- A sudden drop in matched conversions after a site release usually means the form or data layer changed.
What usually goes wrong.
- Customer data terms never accepted, so enhanced conversions show as enabled but nothing is used.
- Automatic collection picks up the wrong field, such as a newsletter box in the footer, and sends the wrong email.
- GCLID never reaches the CRM because the hidden field is missing on one of several forms, or a redirect strips URL parameters.
- CRM uploads use local time without a time zone offset, so conversions appear to predate their clicks and are rejected.
- Both the web form conversion and an imported lead conversion are primary, so Smart Bidding counts the same lead twice.
- Consent mode is not configured for users in regions that require it, which limits what can be measured and modeled.
Where the settings stop and the work begins.
Turning on enhanced conversions for web is an hour of work if your tags are clean. The value for most lead generation accounts comes from the harder part: capturing click IDs and contact data on every form, keeping them attached to the lead through the CRM, defining lifecycle stages the sales team actually uses, and running a dependable import that Smart Bidding can trust. That pipeline also tends to feed Meta and other platforms, so it pays to design it once.
Building and monitoring that conversion pipeline from form to CRM to ad platform is work Theory Road does through our server-side tracking and conversions API service.
What is the difference between enhanced conversions and offline conversion tracking?
Enhanced conversions for web adds hashed customer data to conversions that happen on your site so more of them get matched. Offline conversion tracking imports outcomes that happen later, such as a qualified lead or a sale, keyed by GCLID or, with enhanced conversions for leads, by hashed email or phone. Lead generation accounts usually benefit from both.
Do I need to hash data for enhanced conversions myself?
Not when you use the Google tag or Google Tag Manager, because Google normalizes and hashes the values before sending. You do need to hash with SHA-256 yourself for API uploads and file imports. Normalize first by trimming spaces, lowercasing email and formatting phone numbers with a country code, or the hashes will not match.
Why are my enhanced conversions not working?
The most common causes are unaccepted customer data terms, an email that is not available on the page where the conversion tag fires, or automatic collection grabbing the wrong field. Check the conversion action's diagnostics, then use Tag Assistant to confirm the conversion hit includes user-provided data.
How long do I have to upload offline conversions to Google Ads?
The imported conversion must fall within the conversion action's click-through window, measured from the ad click, which you can set up to 90 days. Upload as soon as practical, ideally daily, because Smart Bidding learns faster from fresh data. If your sales cycle exceeds the window, optimize on an earlier stage such as a qualified lead.
Can I import CRM conversions without a GCLID?
Yes. Enhanced conversions for leads lets you upload hashed email or phone captured on the lead form, and Google matches them to ad interactions. Including the GCLID when you have it still helps. This approach recovers leads whose click ID was lost to redirects, missing hidden fields or cookie limits.