Last month I was auditing a B2B services company spending EUR 12,000 per month on Google Ads. They had offline conversion imports running -- GCLIDs captured in HubSpot, a weekly CSV upload to Google Ads. On paper, the pipeline was connected. In practice, their match rate was 38 percent. More than six out of ten closed deals never made it back to the campaign that generated them. Smart Bidding was optimizing on a fraction of the real data, and the marketing director was about to cut the budget because "Google Ads doesn't generate pipeline."
The problem was not the campaigns. It was the measurement layer. The fix took about three hours: enabling enhanced conversions for leads so Google could match on hashed email addresses alongside the GCLID. Within four weeks, the matched conversion count nearly doubled, and tCPA bidding started pulling the cost per qualified lead down by 19 percent.
What Enhanced Conversions for Leads Actually Does
Standard offline conversion imports rely on the GCLID -- a click identifier stored in a first-party cookie. You capture it when a prospect submits a form, park it in your CRM, and upload it back to Google Ads when the deal closes. The problem is that GCLIDs break constantly. Safari ITP caps first-party cookies at seven days. Users switch devices. Consent banners suppress tracking scripts. By the time your sales team closes the deal, the GCLID is often gone.
Enhanced conversions for leads adds a second matching path. Instead of relying solely on the GCLID, you also capture the user's email address (or phone number) at the point of form submission and send it -- SHA-256 hashed -- to Google alongside your conversion data. Google matches that hash against signed-in Google accounts to attribute the conversion back to the original ad click, even when the cookie is long gone.
The result: more conversions matched, more signal fed to Smart Bidding, better allocation of spend. That is the core value of Google Ads enhanced conversions for leads -- it turns your CRM into a feedback loop that the algorithm can actually learn from.
Enhanced Conversions vs Enhanced Conversions for Leads
These are two distinct features, and I see them confused constantly. Here is the short version:
| Feature | Conversion happens | Data source |
|---|---|---|
| Enhanced conversions (for web) | On your website (purchase, sign-up) | User-provided data captured at conversion time by the tag |
| Enhanced conversions for leads | Offline, in your CRM (deal closed, contract signed) | Hashed user data uploaded from your CRM alongside conversion data |
If you sell online and the transaction completes on your site, you need enhanced conversions for web -- I cover the full setup in my Google enhanced conversions guide. If your leads convert online but the real revenue event happens offline -- the typical B2B pattern -- you need enhanced conversions for leads. Many companies need both.
Why an Advertiser Would Use Enhanced Conversions for Leads
The strategic case boils down to three things.
1. GCLID-only imports lose too much signal. Cookie restrictions, device switching, and consent gaps mean that a pure GCLID-based offline import will miss a significant share of conversions. When I audit B2B accounts, I typically see GCLID match rates between 35 and 55 percent. Adding hashed email as a second identifier pushes those rates considerably higher.
2. Smart Bidding needs real outcomes, not proxy metrics. If you are feeding Google only form submissions, you are optimizing for volume, not quality. I have written about this problem at length in my B2B conversion tracking guide -- companies end up with cheap leads that never close. Enhanced conversions for leads lets you send back the actual business outcome (MQL, SQL, closed-won), so the algorithm learns which clicks produce revenue.
3. The 90-day upload window is not negotiable. Google Ads accepts offline conversion uploads within 90 days of the click. For B2B sales cycles that stretch beyond that, you need to upload intermediate pipeline stages (MQL, opportunity created) before the window closes. Enhanced conversions for leads makes this more reliable because even if the GCLID expired weeks ago, the hashed email can still close the loop. I go deeper into this timing challenge in Marketing Measurement for Long B2B Sales Cycles.
How an Advertiser Can Set Up Enhanced Conversions for Leads
The setup has two halves: capturing hashed user data on your website, and uploading conversion data from your CRM with that same hashed identifier.
Step 1: Enable Enhanced Conversions for Leads in Google Ads
- Go to Goals > Settings in your Google Ads account.
- Expand the enhanced conversions section and turn on enhanced conversions for leads.
- Accept the customer data terms if you have not already.
- Select your implementation method: Google tag, Google Tag Manager, or the API.
Step 2: Capture Hashed User Data on Your Website
This is the piece most guides gloss over. When a user submits a lead form, you need your tag to capture the email address (or phone number) and send it to Google in hashed form. Google uses this as an anchor: it records the hashed email alongside the click event, so that when you later upload a conversion with the same hashed email, Google can tie the two together.
There are three ways to do this. Choose the one that matches your tagging setup.
Google Tag Manager is what most of the accounts I work with use. To set up enhanced conversions for leads with Google Tag Manager:
- Make sure you have a Conversion Linker tag firing on all pages.
- Create a data layer push on form submission that includes the user's email. Your data layer event should look something like:
dataLayer.push({
'event': 'generate_lead',
'user_data': {
'email': 'user@example.com'
}
});
- In GTM, create a new tag of type Google Ads User-Provided Data Event. Map the email variable from your data layer to the tag's user-provided data fields.
- Set the trigger to fire on your form submission event.
- Publish and verify in Tag Assistant that the user-provided data event fires correctly.
Google has a dedicated GTM setup guide for enhanced conversions for leads with the full field mapping.
Google tag (gtag.js) works if you manage the tag directly on your site. Pass user data before the conversion event:
gtag('set', 'user_data', {
'email': 'user@example.com'
});
The tag hashes the data automatically before sending.
Enhanced conversions for leads API is the route for high-volume or enterprise setups. The Google Ads API lets you upload conversion data programmatically with hashed user identifiers. I recommend this path when you have a mature data pipeline, a data warehouse, or need to enrich conversion data with revenue values before upload.
Important: as of June 15, 2026, Google is migrating offline conversion uploads from the Google Ads API to the Data Manager API. If you are building a new API integration now, build it against the Data Manager API directly.
Step 3: Upload Conversions from Your CRM
Once the website tag is capturing hashed emails alongside clicks, you need to close the loop by uploading conversion events from your CRM with the same hashed email. You have several options:
| Upload method | Best for |
|---|---|
| Google Ads UI (manual CSV) | Low-volume, testing |
| Zapier / native CRM integration | Mid-market, HubSpot or Salesforce users |
| Data Manager API | Enterprise, custom pipelines |
Whichever method you choose, the upload must include the hashed email (matching what the tag captured) and the conversion action, timestamp, and optionally a value. Google's offline conversion import guidelines cover the formatting requirements.
Step 4: Validate
After setup, check the enhanced conversions for leads diagnostics report in your Google Ads account. It shows match rates, tag health, and upload status. You want to see match rates climbing above 60 percent -- if they are stuck below 40 percent, your tag is likely not capturing the email correctly or the CRM upload is using a different email field than the one the prospect submitted.
Common Mistakes I See in Audits
Hashing mismatch. The website tag hashes the email one way (lowercase, trimmed, SHA-256). Your CRM export hashes it another way (with leading spaces or mixed case before hashing). The hashes do not match, and the conversion is lost. Always normalize to lowercase and trim whitespace before hashing.
Missing Conversion Linker tag. Without the Conversion Linker in GTM, enhanced conversions for leads cannot capture the click context it needs. This is a five-second fix that I find missing in roughly a third of the accounts I audit.
Uploading too late. Google Ads accepts uploads within 90 days of the click. If your sales cycle is longer, you need to upload an intermediate conversion action (like MQL or opportunity created) before the window closes. The final closed-won event can come later -- but there needs to be at least one conversion uploaded in time.
Not sending revenue values. If you upload conversions without a value, you cannot use value-based bidding (tROAS). Sending even an estimated deal value gives Smart Bidding dramatically better signal than a binary yes/no conversion.
What Changes in 2026
Google is unifying enhanced conversions for web and enhanced conversions for leads into a single on/off setting starting in June 2026. You will no longer need to choose a single implementation method -- Google Ads will accept user-provided data from website tags, Data Manager, and API connections simultaneously.
If you already have enhanced conversions for leads configured and have accepted the customer data terms, the migration is automatic. If you are setting this up for the first time, the unified flow is simpler: one toggle, multiple data sources.
The bigger change is the API migration. The legacy UploadClickConversions endpoint in the Google Ads API is being blocked for new adopters as of June 15, 2026. If your team or agency built a custom integration, confirm it is migrated to the Data Manager API now.
When to Bring in Help
Enhanced conversions for leads is not conceptually hard, but the implementation has real surface area: tag configuration, data layer architecture, CRM field mapping, hashing normalization, upload scheduling, and validation. When any one piece is misconfigured, the whole chain silently breaks and Smart Bidding keeps optimizing on bad data.
If you are spending meaningful budget on Google Ads for lead generation and you are not sure whether your offline conversions are actually feeding back correctly, that is the kind of problem I solve. My marketing measurement service starts with a full audit of your tracking chain -- from click to CRM to conversion import -- and ends with a working pipeline that gives Smart Bidding the data it needs.
FAQ
How can an advertiser set up enhanced conversions for leads?
Enable the feature in Google Ads under Goals, accept the customer data terms, then configure your website tag (Google tag or GTM) to capture hashed email on form submission. Finally, upload conversion events from your CRM with the same hashed email so Google can match offline outcomes back to ad clicks.
Why might an advertiser use enhanced conversions for leads?
Because GCLID-only offline conversion imports lose signal due to cookie expiration, device switching, and consent gaps. Enhanced conversions for leads adds hashed email as a second matching path, which recovers conversions that would otherwise be invisible to Smart Bidding and campaign reporting.
What is the difference between enhanced conversions and enhanced conversions for leads?
Enhanced conversions for web recover conversion data for transactions that happen on your website, such as purchases or sign-ups. Enhanced conversions for leads recover data for conversions that happen offline in your CRM, such as closed deals or qualified leads. The first captures user data at conversion time via the tag, the second matches it against data uploaded from your CRM.
Do I still need GCLIDs if I use enhanced conversions for leads?
You should still capture GCLIDs whenever possible because they provide the most direct match. Enhanced conversions for leads supplements GCLID matching with hashed email, so conversions can still be attributed when the GCLID is missing. Using both together gives you the highest match rate.
How long do I have to upload an offline conversion after the click?
Google Ads accepts offline conversion uploads within 90 days of the original click. If your sales cycle is longer, upload an intermediate conversion event such as MQL or opportunity created before the window closes. You can then upload later pipeline stages as separate conversion actions.
Not sure your offline conversions are actually reaching Google Ads? Get in touch -- I will audit your tracking chain from click to CRM and tell you exactly what is broken.