Enhanced Conversions for Google Ads: Setup and the Mistakes That Break It

You are paying for clicks, and a meaningful share of the sales those clicks produced never make it back into Google Ads. The conversion happened. The customer bought. But the browser that carried them from the ad to the purchase dropped the cookie, cleared it, or blocked it outright, and Google Ads never learned that the click paid off. Smart Bidding then optimizes against an incomplete picture, and you quietly overspend on campaigns that look worse than they are while underfunding ones that look worse than they should.
Enhanced Conversions is Google's answer to that gap. It uses data your customer already handed you, an email address or phone number, hashes it, and lets Google match it to a signed-in Google account. When the match lands, a conversion that a cookie would have lost gets credited back. The mechanism is sound. The problem is that setup breaks in small, silent ways, and a broken Enhanced Conversions setup looks almost identical to a working one until you check the diagnostics. This article covers what it does, the three ways to set it up, the mistakes that quietly disable it, and how to confirm it is actually working.
What Enhanced Conversions actually does
When a conversion fires, Enhanced Conversions collects first-party identifiers from the page, primarily email, and optionally phone number, first name, last name, and address. Before anything leaves the browser, that data is normalized and hashed with SHA256, a one-way function that Google cannot reverse into the original email. The hash travels with the conversion. On Google's side, the same hashing is applied to the email addresses of signed-in Google users, and when two hashes match, the conversion is attributed to that user's ad interaction.
This matters because it does not depend on a third-party cookie surviving the trip. A customer can be on Safari with Intelligent Tracking Prevention, on iOS, or using a browser that strips ad cookies, and the hashed email still provides a durable link between the ad click and the purchase. That is why the recovered conversions skew toward exactly the traffic that modern tracking loses. If you have already worked through a broader tracking failure, this fits neatly alongside the fixes in our conversion tracking broken audit guide.
The three ways to set it up
There are three supported setup methods, and they trade effort against reliability. The right choice depends on how your site is built and how much control you have over the code on your confirmation page.
The Google tag method, using gtag, is the most direct. You enable Enhanced Conversions in the conversion action, then either let Google auto-detect the email and phone fields on the page or specify the CSS selectors manually. Google Tag Manager offers the same capability with more control, using either automatic collection, manual configuration with variables, or a code-based approach where you push the user-provided data into the data layer yourself. The third method is the Google Ads API, which sends hashed conversion data server to server rather than from the browser. This is the most reliable because it does not depend on the field being present in the rendered page at conversion time, but it requires engineering work and a source of the customer data on your server.
| Setup method | Effort | Reliability | When to use |
|---|---|---|---|
| Google tag (gtag) with automatic detection | Low | Medium | Simple sites where email or phone reliably appears on the confirmation page |
| Google tag (gtag) with manual selectors | Low to medium | Medium to high | You know the exact page elements and want to avoid auto-detection guesswork |
| GTM automatic collection | Low | Medium | You already run GTM and the confirmation page exposes the fields |
| GTM manual with data layer | Medium | High | You control the data layer and want explicit, stable field mapping |
| Google Ads API (server side) | High | High | High value accounts, headless or complex checkouts, or unreliable page-side data |
For most e-commerce and lead-gen sites, the data layer approach in GTM is the sweet spot. It is explicit, it survives most front-end changes, and it does not rely on Google guessing which input holds the email.
The mistakes that quietly break it
Enhanced Conversions rarely throws an error. It just records fewer matches than it should, or none, and everything downstream keeps running as if nothing is wrong. These are the failures we see most often.
The field is not on the page. Automatic detection and page-side selectors can only capture what the page actually renders at conversion time. Many confirmation and thank-you pages show an order number and a friendly message but never display the customer's email or phone. If the value is not in the DOM, there is nothing to hash, and the match rate collapses. This is the single most common cause of a setup that reports as active but recovers almost nothing.
The data is hashed wrong or hashed twice. Enhanced Conversions expects raw email and phone values that it will normalize and hash for you, or values you have hashed exactly once with SHA256 after normalizing them. Teams sometimes hash the data themselves, then feed it into a field that hashes again, producing a double hash that can never match. Phone numbers need to be in E.164 format, and emails need lowercasing and trimming before hashing. Get the normalization wrong and the hash will not match Google's copy even when the person is the same.
Selectors break after a theme or platform change. A manually configured selector points at a specific element. Redesign the confirmation page, switch themes, or migrate your checkout, and that element can move or change its identifier. The tag keeps firing the base conversion, so your totals look fine, but the enhanced data silently stops flowing. This is a particular risk on Shopify, where the checkout.liquid and additional-scripts approach has been deprecated in favor of checkout extensibility, Customer Events, and the Web Pixels API. Any account that has not completed that migration should assume its old checkout tracking, including Enhanced Conversions selectors, needs to be rebuilt.
Consent is not granted, so nothing is sent. Under Consent Mode v2, the enhanced first-party data should only be sent when the user has granted the relevant consent, specifically ad_user_data and ad_storage. If your consent banner defaults to denied and a large share of users never accept, your Enhanced Conversions coverage will be far lower than expected, and correctly so. This is not a bug to route around. It is a signal that your consent rate, or your consent configuration, is doing the limiting.
PII policy violations. Google's policies prohibit sending personally identifiable information into fields that are not designed to receive it, and prohibit sending readable PII at all. If you accidentally pass an unhashed email into a standard event parameter, or attach customer data to the wrong field, Google can reject the data or flag the account. Enhanced Conversions has a defined, approved path for first-party data. Use that path and nothing else.
How to verify it is actually working
Do not trust that a setup is live because the toggle is on. Verify it. Start in the browser: with GTM Preview mode or your browser developer tools, confirm the conversion tag fires and that the user-provided data field is populated with the email or phone value at the moment of conversion. If you are using the data layer, confirm the value is present in the data layer before the tag reads it.
Then check Google Ads directly. Open the conversion action, look at the Enhanced Conversions section, and read the diagnostics. Google reports a recording status and flags common problems, including data not being received, hashing issues, and low match rates. A status that says Enhanced Conversions are recording, together with a healthy match rate, is your confirmation. A status that shows the feature enabled but not recording means the data is not reaching Google, which almost always points back to a missing field or a broken selector. Give it time as well: match rates and reporting can take a few days to stabilize, so a fresh setup that shows low numbers on day one is not necessarily broken.
If your account shows conversions dropping or diagnostics you cannot interpret, that pattern is worth a broader look, and our guide on what to do when Google Ads is not tracking conversions walks through the adjacent failure modes.
The uplift you can realistically expect
Set expectations honestly. Enhanced Conversions recovers conversions that were already happening but were not being credited, so the ceiling on your gain is however many conversions your cookie-based tracking was losing. In practice most accounts see reported conversions rise by roughly 3 to 15 percent once Enhanced Conversions is working correctly, with the larger end of that range going to accounts with heavy Safari, iOS, and privacy-browser traffic. Accounts that were already tracking cleanly across most browsers will see a smaller lift, because there was less to recover.
The reporting gain is only half the value. Those recovered conversions feed Smart Bidding, and a bidding model trained on a more complete conversion signal makes better decisions, which tends to improve performance beyond the raw conversion count. This is why Enhanced Conversions is worth doing even when the headline percentage looks modest. Cleaner data compounds.
Find out what your tracking is hiding
Enhanced Conversions only works when the plumbing behind it is intact: the field on the page, the hashing, the selectors, the consent signals, and the diagnostics all lining up. If your setup reports as enabled but recovers almost nothing, the money you are losing is invisible until someone opens the hood. Our conversion tracking repair service audits every layer of your Google Ads and analytics measurement, finds the specific point where your data is leaking, and rebuilds it so Smart Bidding is optimizing against the truth. If you suspect your numbers are wrong, they usually are, and the fix pays for itself in bid efficiency alone.
FAQ
What are Enhanced Conversions for Google Ads?
Enhanced Conversions is a Google Ads feature that captures first-party data your customer already gave you, such as an email address or phone number, hashes it in the browser using SHA256, and sends it alongside the conversion. Google matches that hashed data to signed-in Google accounts and credits conversions that a cookie alone would have missed. It does not send any readable personal information to Google, only the one-way hash.
How much lift does Enhanced Conversions actually provide?
Most accounts see a recovery in the range of roughly 3 to 15 percent more reported conversions, though the exact figure depends on how many conversions were being lost to cookie restrictions and browser privacy features in the first place. Accounts with a large share of traffic on Safari, iOS, or privacy-focused browsers tend to see larger gains. The recovered conversions also feed Smart Bidding, so the benefit compounds over time as the bidding model gets cleaner data.
Do Enhanced Conversions violate privacy rules or GDPR?
Enhanced Conversions is designed to be privacy-safe because the email and phone data is hashed with SHA256 in the user's browser before it is sent, so Google never receives readable personal information. You still need a lawful basis and valid consent to collect and process that data, and Consent Mode v2 signals must reflect the user's choice. If a user has not granted ad_user_data and ad_storage consent, the enhanced data should not be sent for that user.
Why are my Enhanced Conversions showing as not recording?
The most common cause is that the email or phone field is not present on the page where the conversion fires, so there is nothing to capture. Other frequent causes are a broken CSS selector after a theme or checkout change, data that is already hashed being hashed a second time, and consent not being granted. Check the Enhanced Conversions diagnostics in Google Ads under the conversion action, which reports the recording status and flags common issues.