Blog

← All articles

Setting Up Enhanced Conversions in Google Tag Manager — GA4 & Google Ads

TL;DR: Enhanced Conversions send hashed first-party data (email, phone) alongside conversion events, improving attribution by 5-15%. Set up in GTM using automatic CSS collection, manual selectors, or data layer variables. GTM handles SHA-256 hashing automatically — send plaintext values. Enable Enhanced Conversions in both GTM and Google Ads/GA4 admin.

Third-party cookies are disappearing. Browser privacy features block traditional conversion tracking. Enhanced Conversions is Google's answer: it sends hashed first-party data (email, phone, address) alongside conversion events, letting Google match conversions to ad clicks more accurately — without relying on cookies.

This guide covers setting up Enhanced Conversions for both GA4 and Google Ads using Google Tag Manager, including the hashing requirements, data sources, and common pitfalls.

What Are Enhanced Conversions?

Enhanced Conversions supplement your existing conversion tags with hashed user-provided data. When a user completes a conversion (purchase, signup, lead form), the tag collects data the user voluntarily entered — email address, phone number, name, or address — hashes it with SHA-256, and sends it to Google alongside the conversion event.

Google uses this hashed data to match the conversion back to the user's Google account, improving conversion attribution accuracy by 5-15% according to Google's own benchmarks.

What Data Can Be Sent?

At minimum, send the email address. Each additional field improves match rates.

What do I need before setting up Enhanced Conversions?

Enable in Google Ads

  1. Go to Goals → Conversions → Settings
  2. Expand "Enhanced conversions"
  3. Check "Turn on enhanced conversions"
  4. Select "Google Tag Manager" as the method
  5. Save

Enable in GA4

  1. Go to Admin → Data collection and modification → Data collection
  2. Toggle on "User-provided data collection"
  3. Accept the terms

How do I set up automatic Enhanced Conversions collection?

The simplest approach. GTM scans the page for form fields matching known patterns (email inputs, phone inputs) and automatically collects + hashes the values.

Setup Steps

  1. In GTM, open your existing Google Ads Conversion tag or GA4 Event tag
  2. Check "Include user-provided data from your website"
  3. Select "Automatic collection"
  4. Save and publish

GTM looks for standard form fields: input[type="email"], input[name="email"], input[autocomplete="email"], and similar patterns for phone and address fields.

Limitation: Automatic collection only works if your form uses standard HTML input elements with recognizable attributes. Custom form components, shadow DOM, or non-standard field names won't be detected.

How do I configure Enhanced Conversions manually?

When automatic collection doesn't find your fields, specify the CSS selectors manually.

Setup Steps

  1. In your conversion tag, check "Include user-provided data from your website"
  2. Select "Manual configuration" → "CSS Selectors"
  3. For each data field, enter the CSS selector:
    • Email: #checkout-email or input[name="user_email"]
    • Phone: #phone-field or input[type="tel"]
  4. Save and publish

The CSS selectors here follow the same stability rules as trigger selectors. Avoid generated class names; prefer id, name, or data-* attributes.

How do I set up Enhanced Conversions via data layer?

For maximum control, push user data to the data layer and reference it in GTM.

Data Layer Push

dataLayer.push({
  event: 'purchase',
  user_data: {
    email: '[email protected]',
    phone_number: '+1234567890',
    address: {
      first_name: 'John',
      last_name: 'Doe',
      street: '123 Main St',
      city: 'New York',
      region: 'NY',
      postal_code: '10001',
      country: 'US'
    }
  }
});

GTM Configuration

  1. Create Data Layer Variables for each field: user_data.email, user_data.phone_number, etc.
  2. Create a "User-Provided Data" variable (new variable type in GTM)
  3. Map each field to the corresponding Data Layer Variable
  4. In your conversion tag, select "Manual configuration" → "Variables" and use the User-Provided Data variable

SHA-256 Hashing: Do You Need to Hash Manually?

