Google Ads

Google Ads enhanced conversions: an implementation guide

Google Ads enhanced conversions step by step: GTM or gtag, leads via Data Manager, Consent Mode v2 and how to verify, with the 2026 changes.

Analyst's desk with two monitors and code on a laptop while setting up Google Ads enhanced conversions
In this article

Google Ads enhanced conversions send data the customer has given you (email, phone, name and address), hashed with SHA256, at the moment of conversion, so Google can attribute conversions that cookies no longer see. On the website you set them up with the Google tag or Google Tag Manager; for leads, you complete them later by importing what happens in your CRM. If your account bids with Smart Bidding and they’re switched off, the algorithm is learning from part of your conversions, not all of them.

This guide is the step-by-step implementation I follow when I set up measurement on an account, including what changed in 2026, which is quite a lot. Which CRM stage to optimise for in B2B, and how to stop paying for junk leads, I’ve already covered in Google Ads B2B: lead quality and offline conversions. This post is the technical side: switching them on, sending the data, respecting consent and checking that it works.

In 30 seconds:

  • Since April 2026, enhanced conversions for web and for leads are a single on/off setting in Google Ads, and the account accepts data from the tag, Data Manager and the API at the same time.
  • Since 15 June 2026, offline conversion imports and enhanced conversions for leads uploads have moved to the Data Manager API and are blocked in the Google Ads API for most developers.
  • On the website there are three ways to capture the data: automatic detection, CSS selectors or variables, and code. Automatic is the fastest; code is the most reliable.
  • In the European Economic Area, the consent parameter that matters here is ad_user_data. Without a properly built Consent Mode, don’t send user data.
  • You verify it in two places: the em parameter in the conversion request, and the diagnostics report, which takes about 48 hours to fill up.

What changed with enhanced conversions in 2026?

Google renames and moves these features often, so before configuring anything it’s worth knowing where they stand. This is the state of play as of October 2026, according to the official Google Ads Help:

DateChangeWhat it means for you
31 May 2025Support ends for the legacy Salesforce integrationSalesforce imports must run through Data Manager (Google Ads Help)
April 2026Web and leads become one on/off settingYou no longer pick a single method; the account accepts data from the tag, Data Manager and the API (Google Ads Help)
15 June 2026Offline and leads imports migrate to the Data Manager APICustom integrations uploading through the Google Ads API need migrating (Google Ads Help)
Current status (October 2026)File-based GCLID import is labelled “legacy”Google recommends starting straight away with enhanced conversions for leads (Google Ads Help)

The line from the documentation I care most about is this one: “Enhanced conversions for web and leads are now combined into a single on/off setting.” Accounts that already had them switched on were migrated automatically. What doesn’t migrate itself is your website: if nothing is sending the data, a switched-on setting does nothing.

On the API side, Google is explicit: from 15 June 2026, offline conversion and enhanced conversions for leads uploads move to the Data Manager API and are blocked in the Google Ads API. Developer tokens that sent no request between January and June 2026 aren’t allowlisted for legacy access. If an agency or a developer built you an upload script years ago, ask them today whether it still works.

How do enhanced conversions for web, for leads and offline imports differ?

All three solve the same problem (conversions Google can’t attribute with cookies) at different points in the funnel.

Enhanced conversions for webEnhanced conversions for leadsGCLID offline import
When the conversion happensOn the website: purchase, sign-up, formLater, in your CRM: qualified lead, saleLater, in your CRM
What’s sentHashed user data alongside the tag’s conversionHashed data captured on the form and uploaded laterThe click identifier (GCLID)
How it’s sentGoogle tag or Tag ManagerTag on the form + Data Manager or APIFile, Data Manager or API
Upload windowReal timeUp to 63 daysUp to 90 days after the click
Best forEcommerce and any conversion that happens on siteLead generation with a sales cycleAccounts that already have it running well

The windows come from Google’s FAQs: the GCLID is kept for 90 days, and conversions with personal information for enhanced conversions can be uploaded up to 63 days later (Google Ads Help).

My rule of thumb: if you sell online, start with the website. If a salesperson sits between the click and the sale, you need both pieces, web and leads. And if you already have a working GCLID import, don’t throw it away. Google still recommends including the GCLID in uploads whenever you have it (Google Ads API). Enhanced conversions for leads add the email or phone number on top, and those survive when the GCLID gets lost.

The combination pays off: advertisers who used first-party data, such as emails and phone numbers, alongside imported GCLIDs saw a median 10% increase in conversions compared with those using standard offline conversion imports (Google Ads Help). You can send the GCLID and the email in the same conversion.

If you’re keeping the GCLID import, these are the limits behind most errors:

