March 30, 2026· 6 min

Enhanced Conversions: the promise of +30% data... if you didn't botch the implementation

Google is pushing Enhanced Conversions to recover 30% of lost data. But silent implementation errors are everywhere. Diagnosis and impact in euros.

The promise

Google Enhanced Conversions (EC) is a mechanism that sends hashed user data (email, phone, address) to Google Ads at the moment of conversion. Google uses this data to connect ad clicks to conversions, even when cookies are blocked or expired.

The official promise: up to 30% more conversions recovered. On a site with 1,000 conversions a month, that's 300 conversions feeding Smart Bidding instead of disappearing. The impact on bidding quality is direct.

The problem: when the implementation is botched, nothing visibly breaks. Standard conversions keep being tracked. EC fails silently. And the promised 30% is never recovered.

The 6 silent errors

Here are the implementation errors we come across most often. None of them throws an error in the console. None triggers an alert in Google Ads.

ErrorVisible symptomReal impactDetection difficulty
EC tag fires before the conversionNone (the tag runs)User data sent with no associated conversionVery hard
CSS selector broken after a redesignNone (the tag runs)Email/phone not captured, empty hash sentVery hard
Email field not filled when the tag firesNone (the tag runs)Hash of an empty string, unusableHard
Email format not normalizedNone (the tag runs)Hash differs from Google's hash, no matchHard
EC enabled without Enhanced Conversions turned on in Google AdsNone (the tag runs)Data sent but ignored by GoogleEasy (manual check)
Insufficient consent to send PIINone (the tag runs)Potential GDPR breach, data rejectedModerate

What they have in common: the tag always runs. In Google Tag Assistant, it shows up green. In GTM, the trigger fires. Everything seems to work. But the data sent is empty, badly formatted or sent at the wrong time.

Error 1: timing

The most widespread and most expensive error. The Enhanced Conversions tag must fire at the same moment as the Google Ads conversion tag, on the purchase event.

What often happens: the EC tag is set on the confirmation page's "Page View" trigger, while the conversion tag is on the dataLayer purchase event. The EC tag fires 200-500 ms before the conversion. Google receives the user data but can't link it to the conversion that arrives just after.

Result: the Enhanced Conversions report in Google Ads shows a match rate close to zero, but that report is buried in the conversion settings and almost nobody looks at it.

Error 2: the CSS selector

To capture the user's email, the CSS selector implementation (the most common one) uses a selector such as #billing_email or .checkout-email input. When the front-end team changes the checkout (new design, framework migration, plugin change), the selector stops matching.

The tag keeps running. It sends a hash of an empty string ("") to Google. That hash is technically valid but matches no user. The match rate drops to zero without triggering any error.

On a WooCommerce site that redesigns its checkout once or twice a year, that means weeks of inactive EC after every deployment.

Error 3: email format

Google requires the email to be normalized before hashing: lowercase, no spaces, valid format. Implementations that capture the raw email field from the form sometimes send emails with leading/trailing spaces, capital letters or stray characters (a tab after a copy-paste).

The resulting hash doesn't match the one Google has on file. No match, no conversion recovered. The impact is hard to quantify but can represent 5 to 15% of EC sent.

The financial impact

For a site with a €50,000 monthly Google Ads budget and 800 conversions a month:

  • EC implemented correctly: +240 conversions recovered a month (30%)
  • EC implemented badly (timing or selector): +0 to +50 conversions (0-6%)

The 190 to 240 missing conversions aren't "lost" in themselves: the purchases happened. But they're invisible to Smart Bidding. The algorithm optimizes on 800 conversions instead of 1,040. Its ability to find the right profiles is reduced. CPA gradually rises.

Estimated impact on the paid budget: €3,000 to €8,000 a month in excess spend due to Smart Bidding being starved of data.

How to check your implementation

Step 1: the Enhanced Conversions report. In Google Ads, go to Settings > Conversions > Enhanced Conversions. The match rate should be above 60%. Below 40%, the implementation has a problem.

Step 2: Google Tag Assistant in debug mode. Trigger a test conversion. Check that the EC tag and the Google Ads conversion tag fire on the same event, in the same GTM container.

Step 3: inspect the data sent. In the browser's network console, filter requests to googleads.g.doubleclick.net. Check that the em (hashed email) and ph (hashed phone) parameters are present and not empty.

Step 4: test after every deployment. Automated monitoring helps most here. Korvus detects the symptoms of failing EC: a drop in tracked conversion volume (pixel_dead alert), inconsistent amounts (checkout_zero alert). The CMO sees the impact in euros before even knowing it's an Enhanced Conversions problem.

Validation checklist

CheckpointExpected statusHow to check
EC tag and conversion tag on the same triggerSame dataLayer eventGTM debug mode
CSS selector captures the emailNon-empty value in previewTag Assistant + DOM inspection
Email normalized (lowercase, no spaces)[email protected] formatNetwork console, em parameter
Enhanced Conversions enabled in Google AdsToggle ON in settingsGoogle Ads > Conversions > Settings
Consent checked before sending PIIad_user_data: grantedGTM consent state
Match rate > 60%EC report in Google AdsGoogle Ads > Diagnostics

Key points

  • Enhanced Conversions recover up to 30% of lost conversions, a major gain for Smart Bidding
  • The most common implementation errors are 100% silent: the tag fires, the data is empty
  • Wrong timing and broken CSS selectors are the two main causes of failure
  • The financial impact of failing EC: €3,000 to €8,000 a month on a €50,000 budget
  • Real-time monitoring of conversion volume is the only safety net: a drop in volume gives away an EC problem before anyone diagnoses it

Your site is losing money silently.

Korvus detects, quantifies and protects.

Korvus translates every leak into euros, so every fix shows up as protected revenue. Get the checklist of invisible revenue leaks and take stock of where you stand.

Hosted in France. No spam, and you can unsubscribe at any time.

Related articles