Enhanced conversions in Google Ads: what it actually does, and the GTM setup that takes an hour

Every month or so someone asks whether they should “turn on enhanced conversionsEnhanced conversions A Google Ads feature that sends a hashed (scrambled, one-way) version of the customer's email or phone along with a conversion, so Google can match it to a signed-in user when cookies fail.”. The honest answer is yes, almost always, and it’s a smaller job than people think.
The less honest answer, the one in a lot of vendor pitches, is that it will recover a pile of lost conversionsConversion The action you want someone to take after seeing an ad: a purchase, a form fill, a booked call. Each platform counts conversions by its own rules, which is why two dashboards rarely agree. and transform your account. It won’t. It will make the count you already have more accurate, and that’s worth an hour.
What it is
Google’s own description is the right one: enhanced conversions “supplements your existing conversion tags by securely sending hashedHashing Scrambling a piece of data, like an email address, into a fixed string of characters that can't be reversed. Two systems that hash the same email get the same string, so they can match records without ever sharing the email itself. first-partyFirst-party data Information you collect directly from your own visitors and customers (form fills, purchases, your own site's tracking), as opposed to data collected by or bought from someone else. conversion data from your website.” When someone converts, the tag takes the email address (and optionally name, phone, address) they typed into your form, normalizes it, runs it through SHA256, and sends the hash to Google alongside the conversion.
Google then matches that hash against signed-in Google accounts. If a cookieCookie A small file a website stores in your browser to recognize you on later visits. Ad tracking depends on them, and browsers and privacy laws increasingly limit them. was blocked or expired and the click couldn’t be tied to the conversion the usual way, the hashed email can still make the connection. The raw email never leaves the browser. Only the hash does.
What it fixes and what it doesn’t
It fixes the case where the person clicked your ad, converted, and the cookie-based link between those two events was lost. Safari’s tracking prevention, cross-device journeys, and consent-related gaps all fall into this bucket.
Google’s help pages don’t promise a number, and I’d be suspicious of anyone who does. In my experience on lead-genLead gen Advertising whose goal is a prospect's contact details or a booked call rather than an immediate purchase. Common for services, coaching, B2B and anything with a sales conversation in the middle. accounts the reported conversion count moves by single-digit to low-double-digit percentages, which is enough to change bids on a Smart BiddingSmart Bidding Google Ads' automated bidding. Instead of setting bids by hand, you pick a goal (a target cost per lead, a target return, or simply the most conversions) and Google sets the bid for every auction using your conversion data. campaign but not enough to rewrite the story.
It does not fix: conversions you never tracked, conversions counted twice, or conversion actionsConversion action In Google Ads, a defined event you count as a conversion: a form submit, a purchase, a booked call. Primary conversion actions are the ones bidding optimizes toward; secondary ones are recorded but ignored by bidding. that fire on the wrong thing. If the account has 40 primary conversion actions and half of them are page views, enhanced conversions makes a bad signal more accurate. Clean the conversion actions first.
The GTM setup
Google’s Tag Manager walkthrough covers this, but here’s the version I actually run.
1. Turn it on in Google Ads. Goals, then Conversions, then Settings. Enable enhanced conversions and choose Google Tag ManagerGoogle Tag Manager Google's free tool for managing all the tracking snippets (tags) on a website in one place, so you can add or change tracking without editing the site's code. as the method. Accept the customer data terms.
2. Create a User-Provided Data variable in GTM. Variables, New, User-Provided Data. You have three options for where the data comes from:
- Manual configuration: point the variable at CSS selectors or JavaScript variables on your page. Right for a simple HTML form where the email input has a stable ID.
- Data layerdataLayer A list on a web page where the site writes down what just happened (form submitted, purchase made, button clicked) so Google Tag Manager can read it and fire the right tags.: if your site already pushes the form values into the data layer on submit, reference them here. Right for anything built on a modern framework, and my default.
- Code: a custom JavaScript variable that returns an object with
email,phone_numberand so on. Right for the weird cases.
3. Attach it to the conversion tag. Open the Google Ads Conversion Tracking tag that fires on your thank-you page or form-submit event. Expand “Include user-provided data from your website”, tick it, and select the variable you just made.
4. Publish and verify. Google’s guidance is to check the Diagnostics tab on the conversion action after about 48 hours. Faster: open Chrome DevTools, Network tab, submit a test conversion, and find the request to googleadservices.com.
Look for a parameter named em with a long hashed string as the value. If it’s there, the tag picked up the email and hashed it. If it’s missing, the variable isn’t finding the field.
The whole thing is about an hour, most of which is confirming which field on the form actually holds the email.
Two things worth knowing
Server-side works too. If you’re running a server-side GTMServer-side tagging Running Google Tag Manager on a server you control. Tracking data goes from the visitor's browser to your server first, and you decide what gets forwarded to Google, Meta and everyone else. container, the user-provided data flows through it the same way. The hashing can happen in the browser or on the server, and the server version is a bit more robust to browser interference.
There’s a leads version. Enhanced conversions for web is what I’ve described. There’s also enhanced conversions for leads, which takes the email captured at form submit and matches it to a conversion you upload later from the CRMCRM Customer relationship management software, such as HubSpot or Salesforce, where leads, contacts and deals are recorded. Usually the only system that knows whether a lead was real., such as “became a qualifiedQualified lead A lead that meets your sales team's definition of real: right kind of company, a budget, a working phone number. Different from a form fill, which anyone (or any bot) can produce. opportunity”.
That’s the interesting one for anyone selling something with a sales call in the middle, and it’s a separate setup on the same foundation.
Order of operations
Fix the conversion actions, then turn on enhanced conversions, then look at offline conversion importOffline conversion import Uploading conversions that happened outside the website, such as a lead becoming qualified or a deal closing in the CRM, back to Google Ads or Meta, matched to the original click so the platform learns from real outcomes.. Each one makes the next one more useful, and doing them in the wrong order produces an accurate measurement of the wrong thing.
If you’d rather have someone check the form fields, wire it up and confirm the em parameter is flowing, that’s the sort of thing a tracking review covers.