A lead-gen team brought us this problem. Their offline conversion imports landed in Google Ads every day. Enhanced conversions for leads never showed anything, and Google support couldn’t say why. The cause is usually that the two features are checked in different places and need different things. This guide walks each cause in order: symptom, cause, check, fix.
This guide is part of our offline conversions series. For the full setup, see the enhanced conversions guide and the Google Ads offline conversion import guide.
Why imports work while enhanced conversions don’t
Google Ads has two diagnostics reports, and they answer different questions. Offline data diagnostics rates how well-formed and valid your uploaded rows are. The enhanced conversions for leads diagnostics report rates whether the whole enhanced conversions setup is active: the tag on your forms, the customer data it collects, and how your uploads match it. A clean GCLID upload can rate Excellent in the first report while the second says Urgent.
1 / 5
Google’s setup guide explains why the tag matters. When you import a lead, Google matches the hashed customer data to the same data collected on your website, such as the lead form, and to signed-in customers who engaged with your ad. Without the tag side, there is nothing on the website to match to.
How to read the enhanced conversions for leads diagnostics
- In Google Ads, open Goals, then Summary.
- Find the conversion action you upload leads to. If Google sees a problem, its status reads Check enhanced conversions.
- Hover over the status and click Go to diagnostics. The report opens filtered to that action.
- For every action at once, use the Diagnostics tab at the top of the Summary page.
The report gives each action one of four data quality levels:
- Excellent. The setup is active and fully optimized.
- Good. Active, with areas to improve, such as adding the Google tag on your website.
- Needs attention. Active, but with errors, such as missing information.
- Urgent. Not active. Google’s examples are tags not firing at all, or all tag pings missing personal data.
Each level comes with alerts, and each alert names a cause. The table maps them. Alerts use the past day of data, or the past 7 days when one day is too thin.
| Alert or symptom | Likely cause | Check | Fix |
|---|---|---|---|
| Improve performance with the Google tag | The Google tag may not fire on your site | Tag Assistant on the lead pages | Install the Google tag and set it to capture user data |
| Tag not firing on your website forms | The tag runs, but not on the lead form submit | Submit the form in Tag Assistant or GTM Preview | Turn on Form interactions, or fire the user-provided data tag on submit |
| Improve performance with Google tag user-provided data | The tag fires but captures no email or phone | Check the user data on the conversion event | Set up automatic, manual or code collection |
| Tag is missing user-provided data | Some fields are empty, or a selector fails on some pages or browsers | Test each form page on several browsers and devices | Switch to manual or code setup with stable IDs |
| No attempted imports | The tag works but no conversions are being imported | Data Manager connections and upload history | Fix the import route and its errors |
| Importing limited user-provided data | You only upload leads that have both a GCLID and customer data | Count rows without a GCLID in your export | Upload every lead with email or phone, with or without a GCLID |
| No user-provided data matches | Upload values don’t match what the tag collected | Normalization and hashing of the upload | Trim, lowercase, strip Gmail dots and plus suffixes, E.164 phone, then SHA-256 |
| Imports fine, no enhanced conversions alert at all | Enhanced conversions is off, or terms aren’t accepted | Goals, then Settings, then Customer data use | Turn it on and accept the customer data terms |
The causes, one by one
Work through these in order. The early ones are settings that take a minute to check. The later ones need your site, your CRM export or your upload code.
1. Enhanced conversions is off, or the customer data terms aren’t accepted
Symptom. GCLID imports report normally, and there is no enhanced conversions data or alert to read. In the API, uploads return CUSTOMER_NOT_ENABLED_ENHANCED_CONVERSIONS_FOR_LEADS.
Cause. Since April 2026, enhanced conversions for web and leads share one on/off setting, and Google moved existing users over automatically if they had agreed to the customer data terms (settings update). The terms gate the tag too. Google says that if the tag sees user-provided data for a destination that hasn’t accepted the terms, “the data will not be collected or processed by Google” (Google tag setup).
Check. In Goals, then Settings, expand Customer data use. Confirm Turn on enhanced conversions is checked and the customer data terms show as Accepted. Then open the conversion action itself, because Google lets you opt out of enhanced conversions per action.
Fix. Turn it on and accept the terms. If you can’t see the terms, a manager account tracks your conversions. Google says the terms must then be accepted from that manager account, and from any manager account that uploads on its behalf with cross-account tracking. Accepting them is a business decision for the account owner, so bring them in.
Older guides tell you to pick a method, such as Google Tag Manager or the Google Ads API. Google says those method choices go away with the single switch, and that Google Ads now accepts user-provided data from website tags, Data Manager and API connections at the same time.
2. The Google tag doesn’t collect user-provided data on the lead form
Symptom. Urgent, with Tag not firing on your website forms, Improve performance with Google tag user-provided data, or Tag is missing user-provided data. It’s the cause we check first when imports work: the upload is fine, but the website side was never set up.
Cause. Enhanced conversions for leads has two steps, per Google’s setup guide. Step 1 is the Google tag capturing hashed email or phone on the lead form. Step 2 is importing the same data with your offline conversions. If you started with GCLID imports, you may only have done step 2. Within step 1, these are the usual breaks:
- Form interactions are off. In the Google tag settings, Google asks you to open Manage automatic event detection and enable automatic collection for Form interactions.
- Automatic collection can’t see the data. In Google Tag Manager, the User-Provided Data variable has three types: Automatic, Manual and Code. Google says automatic collection can’t collect phone numbers, and to use manual or code setup if you need control over where inputs are collected.
- The form lives in an iframe or a third-party tool. Google says these forms may need the code method, calling the Google tag from your own JavaScript.
- The data isn’t there when the tag fires. If the email was entered on an earlier page or inside an iframe, Google says it must be available in a variable or the data layer when the tag runs.
- A selector breaks. Google notes CSS selectors may not work on all browsers, or may behave differently on mobile and desktop. It recommends the element’s ID attribute, which changes less often.
- Another tag fires first. If the Google Ads User-Provided Data Event tag doesn’t receive input, Google suggests setting Wait for Tags on the Form Submission trigger.
Check. See how to check the tag on a live form below.
Fix. With the Google tag on the page, the code method looks like this. You can pass raw values: Google says it normalizes and hashes them before they reach its servers.
<script>
// Run on form submit, after the visitor has typed their details
gtag('set', 'user_data', {
email: leadEmail, // raw is fine; the tag normalizes and hashes it
phone_number: leadPhone // E.164, such as +18005550199
});
gtag('event', 'form_submit', { send_to: 'AW-CONVERSION_ID' });
</script>If you pre-hash, Google’s keys are sha256_email_address and sha256_phone_number, with hex SHA-256.
3. The upload has no hashed email or phone
Symptom. Uploads succeed and conversions are attributed, but only through GCLID. Or the report shows Importing limited user-provided data.
Cause. A GCLID-only upload is plain offline conversion import. Enhanced conversions for leads needs at least one of email, phone or address in each upload row. Two variants are common:
- The upload still uses a legacy file. Google’s import guidelines say enhanced conversions for leads only supports Google Ads Data Manager files, and legacy file setups need to upgrade to Data Manager.
- Only leads with a GCLID are exported. Check whether your CRM export filters on the click ID. Google says to import all events that have user-provided data, even without a GCLID.
Check. Open a recent upload or the Data Manager column mapping. Confirm email or phone is mapped, and that rows without a GCLID are included.
Fix. Upload every lead with email or phone. Keep sending the GCLID when you have it: Google says it is required if you don’t use a tag to collect user-provided data, and recommended either way. If you capture the GCLID yourself for the CRM, our default is a first-party cookie set from your own tracking domain, such as a server-side Google Tag Manager container on sgtm.example.com. Google recommends serving that container from the same origin as your site, because cookies it sets need the two to share a domain (custom domain guide). The server-side tagging guide covers the setup.