LimitWhat Google says
Click too recentIf the click is less than 6 hours old, the upload is rejected and you retry later (Google Ads Help)
New conversion actionWait 4 to 6 hours after creating it before uploading the first conversion (Google Ads Help)
ProcessingUsually under 12 hours; up to 72 with GBRAID and WBRAID (Google Ads Help)
Time zoneThe conversion time needs the right time zone; a mismatch with the account’s is a classic error (Google Ads Help)

If you’re moving from GCLID to enhanced conversions for leads, don’t switch the old import off on day one. Google recommends waiting one or two conversion cycles, or four weeks, for data to build up before turning off offline import (Google Ads Help).

What do you need before switching on enhanced conversions?

Four things. If one is missing, the setup half-works and you don’t find out until weeks later.

  1. The Google tag on every page, not just the thank-you page. Google puts it at the base of its measurement guidance (Google Ads Help).
  2. Accepting the customer data terms in Google Ads. Without that step, data collection doesn’t start (Google Ads Help).
  3. The data has to exist on the conversion page. Email is preferred; otherwise a phone number in E.164 format, or first name, last name, postcode and country (Google Ads Help).
  4. A working Consent Mode, and a privacy policy that explains it. More on this below, because it’s where most European implementations go wrong.

How do you set up enhanced conversions for web?

First in Google Ads, then on the website. In that order.

Step 1: switch them on in Google Ads

Go to Goals > Settings, expand “Enhanced conversions”, tick the box to turn them on and accept the customer data terms. Since 2026 you no longer pick a sending method: the account accepts data from the tag, Data Manager and the API at the same time (Google Ads Help). The switch only opens the door; the website is what sends the data, and that’s what steps 2 and 3 cover.

Step 2: choose how to capture the data

With both the Google tag and Tag Manager you get three options:

MethodHow it worksWhen I use it
Automatic detectionThe tag scans the page for text that looks like an email, phone or addressTo get going quickly, with no developer
CSS selectors or JavaScript variablesYou point to the page element holding each fieldWhen the email shows on the confirmation page and I can’t touch code
CodeThe site passes the data to the tag explicitlyWhenever I have access to a developer

Google says it tactfully in its diagnostics help: if you use automatic detection, implementing manually with in-page code in your website tag or via the API may give you more benefit (Google Ads Help). In my experience, automatic detection works on a standard shop and fails on multi-step forms, thank-you pages that don’t display the email, or sites that render content with JavaScript. Is it worth the risk when the code is ten lines?

Step 3a: with the Google tag (gtag.js)

The code method means passing the data before the conversion fires. Values go in unhashed; the tag normalises and hashes them before sending:

gtag('set', 'user_data', {
  email: 'customer@example.com',
  phone_number: '+447700900000',
  address: {
    first_name: 'Anna',
    last_name: 'Smith',
    postal_code: 'SW1A 1AA',
    country: 'GB'
  }
});

Your developer swaps the sample values for the real order or form variables. Remove any field your site doesn’t collect: one clean email beats five half-empty fields.

If you’d rather hash the data yourself, Google documents the normalisation: trim leading and trailing whitespace, lowercase, phone in E.164, remove periods before the domain in gmail.com and googlemail.com addresses, and hash with hex SHA256 (Google Ads Help).

Step 3b: with Google Tag Manager

In Tag Manager, open your Google Ads Conversion Tracking tag, tick “Include user-provided data from your website” and create a “User-Provided Data” variable. Inside it you choose automatic collection, manual configuration (a DOM Element variable with a CSS selector per field) or code (a Custom JavaScript variable returning an object with email, phone_number and address) (Google Ads Help).

There’s a special case I see a lot on service websites: the form lives on one page and the conversion is counted on another, where the email no longer appears. For that, Google has the user-provided data event tag, with a Form Submission trigger on all forms. That way the data is captured on submit, even though the conversion is counted on the next page.

If you’re on Shopify, the Google app has its own enhanced conversions setting; I cover it in the Google Ads for Shopify guide.

How do you implement enhanced conversions for leads?

With two pieces that have to fit together: the tag captures the data on the form, and later you upload the CRM outcome with that same data.

Piece 1: the tag on the form. It’s the same setup as the previous section, applied to the form submission conversion. The tag sends the hashed email with the lead, so Google can match it later against what you import. The documentation frames it as “an upgraded version of offline conversion import that uses user-provided data” (Google Ads Help).

Piece 2: the import from your CRM. When the lead progresses (qualified, opportunity, sale), you upload that conversion with the email or phone, plus the GCLID if you have it. These days I do it one of two ways:

  • Data Manager, inside Google Ads, with direct connections to HubSpot, Salesforce, BigQuery and other sources. Google calls it the mission control centre for connecting online and offline data (Google Ads Help). For most small and mid-sized businesses it’s the right choice: no code and no maintenance.
  • The Data Manager API, for custom integrations. It replaces Google Ads API uploads from June 2026 and lets you send audience and conversion data to several Google products in a single call (Google for Developers).