No. GTM handles SHA-256 hashing automatically before sending data to Google. You should send plaintext values to GTM — it hashes them client-side before transmission.

If you pre-hash data (for example, from your server), GTM won't double-hash it — but you need to tell GTM the data is already hashed by checking the "Data is already hashed" option.

Hashing Requirements

GTM Event Helper includes built-in SHA-256 hashing for Enhanced Conversions. When you create a GA4 Event or Google Ads Conversion tag, the extension detects email and phone fields on the page and can automatically include them with proper hashing.

How do I test Enhanced Conversions?

  1. GTM Preview mode: Fire the conversion tag and check the tag details. You should see "User-provided data" with hashed values in the tag output.
  2. Google Ads: Go to Goals → Conversions → your conversion action → Diagnostics. Look for "Enhanced conversions" status. It may take 48-72 hours after first data to show results.
  3. GA4: Check DebugView for the event. User-provided data isn't visible in DebugView directly, but you can verify the tag fired with the correct trigger.

Diagnostic Statuses

StatusMeaning
Not recordingNo enhanced conversion data received yet
RecordingData is being received and used for matching
Tag inactiveTag hasn't fired recently — check your trigger
No recent user-provided dataTag fires but isn't collecting user data — check CSS selectors or data layer

What are common Enhanced Conversions mistakes?

What is the difference between Enhanced Conversions for Web and Enhanced Conversions for Leads?

Google offers two distinct Enhanced Conversions products, and mixing them up is one of the most common setup mistakes.

Enhanced Conversions for Web captures user-provided data at the moment of an online conversion. When a user completes a purchase or submits a lead form on your site, the tag grabs their email, phone, or address from the page and sends it alongside the conversion hit. Everything happens client-side through GTM — no backend integration required.

Enhanced Conversions for Leads works differently. It captures a hashed identifier (typically email) at the lead form submission, then later matches it against offline conversion data you upload from your CRM. This is for businesses where the actual conversion (sale, contract) happens offline — car dealerships, B2B SaaS with sales-assisted deals, real estate.

FeatureEnhanced Conversions for WebEnhanced Conversions for Leads
Data sourceUser-provided data on the page (forms, checkout)CRM / offline conversion upload
Conversion happensOnline (purchase, signup)Offline (phone call, in-store, contract signed)
Setup complexityLow — GTM tag configuration onlyMedium — requires CRM integration + scheduled uploads
HashingGTM handles automaticallyYou hash before uploading, or use Google Ads API
Best forE-commerce, SaaS signups, online lead genB2B sales, automotive, financial services

If your conversions happen entirely online, start with Enhanced Conversions for Web. You can always add Leads later when you have an offline conversion pipeline in place.

How do Enhanced Conversions affect conversion attribution?

Enhanced Conversions don't create new conversions — they improve the accuracy of conversions you're already tracking. The impact shows up in three areas.

Match rate improvement. Without Enhanced Conversions, Google relies on cookies and click IDs to attribute conversions. When users switch devices, clear cookies, or use privacy-focused browsers, the click-to-conversion chain breaks. Enhanced Conversions fill these gaps by matching hashed user data to Google accounts. Most advertisers see a 5-15% increase in attributed conversions, with some verticals (travel, B2B) seeing up to 20%.

Smart Bidding signal quality. Automated bidding strategies (Target CPA, Target ROAS, Maximize Conversions) optimize based on conversion data. More accurate attribution means more signal, which means the algorithm has a better picture of which clicks actually convert. The practical result: bidding stabilizes faster on new campaigns and performs better on existing ones.

Cross-device attribution. A user clicks your ad on mobile, then converts on desktop the next day. Without Enhanced Conversions, this conversion is often lost. With hashed email matching, Google can reconnect the two sessions through the user's Google account, attributing the conversion to the original ad click.

