A B2B advertiser opens the CRM's last touch revenue report and sees Google Ads credited with zero closed deals for the quarter. Sales can name a dozen customers who first arrived through a search ad. Both teams look at the same accounts, but each system only knows what it was told. That gap is what enhanced conversions for leads is built to close.
Google Ads has the same blind spot in reverse. If the only conversion it sees is a form fill, Smart Bidding learns to buy form fills. It cannot tell a student downloading a whitepaper apart from a buyer with a signed budget. Enhanced conversions for leads sends what happened to each lead in your CRM back to Google Ads, matched on hashed lead data, so bidding learns from qualified leads and revenue instead of raw submissions.
This guide covers how it works, how it compares to classic offline conversion tracking with GCLIDs, how to set it up, and the mistakes that break it after launch. It reflects Google's documentation as of October 2026, including the June 2026 move of conversion uploads to the Data Manager API.
What enhanced conversions for leads is
Enhanced conversions for leads is a Google Ads feature that matches offline conversions, such as a qualified lead or a closed deal in your CRM, to the ad click that started them. It uses first party data the lead gave you on your website, usually an email address or phone number, hashed with SHA-256 before it is sent. Google describes it as an upgraded version of offline conversion import.
How the matching works
A visitor submits your form
The Google tag picks up the email address or phone number from the form, hashes it and sends it to Google together with the click ID.
Your CRM stores the lead
The lead lands in HubSpot, Salesforce or whichever CRM you use, with the same email address and, ideally, the GCLID.
The lead moves through your pipeline
Sales qualifies it, holds a demo, wins or loses the deal. Each stage you care about can become a conversion event.
You import the outcome
You upload the event with the hashed email address and the GCLID when you have it. Google matches it to the original form submission and to signed in Google users who engaged with your ad, then records the conversion against the right campaign, keyword and click date.
Because the match runs on hashed user data as well as the click ID, it still works when the GCLID gets lost on the way to the CRM. That happens more often than most teams expect: redirects that strip URL parameters, forms hosted on another domain, leads that come back days later on a different device.
Offline conversion tracking: GCLID import vs enhanced conversions for leads
Offline conversion tracking in Google Ads used to mean one method: store the GCLID with each lead, then upload it with the conversion. That method still works, but Google now labels it a legacy feature and recommends enhanced conversions for leads for new setups and for upgrading existing imports. Here is what changes in practice.
| Dimension | GCLID import | Enhanced conversions for leads |
|---|---|---|
| Match key | GCLID stored with the lead | Hashed email or phone, plus the GCLID when available |
| Upload window | Up to 90 days after the click | Up to 63 days after the click |
| Website changes | Hidden form field and script to store the GCLID | Google tag or Tag Manager set to collect form data |
| Lost click IDs and cross device | Conversion is lost | Can still match on hashed data |
| External attribution credit | Supported | Not supported, uses a Google attribution model |
| Google's status | Legacy | Recommended |
Two changes from 2026 matter if you already run imports. Since April 2026, enhanced conversions for web and for leads share a single on/off setting, and existing accounts were migrated automatically. Since June 15, 2026, offline conversion uploads and enhanced conversions for leads uploads run through the Data Manager API, and the old upload method in the Google Ads API is blocked for developer tokens without legacy access. If a custom script or an older integration pushes your conversions, check that it still does.
Keep sending GCLIDs
Enhanced conversions for leads builds on your existing import. Google recommends including the GCLID whenever you have it, and requires it if you do not use a tag to collect user provided data. Send every event you have, whether it carries a GCLID, hashed data or both.
Why offline conversion data changes how Smart Bidding spends
Smart Bidding optimizes toward whatever you mark as a primary conversion. If that is a form submission, every submission counts the same, and the algorithm finds the cheapest people who fill in forms. In lead generation that usually means more volume from people who never buy: job seekers, students, competitors and bots that get past the captcha.
In the B2B accounts I manage, the pattern repeats. Cost per lead looks healthy in Google Ads, sales complains about lead quality, and nobody can show which campaigns produce pipeline. Once qualified leads and won deals flow back as conversions, the discussion moves from cost per lead to which campaigns produce customers. Budget decisions get a lot easier from there.
Choose the funnel stage you optimize for
You do not have to jump straight to closed revenue. Most teams import several stages as separate conversion actions and pick one of them as primary.
| Stage | Volume | Signal quality | Good primary goal when |
|---|---|---|---|
| Form submission | High | Low | You have no CRM feedback yet |
| Marketing qualified lead | Medium | Medium | Deals are few and sales cycles are long |
| Sales qualified lead or demo held | Lower | High | Volume is steady enough for bidding to learn |
| Closed won with value | Lowest | Highest | You close enough deals and want value based bidding |
A practical rule: optimize for the deepest stage that still gives Smart Bidding a steady stream of data, and keep the other stages as secondary actions so they stay in your reports. If you add values per stage, you can move to value based bidding in Google Ads later.
How to set up enhanced conversions for leads
The setup has two halves: capture hashed lead data on your website, then import outcomes from your CRM. Plan for a validation period of several weeks before you let the new data steer bidding.
Check the basics
Auto tagging on, the Google tag or Google Tag Manager on every page, and consent mode in place if you serve users in the EEA or UK. If your standard tracking is shaky, fix that first with our Google Ads conversion tracking setup guide.
Turn it on and accept the customer data terms
In Google Ads, go to Goals, Conversions, Settings. Expand Enhanced conversions for leads, tick the box, choose Google tag or Google Tag Manager and agree to the customer data terms.
Capture the lead data on your forms
Configure the tag to pick up the email address, and the phone number if you collect it, when the form is submitted. Tag Manager can read it from the form fields or a data layer variable. Test with a real submission and check the enhanced conversions diagnostics in Google Ads.
Store the email and GCLID in your CRM
Add a hidden field for the GCLID if you do not have one, and make sure both values survive into the contact or deal record. In practice this is the step that breaks most often.
Pick an import method
Google Ads Data Manager has connectors for CRMs including HubSpot and Salesforce. Zapier works for simpler setups. Custom integrations now go through the Data Manager API. Scheduled file uploads remain possible, but the data has to be normalized and hashed before upload.
Validate before you switch bidding
Create the new conversion action as secondary and let it run for one to two conversion cycles or about four weeks. Compare its counts with your CRM. Then make it primary, set the old form fill action to secondary and revisit your CPA or ROAS target, because conversion volume and cost per conversion will shift.
Upload frequency matters for bidding too. Google recommends uploading at least daily, or on a fixed schedule such as every two days if daily is not possible. Irregular batches make the conversion lag look erratic, and Smart Bidding reacts to that.
Mistakes that break offline conversion tracking
Most offline conversion setups break a few months after launch, usually after a form change, a CRM migration or an expired connection, and nobody notices until the monthly review. These are the issues I run into most:
- arrow_forwardWrong normalization before hashing. Trim and lowercase email addresses before SHA-256 hashing, and format phone numbers to E.164. For Gmail addresses Google also expects dots and plus suffixes removed. A different hash will never match.
- arrow_forwardUploading too late. Enhanced conversions for leads accepts conversions up to 63 days after the click, GCLID imports up to 90 days. With long sales cycles, import an earlier stage such as a qualified lead so the click is still in range.
- arrow_forwardTime zone errors. A conversion time without the right time zone can land before the click, and Google rejects it. Set the time zone explicitly in every upload.
- arrow_forwardConversion name mismatches. The conversion action name in the upload must match Google Ads exactly, capitals included.
- arrow_forwardAltered GCLIDs. Click IDs are case sensitive. A CRM field or spreadsheet that changes capitalization breaks the match.
- arrow_forwardSwitching the primary goal without adjusting targets. When the primary action moves from form fills to qualified leads, cost per conversion goes up by design. Keeping the old target CPA starves the campaign.
- arrow_forwardExpecting external attribution. Enhanced conversions for leads does not accept fractional credit from your own model. Keep that in your reporting layer; our overview of marketing attribution models explains the options.
How to check your offline conversions keep flowing
Once it runs, offline conversion tracking needs a short, regular check. Three things tell you most of what you need to know:
- checkImported conversions per day. A day with zero uploads after weeks of steady volume almost always points to a broken integration. Sales rarely drop to zero overnight.
- checkCRM count against Google Ads count. Compare paid search qualified leads in your CRM with the matching conversion action in Google Ads every week. Some gap is normal because not every lead matches. A gap that suddenly widens means something changed.
- checkDiagnostics in Google Ads. The enhanced conversions diagnostics report flags low match rates and tag issues. Check it after every form or website change.
This is the kind of admin aubado is built to take off your plate. Our Pixel Organizer app, currently in development, is designed to detect broken pixels, missing events and data gaps across your pixels and offline CRM conversions, so you hear about a stalled import the day it happens instead of at month end. Together with the Google Ads app that shows whether your campaigns are on track, it turns this check into a one minute look each morning.
If that sounds useful, join the waitlist for early access.
The same idea on Meta and LinkedIn
Google is not the only platform that bids on what you feed it. Meta accepts CRM events through its Conversions API, and LinkedIn has its own Conversions API with CRM integrations. The principles carry over: send the deepest funnel stage with enough volume, include hashed contact details for matching, upload on a steady schedule and watch for gaps. If you run paid media on several channels, set up the CRM feedback loop on each of them. Otherwise you compare platforms that optimize for different things, and the one counting form fills will always look cheapest. Our guide to first party data strategy for paid advertising covers the wider picture.
Frequently Asked Questions
Know when your conversion data stops flowing
aubado is a set of small apps that check your ad accounts for you, from budget pacing to Google Ads performance, with tracking checks on the way. Check once a day, then get back to the work you were hired to do.
Related Resources
Value Based Bidding in Google Ads
How to optimize for revenue once your conversion values are reliable.
GuideGoogle Ads Conversion Tracking Setup
The tracking foundation offline conversions build on.
GuideMarketing Attribution Models
How each model credits your channels, and where they disagree.
Share this article