One mistake Google has turned into a diagnostics alert: uploading only the leads that have a GCLID. The official advice is to import all events with user-provided data, even if they don’t have a GCLID (Google Ads Help). That’s exactly the volume the classic import used to lose.

Which CRM stage to upload, and at what value, is a business decision rather than a technical one. I won’t repeat it here: it’s in the B2B offline conversions post I linked at the start.

Two technical constraints do narrow it down, though. The first is the window: with personal data you have 63 days, so if your sale takes longer to close, upload an earlier milestone, such as “opportunity created”, that lands inside it. The second is how you set up the action: Google stresses that configuring it correctly as primary (used for bidding) or secondary (observation only) is critical (Google Ads Help). A “qualified lead” imported as secondary gets measured but changes nothing in bidding.

For traffic from the European Economic Area, Google requires advertisers to collect end-user consent and pass it on in order to use its tags for measurement, personalisation and remarketing (Google Ads Help). To do that it added two parameters to consent mode:

ParameterWhat it controls, according to Google
ad_storageStorage related to advertising, such as cookies
analytics_storageStorage related to analytics, for example visit duration
ad_user_dataConsent for sending user data to Google for online advertising purposes (new)
ad_personalizationConsent for personalised advertising (new)

The definitions come from Google’s consent mode documentation. Enhanced conversions send exactly that: user data for advertising purposes. So my rule is simple: if ad_user_data is denied, no user data gets sent. A properly built Consent Mode takes care of it; a broken one doesn’t.

Three checks I always run:

  1. The default state is declared before any tag. Google warns that if the consent code runs out of order, the defaults won’t work (Google for Developers).
  2. The banner updates all four parameters, not just the two old ones. I still come across banners that only send ad_storage and analytics_storage.
  3. Basic or advanced, chosen on purpose. In basic mode, tags don’t load until the user interacts with the banner; in advanced mode they always load and, if consent is denied, send cookieless pings. Advanced mode gives you conversion modelling specific to your account rather than a general model (Google Ads Help).

None of this replaces your legal adviser’s view on which lawful basis applies. What I can tell you as a consultant is that I’ve never seen an enhanced conversions setup work well on top of a broken Consent Mode.

How do you check that enhanced conversions are working?

At two levels: the request in the browser, the same day, and the diagnostics report, from day two or three.

In the browser

Run a test conversion with Chrome DevTools open. In the Network tab, filter for “google”, find the conversion request and look for the em parameter with a hashed string as its value. If you see tv.1~em with nothing after it, the parameter is empty, usually because the data wasn’t available when the tag fired (Google Ads Help).

In the diagnostics report

In Goals > Summary, hover over the conversion action’s status and open its diagnostics. Google’s help says it takes about 48 hours before the report has data (Google Ads Help). Here’s what I look at:

MetricWhat it isWhat I’m looking for
CoverageConversions with user data divided by all conversions, over 7 or 30 daysClose to the share of conversions that actually ask for an email
Match rateHow much of the data sent Google manages to match”High” means above 15%; “Low” means 0 to 15%
UpliftExtra conversions attributed thanks to user dataOnly shown for the first 30 days after they start working
StatusExcellent, Good, Needs attention or No recent dataExcellent or Good; anything else comes with an alert to read

All of it comes from the tag diagnostics report help page. One useful caveat: alerts don’t show if the action has fewer than 20 conversions in 7 days. On small accounts, a clean report doesn’t mean everything works; the browser test counts for more. Leads have their own report, with alerts such as “Tag not firing on your website forms” or “No user-provided data matches” (Google Ads Help).

Common enhanced conversions implementation mistakes

This is what I find when I review accounts that “already have enhanced conversions”:

SymptomUsual causeFix
Setting on, coverage low or zeroNothing is sending the data from the siteBuild the capture in code or in Tag Manager
Empty tv.1~em in the requestThe email isn’t on the page where the conversion firesUser-provided data event tag on form submit
Lead import full of gapsOnly leads with a GCLID get uploadedUpload every event with an email or phone
Upload script stopped working over the summerStill using the Google Ads APIMigrate to Data Manager or its API
Enhanced conversions without consentBanner without ad_user_dataUpdate the banner and the default state

When the cause isn’t obvious, a measurement review is the first step of any Google Ads account audit, before touching a single bid.

When is it worth bringing in a specialist?

If you run a shop on a standard platform with a recent cookie banner, you or your developer can follow most of this guide in an afternoon. Where I usually come in is three cases: multi-step forms or forms inside third-party tools, CRM integrations that need migrating to Data Manager, and accounts where Smart Bidding has spent months optimising on an incomplete signal. In that last case, remember that changing the conversions your bidding uses sends it back into learning, as I explain in the Smart Bidding guide.

