Why don't my imported offline conversions show up in Google Ads?
Usually because Google accepted the upload but couldn't match it: the click is over 90 days old, the time zone is off, or the GCLID is from another account. Matched conversions also report on the click date, not the upload date, and a secondary action counts only in "All conversions." Start with the conversion action's offline data diagnostics, which list errors whatever import method you use. What changed in 2026: new API uploaders must use the Data Manager API (since June 15), and enhanced conversions for web and leads became one setting.
As of October 2026.
What changed
Google's matching rules and their error messages are in the table under "What to do now." What changed in 2025 and 2026 is how uploads reach Google and how errors come back.
| Before | Now | |
|---|---|---|
| Uploading by API | Any developer could send offline conversions with the Google Ads API (UploadClickConversions) | Since June 15, 2026, only developers who were already uploading keep that route. New adopters get CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE. Google calls the Data Manager API "the primary API for importing offline conversions" |
| Problems with optional fields (Data Manager API) | No field-level warnings in the response | Since a release Google announced on July 30, 2026, the request succeeds and returns field_warnings. A bad required field still fails the whole request |
| Where enhanced conversions data can come from | One method: the Google tag, Google Tag Manager or the API | Since April 2026, tags, Data Manager and API connections at the same time |
| Enhanced conversions setting | Separate settings for web and for leads | Since June 2026, one on/off switch. Existing users who agreed to the customer data terms moved over automatically |
| Google Ads API field | Customer.enhanced_conversions_for_leads_enabled | Customer.enablement_setting and Customer.effective_enablement_setting (v26, October 14, 2026) |
| File and spreadsheet uploads | File import in Google Ads | Google now labels file import "legacy" and points you to Data Manager. Enhanced conversions for leads "only supports Google Ads Data Manager files" |
| Salesforce and HubSpot | Legacy Salesforce integration | Legacy support ended May 31, 2025. Data Manager's Salesforce and HubSpot connectors import the last 14 days on the first run, then only changes since the last run |
Google's pages give three slightly different windows for who kept Google Ads API access; our guide to the Data Manager API compares them.
The biggest source of confusion is what "success" means. Google says that even after a successful upload, "you still may not find all the uploaded conversions reflected in your conversion reporting." The Data Manager API docs say a successful response means the request "was accepted for processing" and "doesn't indicate whether the records in the request were successfully processed." Matching results show up later, in diagnostics.
Who it affects
- Anyone importing conversions from clicks, by API, Data Manager (Google Sheets, SFTP, BigQuery, HubSpot, Salesforce and others), a legacy file upload or Zapier.
- Developers new to offline uploads. Since June 15, 2026, they have to use the Data Manager API, which works differently from the Google Ads API.
- Enhanced conversions for leads users. If you upload all your leads, the ones that didn't come from a Google ad show an "Unknown click" error. Google says that's expected; only the Google-attributed share counts. If every row shows it, Google says your setup likely has a problem, so check that your site captures the user-provided data. The upload window is 63 days after the last click, not 90.
- Accounts with manager-level conversion tracking. Upload from the manager account. Google says only client accounts opted in to manager-level conversion measurement are affected.
If you only track online conversions with the Google tag, none of this applies. Some advertisers on Reddit report fewer matches for uploads without a GCLID since April 2026. That's an unexplained report: Google hasn't published a matching change that explains it. If you see it, check that enhanced conversions is on and your customer data terms are accepted.
What to do now
- Open offline data diagnostics. On the Conversion summary page, hover over the offline data quality in the status column of the conversion action, then select Go to diagnostics. "Needs attention" means under 70% of your data is well-formed and valid; "No recent data" means nothing arrived in 28 days. The History panel shows the last 7 days or the last 7 upload jobs, with errors for each.
- If you use Data Manager, go to Data Manager, select the data source under "Connected products" and choose View details on its status to see row errors. Google says to contact support if "Data import failed" lasts more than 3 days.
- If you use the Data Manager API, wait 30 minutes after each request, then call
RetrieveRequestStatuswith itsrequest_iduntil each destination showsSUCCESS,PARTIAL_SUCCESSorFAILURE(the REST reference calls the last oneFAILED). Google says this processing can take up to 24 hours. Comparerecord_countwith what you sent. - Look in the right place. Conversions are reported on the click date, so set the date range to cover your click dates. Add "Conversions (by conv. time)" or "All conv. (by conv. time)" to compare with your CRM. Google Ads doesn't report by upload date. Also check time zone differences between your file and the account.
- Check the column. A secondary action reports only in "All conversions" and isn't used for bidding.
- Give it time. Google's pages differ on how long processing takes: "about 3 hours" on its guidelines page, "typically less than 12 hours" (up to 72 hours for GBRAID and WBRAID) on its troubleshooting page, and 24 to 48 hours on its file import page. Wait 4 to 6 hours after creating a conversion action before uploading to it; uploads in that window might take 2 days to appear.
Why only some of my uploads count
The codes in this table are Data Manager API error reasons; their full names start with PROCESSING_ERROR_REASON_.
| What you see | Why | Fix |
|---|---|---|
"Identifiers or iOS URL parameters are too old" (EXPIRED_CLICK or EVENT_TOO_OLD) | The click is more than 90 days old, or older than the action's conversion window. For enhanced conversions for leads, the limit is 63 days | Upload more often, or import an earlier stage (such as a qualified lead) that happens inside the window |
"Invalid conversion times" (CONVERSION_PRECEDES_CLICK) | The conversion time is earlier than the click | Check the time zone first: put an offset or zone in every timestamp (for files, "Parameters:TimeZone=America/Chicago" or "-0500"; for the API, RFC 3339 such as "2025-06-10T15:07:01-05:00") |
| "Click too recent" | The click happened less than 6 hours ago | Retry after 6 hours |
"Wrong Google Ads account for clicks" (INVALID_OPERATING_ACCOUNT_FOR_CLICK) | The GCLID came from another account, or the conversion action name doesn't exist in this one, or its source isn't "Import from clicks" | Upload to the account that got the click. With cross-account tracking, upload at the manager level |
| "Conversion actions not active" | The account had no conversion actions at all when the click happened | Create an "Import from clicks" action before you collect GCLIDs; Google says otherwise "you won't be able to import your early conversions." Its pages don't say each click must come after that specific action was created |
| Fewer conversions than rows, with a "Repeat Rate" above 1 | The action counts "One" per ad interaction, so extra conversions from the same click are discarded | Use a separate action per funnel stage, or "Every" if repeats are real |
| Rows dropped as duplicates | Same GCLID, conversion name and time as an earlier upload | Give each real conversion its own timestamp |
| "Unknown clicks" on most rows | Normal for enhanced conversions for leads, unless it's every row | Check that your site captures email or phone and that hashing is right (lowercase, trimmed emails; E.164 phone numbers) |
DENIED_CONSENT or NO_CONSENT | Ad user data consent was denied (by the user or your account's default settings), or consent for Google's core platform services wasn't given | Check the consent you send and your account's consent settings; these rows can't count |
| BRAID rows rejected | One-per-click actions can't be used with GBRAID or WBRAID | Send those rows to an action that counts "Every" |
Uploaded conversions also go through spam filtering, and Google discards any it judges invalid. GCLIDs are case sensitive, so store them exactly as captured.
Can I fix conversions I uploaded to a secondary action?
Google's pages don't say whether conversions uploaded while an action was secondary move into "Conversions" when you switch it to primary. If you want bidding to use that action now, put it in a custom goal: Google says actions in a custom goal are used for bidding whether they're primary or secondary. Re-uploading the same GCLID, name and time won't add them again, because Google deduplicates that combination. If your Google Ads numbers still don't line up with other reports, see why Google Ads and GA4 conversion counts differ.
Dates to watch
| Date | What happens |
|---|---|
| May 31, 2025 | Support for the legacy Salesforce integration ends; Google says to move to Data Manager |
| April 2026 | Google Ads starts accepting user-provided data from tags, Data Manager and API connections at the same time |
| May 15, 2026 | Google announces the Data Manager API as the primary API for offline conversions |
| June 2026 | Enhanced conversions for web and leads become one on/off setting |
| June 15, 2026 | The Google Ads API stops accepting new offline conversion adopters |
| July 30, 2026 | Google announces field-level warnings in Data Manager API responses |
| September 9, 2026 | Developer tokens are sunset; Google says the offline conversion restriction stays in effect |
| October 14, 2026 | Google Ads API v26 adds the unified enhanced conversions fields |
| Not announced | When developers who kept Google Ads API access must stop using it for uploads |
Sources
- Fix discrepancies and errors in offline conversion imports - Google Ads Help, checked October 29, 2026
- About offline data diagnostics - Google Ads Help, checked October 29, 2026
- Offline conversion imports FAQs - Google Ads Help, checked October 29, 2026
- Guidelines for importing offline conversions - Google Ads Help, checked October 29, 2026
- Set up offline conversions using Google Click ID (GCLID) - Google Ads Help, checked October 29, 2026
- Import conversions from ad clicks into Google Ads using files (legacy) - Google Ads Help, checked October 29, 2026
- Changes to offline conversion uploads from client accounts - Google Ads Help, checked October 29, 2026
- Updates to your enhanced conversions settings - Google Ads Help, checked October 29, 2026
- About primary and secondary conversion actions - Google Ads Help, checked October 29, 2026
- Understand your conversion tracking data - Google Ads Help, checked October 29, 2026
- About conversion windows - Google Ads Help, checked October 29, 2026
- Legacy Salesforce integration for conversions upgrade FAQ - Google Ads Help, checked October 29, 2026
- Send events - Data Manager API, checked October 29, 2026
- Check request status and diagnostics - Data Manager API, checked October 29, 2026
- Method: requestStatus.retrieve - Data Manager API, checked October 29, 2026
- Format user data - Data Manager API, checked October 29, 2026
- Feature deprecations and unversioned changes - Google Ads API, checked October 29, 2026
- Changes to Offline Click Conversion Import Support in the Google Ads API - Google Ads Developer Blog, checked October 29, 2026
- Data Manager API updates: RemoveAllAudienceMembers method, ingestion field warnings, expanded address data - Google Ads Developer Blog, checked October 29, 2026
- Announcing v26 of the Google Ads API - Google Ads Developer Blog, checked October 29, 2026