4. Hashing or normalization doesn’t match
Symptom. No user-provided data matches. In the API, most rows return CLICK_NOT_FOUND. In the UI, almost every row shows Unknown clicks.
Cause. Google compares hashes, so one extra space or a capital letter produces a different hash. Some unmatched rows are normal, because you upload organic leads too. Google says to treat CLICK_NOT_FOUND as a warning unless it hits most of your conversions (API troubleshooting).
Check. Take one lead you know came from a Google ad. Hash its email the way your pipeline does and compare it with a correct hash of the same value.
Fix. Before hashing, Google asks you to:
- Remove leading and trailing spaces.
- Convert the text to lowercase.
- Format phone numbers in E.164: a plus sign, the country code, and no dashes, brackets or spaces.
- For gmail.com and googlemail.com addresses, remove the periods before the @, and remove any plus sign and everything after it up to the @.
- Hash with SHA-256. The Google Ads API wants a lowercase hex string. Don’t hash country, state, city or ZIP code.
Data Manager in Google Ads normalizes and hashes unhashed values for you (data preparation guide), which removes one place for this to go wrong. Google also lists a rarer cause: if the uploading account differs from the account that owns the conversions, the uploader may have accepted the terms while the owner has not.
5. The upload goes to the wrong conversion action
Symptom. API errors INVALID_CONVERSION_ACTION_TYPE or NO_CONVERSION_ACTION_FOUND. In the UI, Wrong Google Ads account for clicks.
Cause. Enhanced conversions for leads needs an Import from clicks action, type UPLOAD_CLICKS in the API, that is enabled and owned by the account you upload to (Manage offline conversions).
Check. In Goals, then Summary, look at the Conversion source column for the action, and confirm which account owns it.
Fix. Create the action under Goals, then Summary: choose Conversions offline, add a data source, then select CRMs, files, or other data sources and Track conversions from clicks. Check Turn on enhanced conversions for leads when Google asks. In the API, don’t set custom_variables on conversions that carry user identifiers. Google says those are rejected.
6. A newer API integration is blocked
Symptom. CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE on UploadClickConversions. You may see it when a newer script or tool sends the leads upload while an older GCLID job keeps working.
Cause. From June 15, 2026, developer tokens with no offline conversion upload requests between December 17, 2025 and June 15, 2026 are restricted from offline uploads in the Google Ads API (deprecations). Google’s help pages say enhanced conversions for leads uploads moved to the Data Manager API with offline conversion import. Because the rule follows the developer token, two pipelines in one account can behave differently.
Check. Find which integration sends the leads upload and which API it calls.
Fix. Send leads through a Data Manager connection in Google Ads, or through the Data Manager API. Our offline conversion import guide covers each route.
7. Consent denies ad_user_data
Symptom. Enhanced conversions record for some regions or visitors and not others, or coverage is far lower than your form volume.
Cause. Google’s consent mode reference says ad_user_data is required for enhanced conversions. When it is denied, use of personal data for online advertising is disabled, including user-provided data. For uploads, Google highly recommends filling in the consent field, because leaving it empty may make conversions not attributable.
Check. In Tag Assistant, read the consent state at the moment the form is submitted. In your upload, check that the consent columns are filled.
Fix. Make sure your banner updates ad_user_data before the form submit event fires, and send the consent choice you recorded with each lead. The Consent Mode v2 explainer covers the mechanics.
8. It’s too early, or there are too few leads
Symptom. You changed the setup recently and the report hasn’t moved.
Cause. Google says imported conversion statistics take about 3 hours to show. Processing typically takes less than 12 hours, and up to 72 hours for GBRAID and WBRAID conversions. Leads uploaded more than 63 days after the last click are not imported. Google also says enhanced conversions are most helpful at 20 or more conversions a week, including organic ones.
Fix. Wait a few days after a change before judging it, and upload at least daily so leads stay inside the 63-day window.
How to check the tag on a live form
This takes about five minutes, and it settles cause 2 for good. From Google’s GTM guide:
- In Google Tag Manager, click Preview and enter your site’s URL. Tag Assistant opens your site.
- Fill out and submit your lead form.
- In the Tag Assistant summary, the Google Ads User-Provided Data Event tag should be under Tags Fired. If it is under Tags Not Fired, fix its trigger.
- Click the tag and check that it received the email or phone you typed.
- For a network check, open Chrome developer tools, tick Preserve log, and submit again. Look for a request to
google.com/pagead/form-data/with anemparameter. That parameter holds the hashed user data.
If you use the Google tag without Tag Manager, Google points to Tag Assistant from your Google Ads account. For GTM, it suggests preview mode, then the Variables tab of the conversion tag, where the Google Ads Enhanced Conversions object shows what was sent.
Decision checklist
Answer these in order. The first “no” is where to start.
- Is enhanced conversions turned on under Goals, then Settings, then Customer data use, and not opted out on this conversion action?
- Are the customer data terms accepted, from the manager account if one tracks your conversions?
- Does the conversion action show “Check enhanced conversions”? If so, what do its diagnostics say?
- Does the Google tag, or the GTM User-Provided Data Event tag, fire on the lead form submit?
- Does that event carry the email or phone the visitor typed, on every form, browser and device?
- Is ad_user_data granted when the form is submitted, and is consent filled in on your uploads?
- Does each upload row include hashed email or phone, including rows without a GCLID?
- Is the upload going through Data Manager or the Data Manager API, not a legacy file or a non-allowlisted API token?
- Is it normalized and hashed the way Google asks, with no custom variables on rows that carry user identifiers?
- Has it been a few days since the last change, with enough leads a week to read?
How this fits with the rest of your offline setup
Enhanced conversions for leads is one part of sending CRM outcomes back to ad platforms. Our guide to offline conversions compares match keys and upload windows across Google Ads, Meta, Microsoft, LinkedIn and TikTok. The enhanced conversions guide covers the tag setup for web and leads. Before you launch any change, run the tracking QA checklist.
A MetricMaven audit checks both sides of this: whether your tags collect user-provided data on your lead forms, and whether your CRM uploads carry it. To see what loads on your lead pages today, start with a Free Tracking Scan.
Get the next one before it hits.
Short emails when Meta, Google, GA4 or LinkedIn change something that moves your numbers.
Part of: Offline conversions
Also in Matching and match keys: Meta Conversions API deduplication: how pixel and server events are matched, Enhanced conversions in Google Ads: how web and lead setups work
Frequently asked questions
Why do my offline conversion imports work but enhanced conversions for leads don’t?
Because Google checks them in two places. Offline data diagnostics only says whether your uploaded rows are well-formed and valid, so GCLID imports can rate Excellent there. Enhanced conversions for leads also needs the Google tag to collect hashed email or phone on your lead form, the same data in your upload, and the setting turned on with customer data terms accepted. If any of those is missing, imports still land but enhanced conversions do not.
What does “Check enhanced conversions” mean in Google Ads?
It is the tracking status Google shows on a conversion action when it sees a possible problem with enhanced conversions. Hover over the status in Goals, then Summary, and click Go to diagnostics. The enhanced conversions for leads diagnostics report then shows a data quality rating and the alerts that explain it.
What do Excellent, Good, Needs attention and Urgent mean?
They are the four data quality levels in the enhanced conversions for leads diagnostics report. Excellent means the setup is active and fully optimized. Good means it is active with room to improve. Needs attention means it is active but has errors, such as missing information. Urgent means the setup is not active, for example the tag isn’t firing at all or every tag ping is missing user data.
Do I have to accept customer data terms for enhanced conversions for leads?
Yes. Google’s setup guide includes accepting the customer data terms under Goals, then Settings. The terms apply to the whole account, and if a manager account tracks your conversions, they must be accepted from the manager account. Google says the Google tag will not collect or process user-provided data for a destination that has not accepted the terms.
Why do most of my uploaded leads show “Unknown clicks” or CLICK_NOT_FOUND?
Some is expected. With enhanced conversions for leads you upload every lead, including organic ones, so only part of them match a Google Ads click. If all or most rows show it, Google points to the setup: the tag isn’t capturing user-provided data on the form, the data wasn’t normalized and hashed correctly, or you uploaded to a different account than the one that owns the conversions.
Can I still upload enhanced conversions for leads through the Google Ads API?
Only from developer tokens that sent offline conversion uploads between December 17, 2025 and June 15, 2026. Others get CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE on UploadClickConversions. Google’s help pages say enhanced conversions for leads uploads moved with offline conversion import, so use Data Manager in Google Ads or the Data Manager API instead.
How long until enhanced conversions for leads data shows up?
Google says imported conversion statistics take about 3 hours to show, and processing typically takes less than 12 hours, up to 72 for GBRAID and WBRAID conversions. The diagnostics alerts use the past day of data, or the past 7 days when one day is too thin. Google also says enhanced conversions are most helpful at 20 or more conversions a week.
Does consent mode affect enhanced conversions for leads?
Yes. Google’s consent mode reference says ad_user_data is required for enhanced conversions, and when it is denied, use of user-provided data for online advertising is disabled. For uploads, Google highly recommends filling in the consent field, because leaving it empty may make conversions not attributable.
Sources and references
- Google Ads Help: About the enhanced conversions for leads diagnostics report
- Google Ads Help: Configure the Google tag for enhanced conversions for leads
- Google Ads Help: Configure Google Tag Manager for enhanced conversions for leads
- Google Ads Help: About enhanced conversions for leads
- Google Ads Help: Updates to your enhanced conversions settings
- Google Ads Help: Set up enhanced conversions for web using the Google tag
- Google Ads Help: Guidelines for importing offline conversions
- Google Ads Help: Fix discrepancies and errors in offline conversion imports
- Google Ads Help: About offline data diagnostics
- Tag Manager Help: Consent mode reference
- Google Ads API: Troubleshooting conversions
- Google Ads API: Manage offline conversions
- Google Ads API: Deprecations and restrictions
- Google Ads Data Manager Help: Prepare your data for import
- Data Manager API: Google Ads offline conversions overview
- Google Tag Manager: Map server-side tagging to a custom domain