Those projects are part of my Google Ads consulting work: Google Tag Manager, Consent Mode, enhanced conversions for web and leads, and offline imports, with documented verification.

Frequently asked questions

Are Google Ads enhanced conversions GDPR compliant?

They can be, as long as you have a lawful basis for processing the data, explain it in your privacy policy and respect user consent. In the European Economic Area that means a Consent Mode that passes ad_user_data. The data travels hashed with SHA256, but hashing isn’t the same as anonymising: the legal call is your adviser’s, not Google’s or mine.

What’s the difference between enhanced conversions and offline conversions?

Enhanced conversions for web add user data to a conversion that already happens on your site. Offline import uploads conversions that happen elsewhere, in your CRM. Enhanced conversions for leads join the two: they capture the email on the form, and you then import the outcome with that email, with or without a GCLID.

Does GCLID offline conversion import still work?

Yes. Google keeps the GCLID and recommends including it in uploads when you have it. What’s changed is the channel: since 15 June 2026, API uploads go through the Data Manager API, and file uploads are listed as a legacy option. For a new setup, Google recommends starting with enhanced conversions for leads.

How long until enhanced conversions show results?

You can check the request with the em parameter the same day. The diagnostics report has data within about 48 hours, and the match rate updates within 24 hours. Conversion uplift is measured over the 30 days after they start working.

Do I need to do anything if I already had enhanced conversions for web?

Not in Google Ads: existing accounts were migrated to the single web and leads setting automatically. What’s worth checking is that your site really sends the data (the coverage figure in diagnostics tells you) and that the report shows no alerts.

Measure better before you bid better

Enhanced conversions don’t make your campaigns sell more on their own. They let Google see more of what you already sell, and with that signal Smart Bidding makes better decisions. My order never changes: consent built properly, tag sending data, CRM import connected and, only after that, bidding changes.

If you’d like a second pair of eyes on your setup, or you’ve got an integration waiting to move to Data Manager, book a 30-minute call and we’ll go through it on your account.

Sources

  1. Google Ads Help. About enhanced conversions for leads. support.google.com/google-ads/answer/15713840
  2. Google Ads Help. About offline conversion imports. support.google.com/google-ads/answer/2998031
  3. Google Ads Help. Offline conversion imports FAQs. support.google.com/google-ads/answer/10029210
  4. Google Ads API. Manage offline conversions. developers.google.com/google-ads/api/docs/conversions/upload-offline
  5. Google Ads Help. Building a strong measurement foundation. support.google.com/google-ads/answer/15796388
  6. Google Ads Help. Set up enhanced conversions for web using the Google tag. support.google.com/google-ads/answer/13258081
  7. Google Ads Help. Set up enhanced conversions for web using Google Tag Manager. support.google.com/google-ads/answer/13262500
  8. Google Ads Help. About enhanced conversions. support.google.com/google-ads/answer/9888656
  9. Google Ads Help. About the enhanced conversions for web tag diagnostics report. support.google.com/google-ads/answer/11956168
  10. Google Ads Help. About the enhanced conversions for leads diagnostics report. support.google.com/google-ads/answer/15249267
  11. Google for Developers. Data Manager API. developers.google.com/data-manager/api
  12. Google Ads Help. Updates to consent mode for traffic in European Economic Area (EEA). support.google.com/google-ads/answer/13695607
  13. Google for Developers. Consent mode overview. developers.google.com/tag-platform/security/concepts/consent-mode
  14. Google Ads Help. About consent mode. support.google.com/google-ads/answer/10000067
  15. Google for Developers. Set up consent mode on websites. developers.google.com/tag-platform/security/guides/consent
  16. Google Ads Help. Updates to your enhanced conversions settings. support.google.com/google-ads/answer/16884284
  17. Google Ads Help. Troubleshoot offline conversion import errors. support.google.com/google-ads/answer/13321563
  18. Google Ads Help. Set up offline conversion imports. support.google.com/google-ads/answer/7012522
  19. Google Ads Help. Upgrade offline conversion import to enhanced conversions for leads. support.google.com/google-ads/answer/14274408
Lionel Fenestraz — Freelance Google Ads & Meta Ads Consultant
Lionel Fenestraz
Freelance PPC & CRO Consultant · Google Partner · CXL Certified · Google Ads Search Certified
7+ years managing Google Ads and Meta Ads for vacation rental, B2B and ecommerce. Trilingual ES/EN/FR.

Free first call

Could your ad campaigns
perform better?

30 minutes to review your situation and tell you exactly what I would change. No pitch, no sales proposal.

Book a call → 30 min · Google Meet · No commitment