Google Ads Enhanced Conversions: What They Are and How to Set Them Up
A complete guide to Google Ads Enhanced Conversions—how they work, why they improve measurement accuracy, and step-by-step setup instructions for both web and leads.


Google Ads Enhanced Conversions: What They Are and How to Set Them Up
Google Ads Enhanced Conversions is Google's answer to the signal loss problem. As cookies disappear and tracking restrictions tighten, the traditional Google Ads conversion tag misses an increasing number of conversions. Enhanced Conversions supplements tag-based tracking with first-party customer data—hashed email addresses, phone numbers, and other identifiers—to recover those lost conversions.
If you're running Google Ads and haven't enabled Enhanced Conversions, you're likely under-reporting conversions and giving Google's Smart Bidding algorithms incomplete data. This guide covers what Enhanced Conversions does, why it matters, and how to implement it.
How Enhanced Conversions Work
Standard Google Ads conversion tracking works through the gtag.js snippet or Google Tag Manager. When a user converts, the tag fires and sends a conversion event to Google, along with the GCLID (Google Click Identifier) stored in a cookie.
The problem: if the cookie has expired (ITP limits it to 7 days on Safari), if the user has switched devices, or if an ad blocker prevented the tag from firing, the conversion can't be attributed to the ad click.
Enhanced Conversions adds a second matching signal. When the conversion event fires, it also sends hashed first-party data—typically the customer's email address—to Google. Google can then match this hashed identifier against its own user database, connecting the conversion to the ad click even when the GCLID cookie isn't available.
The flow looks like:
- User clicks your Google Ad → GCLID is set as a cookie.
- User converts (days or weeks later) → Your tag fires with the conversion event.
- Standard tracking: If the GCLID cookie is still present, Google attributes the conversion normally.
- Enhanced Conversions: Additionally, the user's hashed email (captured on your conversion page) is sent to Google. Google matches it against the Google account associated with the original ad click. This creates a second attribution path that works even when the GCLID cookie is gone.
Why Enhanced Conversions Matter
More Accurate Conversion Counting
Google reports that Enhanced Conversions recover an average of 5–15% more conversions compared to standard tag-based tracking alone. For businesses with significant Safari traffic or long sales cycles, the recovery can be higher.
Better Smart Bidding Performance
Google's automated bidding strategies (Target CPA, Target ROAS, Maximize Conversions) optimize based on conversion data. More accurate conversion data means better optimization decisions, which translates to lower CPAs or higher ROAS.
Improved Attribution
Enhanced Conversions extend the effective attribution window by providing a non-cookie matching mechanism. A user who clicked your ad 20 days ago on Chrome and converts today on Safari can still be attributed—something that standard tracking increasingly can't do.
Types of Enhanced Conversions
Enhanced Conversions for Web
Designed for businesses where the conversion happens on your website (ecommerce purchases, form submissions, signups). The user's hashed identifiers are captured from your conversion page and sent alongside the standard conversion tag.
Enhanced Conversions for Leads
Designed for businesses where the real conversion happens offline or downstream—typically B2B companies where a website lead form is followed by a sales process and eventual closed deal. When the lead converts in your CRM, you upload the conversion back to Google with the original hashed identifiers, closing the loop.
Setup Guide: Enhanced Conversions for Web
Option 1: Google Tag Manager
This is the most common implementation method:
Step 1: In Google Ads, navigate to Goals → Conversions → Settings. Enable Enhanced Conversions and select Google Tag Manager as the implementation method.
Step 2: In GTM, edit your existing Google Ads Conversion Tracking tag. Under "Include user-provided data from your website," select "New Variable" and configure a User-Provided Data variable.
Step 3: Map the data fields. At minimum, map the email field to the form element or data layer variable that contains the customer's email at the point of conversion:
// Data layer push on conversion page
dataLayer.push({
'event': 'purchase',
'enhanced_conversion_data': {
'email': customer.email // Will be automatically hashed by GTM
}
});Step 4: Publish the GTM container and verify in the Google Ads tag diagnostics.
Option 2: Google Tag (gtag.js)
If you're using the Google tag directly:
// Configure enhanced conversions
gtag('config', 'AW-CONVERSION_ID', {
// Standard config
});
// On conversion, include user data
gtag('event', 'conversion', {
'send_to': 'AW-CONVERSION_ID/CONVERSION_LABEL',
'value': 99.99,
'currency': 'USD',
'transaction_id': 'ORDER_12345',
'user_data': {
'email': 'customer@example.com', // Auto-hashed by gtag
'phone_number': '+1-555-555-5555',
'address': {
'first_name': 'Jane',
'last_name': 'Doe',
'street': '123 Main St',
'city': 'Austin',
'region': 'TX',
'postal_code': '78701',
'country': 'US'
}
}
});Option 3: Google Ads API
For server-side implementation, send enhanced conversion data via the Google Ads API. This is the most reliable method because it's not dependent on client-side tag execution:
# Python example using the Google Ads API
from google.ads.googleads.client import GoogleAdsClient
def upload_enhanced_conversion(client, customer_id, conversion_action_id, order_id, email, value):
conversion_upload_service = client.get_service("ConversionUploadService")
click_conversion = client.get_type("ClickConversion")
click_conversion.conversion_action = f"customers/{customer_id}/conversionActions/{conversion_action_id}"
click_conversion.conversion_date_time = "2026-04-10 12:00:00-05:00"
click_conversion.conversion_value = value
click_conversion.currency_code = "USD"
click_conversion.order_id = order_id
# Add user identifiers for enhanced matching
user_identifier = client.get_type("UserIdentifier")
user_identifier.hashed_email = hash_email(email)
click_conversion.user_identifiers.append(user_identifier)
response = conversion_upload_service.upload_click_conversions(
customer_id=customer_id,
conversions=[click_conversion],
partial_failure=True
)
return responseSetup Guide: Enhanced Conversions for Leads
For B2B businesses where the valuable conversion is a closed deal rather than a form submission:
Step 1: Capture the user's hashed email (or other identifiers) when they submit a lead form on your website using standard Enhanced Conversions for Web.
Step 2: Store the Google Click ID (GCLID) in your CRM alongside the lead record. Capture it from the URL parameter when the lead first arrives on your site.
Step 3: When the lead converts to a customer in your CRM (days, weeks, or months later), upload the conversion to Google Ads using the Offline Conversion Upload with the GCLID and/or hashed email.
This allows Google's Smart Bidding to optimize for actual closed revenue, not just lead form submissions—dramatically improving the quality of leads your Google Ads campaigns generate.
Validating Your Implementation
Tag Diagnostics
Google Ads provides a tag diagnostics tool under the conversion action settings. After implementation, check for:
- Confirmation that enhanced conversion data is being received.
- The match rate (percentage of enhanced conversion data that Google can match to a user).
- Any error messages about data formatting issues.
The Conversion Accuracy Report
In Google Ads, navigate to Tools → Diagnostics → Conversion tag diagnostics to see how Enhanced Conversions is impacting your measurement. Look for the delta between standard and enhanced conversion counts.
Allow 72 Hours
Enhanced Conversions data may take up to 72 hours to fully appear in your reporting. Don't panic if you don't see results immediately after implementation.
Common Implementation Mistakes
Sending unhashed data. The gtag.js and GTM implementations auto-hash for you. But if you're using the API, you must SHA-256 hash identifiers yourself before sending. Sending plain-text emails to Google is a privacy violation and will result in rejected data.
Not capturing email on the conversion page. Enhanced Conversions needs the email (or other identifier) to be available at the moment of conversion. If your checkout flow doesn't expose the email on the confirmation page, you'll need to pass it via the data layer.
Forgetting to accept the customer data terms. Google requires you to accept additional terms of service for Enhanced Conversions in the Google Ads interface. Skipping this step means data won't be processed.
How Audiencelab Simplifies Enhanced Conversions
Audiencelab automates the Enhanced Conversions setup:
- Server-side implementation that sends enhanced conversion data via the API—no client-side tag configuration required.
- Automatic data enrichment with hashed email and other identifiers from your first-party data.
- GCLID capture and storage for offline conversion uploads from CRM data.
- Real-time monitoring of match rates and conversion recovery.
Want to recover conversions and improve your Google Ads bidding? Set up Enhanced Conversions with Audiencelab today.