Enhanced Conversions Setup Guide: Manual Data Layer Implementation

Workspace with conversion tracking setup and analytics charts

Enhanced Conversions is Google’s way of matching conversion data to user accounts using first-party data like email addresses, phone numbers, and addresses. When a user converts on your site, this hashed data is sent to Google to improve conversion attribution, especially in a world where third-party cookies are disappearing.

This guide covers the manual data layer implementation method through Google Tag Manager, which gives you the most control and works cleanly with consent mode.

Why Enhanced Conversions Matter

Standard conversion tracking relies on cookies to connect a click to a conversion. When cookies are blocked (Safari ITP, Firefox ETP, user consent denial), that connection breaks. Google reports fewer conversions than actually happened, and Smart Bidding loses signal quality.

Enhanced Conversions solve this by sending hashed first-party data (SHA-256) alongside the conversion event. Google matches this against signed-in user accounts to recover conversions that cookie-based tracking missed. Most accounts see a 5-15% increase in reported conversions after enabling it.

Implementation Options

Google offers three ways to implement Enhanced Conversions:

  1. Google Tag (gtag.js) automatic: Scans the page for email fields. Unreliable because it depends on form structure and timing.
  2. Google Tag Manager with CSS selectors: Points GTM to specific form fields. Breaks when the form layout changes.
  3. Google Tag Manager with data layer (manual): You push structured data to the data layer. Most reliable, most control. This is what we’ll cover.

Step 1: Push User Data to the Data Layer

On your form submission confirmation (thank-you page, or after a successful AJAX form submit), push the user’s data to the data layer:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  'event': 'purchase',  // or 'form_submit', 'sign_up', etc.
  'enhanced_conversions': {
    'email': 'user@example.com',
    'phone_number': '+1-555-123-4567',
    'first_name': 'Jane',
    'last_name': 'Smith',
    'street': '123 Main St',
    'city': 'New York',
    'region': 'NY',
    'postal_code': '10001',
    'country': 'US'
  }
});

You don’t need all fields. Email alone is enough for most B2B use cases. E-commerce sites benefit from including phone and address for higher match rates.

Step 2: Create a Data Layer Variable in GTM

In GTM, create a new User-Defined Variable:

  • Type: Data Layer Variable
  • Data Layer Variable Name: enhanced_conversions
  • Data Layer Version: Version 2

This variable will capture the entire enhanced_conversions object from the data layer push.

Step 3: Configure the Conversion Tag

In your Google Ads Conversion Tracking tag:

  1. Open the tag configuration
  2. Check “Include user-provided data from your website”
  3. Select “Data Layer” as the source
  4. Map each field: email, phone, first_name, last_name, street, city, region, postal_code, country
  5. Each field should reference the corresponding data layer variable path

Google will automatically SHA-256 hash the data before sending it. You don’t need to hash it yourself (though you can if you prefer).

Step 4: Enable in Google Ads

In your Google Ads account:

  1. Go to Goals > Conversions > Settings
  2. Expand “Enhanced conversions”
  3. Turn it on and select “Google Tag Manager” as the implementation method
  4. Accept the terms

Step 5: Verify

After publishing your GTM container:

  1. Use GTM Preview mode to trigger a test conversion
  2. In the conversion tag’s output, look for the “User-provided data” section
  3. Verify that the hashed email (and other fields) appear
  4. In Google Ads, check the conversion action’s diagnostics tab after 48-72 hours. It should show “Recording enhanced conversions”

Common Issues

  • Data layer push fires after the conversion tag: The data layer push must happen before or at the same time as the conversion event. If the form redirects to a thank-you page, push the data on that page before the GTM conversion tag fires.
  • Consent mode blocking the conversion tag: Enhanced Conversions still respect Consent Mode. If ad_storage and ad_user_data are denied, the tag won’t fire. Make sure your consent implementation grants these for users who accept marketing cookies.
  • Low match rates: If Google reports low enhanced conversion match rates, it usually means the email format is inconsistent (extra spaces, mixed case). Normalize the email to lowercase and trim whitespace before pushing to the data layer.

Need Help Setting This Up?

Enhanced conversions interact with your form setup, data layer, GTM container, Google Ads account, and consent mode. Getting all the pieces working together takes careful implementation and testing.

Our Conversion Tracking Setup service includes enhanced conversions implementation as part of the Standard and Advanced tiers. We handle the data layer setup, GTM configuration, Google Ads activation, and end-to-end verification.

Get Conversion Tracking Help

Scroll to Top