Enhanced Conversions also help during cookie consent scenarios. If a user declines cookies but still submits a form with their email, the hashed data can still be matched — providing attribution where cookie-based tracking would report zero.

What are the privacy and consent requirements for Enhanced Conversions?

Enhanced Conversions send hashed personal data to Google, which makes privacy compliance non-optional. Here's what you need to address.

User must voluntarily provide the data. Enhanced Conversions can only use data that users actively entered — form fields they filled out themselves. You cannot scrape email addresses from page content, local storage, or third-party scripts. Google's terms explicitly prohibit collecting data the user did not intentionally submit.

GDPR compliance (EU/EEA). Under GDPR, hashed email addresses are still personal data (pseudonymized, not anonymized). You need a lawful basis — typically legitimate interest for existing conversion tracking, or explicit consent. Your Data Processing Agreement with Google covers the processor relationship, but you're still the controller.

CCPA/CPRA compliance (California). Enhanced Conversions data falls under "sale or sharing of personal information" if used for cross-context behavioral advertising. Ensure your privacy notice discloses this, and honor opt-out signals (Global Privacy Control).

Consent Mode v2 integration. If you use Google Consent Mode, Enhanced Conversions respects the ad_user_data consent signal. When ad_user_data is denied, the tag won't send user-provided data — even if it's available on the page. Make sure your Consent Mode implementation sets this signal correctly based on user choice.

Privacy policy updates. Add language covering: (1) collection of user-provided data for conversion measurement, (2) SHA-256 hashing before transmission, (3) sharing with Google for ad attribution purposes, and (4) data retention period (Google retains matched data for 63 days).

How do I troubleshoot low Enhanced Conversion match rates?

You've set up Enhanced Conversions but the diagnostics show a low match rate, or the "Recording" status doesn't appear. Work through these checks in order.

Check the diagnostic status meaning. "Not recording" means Google hasn't received any Enhanced Conversion data — your tag isn't collecting or sending user data at all. "No recent user-provided data" means the tag fires but the user data fields are empty. Both point to collection issues, not matching issues.

Verify CSS selectors are correct. Open GTM Preview mode, trigger a conversion, and inspect the tag details. If the user-provided data section shows empty or null values, your CSS selectors aren't matching the form fields. Test in the browser console:

// Check if your selector finds the right element
document.querySelector('#checkout-email')?.value
// Should return the email the user entered

Confirm you're collecting on the right page. Enhanced Conversions data must be available on the same page where the conversion tag fires. If your conversion fires on a thank-you page but the email field was on the previous checkout step, the selector won't find it. Solutions: pass the email via data layer, URL parameter, or server-side session.

Check for empty or malformed values. Whitespace-only emails, phone numbers without country codes, or placeholder text like "Enter your email" all reduce match rates. Validate that the collected value is a real email before the tag sends it.

Test with a known Google account. Submit a test conversion using an email address associated with a Google account you control. Wait 48-72 hours and check if the conversion appears with Enhanced Conversions attribution in your Google Ads report.

Allow time for full assessment. Google recommends waiting 30 days after setup to evaluate Enhanced Conversions performance. Match rates fluctuate early on and stabilize as the system accumulates more data points.

GTM Event Helper's AI Agent detects form fields on the page and validates selectors before creating tags — eliminating the most common cause of low match rates: wrong or broken CSS selectors pointing at empty elements.

Is there a faster way to set up Enhanced Conversions?

Setting up Enhanced Conversions manually involves identifying form fields, writing CSS selectors, configuring the tag, and testing across multiple screens. GTM Event Helper simplifies this:

  1. Click the form element on your page
  2. The extension detects email and phone fields automatically
  3. SHA-256 hashing is applied with no additional configuration
  4. Trigger + tag + Enhanced Conversions are created in one click

Set up Enhanced Conversions without the headache.

Install GTM Event Helper

External Resources

Related Articles

← All articles · Home · Privacy Policy · Contact