A corked glass bottle with a rolled note inside floating in shallow water

Offline conversions

Why don't my imported offline conversions show up in Google Ads?

By The Tofu team ·

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.

BeforeNow
Uploading by APIAny 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 responseSince 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 fromOne method: the Google tag, Google Tag Manager or the APISince April 2026, tags, Data Manager and API connections at the same time
Enhanced conversions settingSeparate settings for web and for leadsSince June 2026, one on/off switch. Existing users who agreed to the customer data terms moved over automatically
Google Ads API fieldCustomer.enhanced_conversions_for_leads_enabledCustomer.enablement_setting and Customer.effective_enablement_setting (v26, October 14, 2026)
File and spreadsheet uploadsFile import in Google AdsGoogle now labels file import "legacy" and points you to Data Manager. Enhanced conversions for leads "only supports Google Ads Data Manager files"
Salesforce and HubSpotLegacy Salesforce integrationLegacy 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

  1. 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.
  2. 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.
  3. If you use the Data Manager API, wait 30 minutes after each request, then call RetrieveRequestStatus with its request_id until each destination shows SUCCESS, PARTIAL_SUCCESS or FAILURE (the REST reference calls the last one FAILED). Google says this processing can take up to 24 hours. Compare record_count with what you sent.
  4. 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.
  5. Check the column. A secondary action reports only in "All conversions" and isn't used for bidding.
  6. 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 seeWhyFix
"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 daysUpload 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 clickCheck 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 agoRetry 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 happenedCreate 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 1The action counts "One" per ad interaction, so extra conversions from the same click are discardedUse a separate action per funnel stage, or "Every" if repeats are real
Rows dropped as duplicatesSame GCLID, conversion name and time as an earlier uploadGive each real conversion its own timestamp
"Unknown clicks" on most rowsNormal for enhanced conversions for leads, unless it's every rowCheck that your site captures email or phone and that hashing is right (lowercase, trimmed emails; E.164 phone numbers)
DENIED_CONSENT or NO_CONSENTAd user data consent was denied (by the user or your account's default settings), or consent for Google's core platform services wasn't givenCheck the consent you send and your account's consent settings; these rows can't count
BRAID rows rejectedOne-per-click actions can't be used with GBRAID or WBRAIDSend 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

DateWhat happens
May 31, 2025Support for the legacy Salesforce integration ends; Google says to move to Data Manager
April 2026Google Ads starts accepting user-provided data from tags, Data Manager and API connections at the same time
May 15, 2026Google announces the Data Manager API as the primary API for offline conversions
June 2026Enhanced conversions for web and leads become one on/off setting
June 15, 2026The Google Ads API stops accepting new offline conversion adopters
July 30, 2026Google announces field-level warnings in Data Manager API responses
September 9, 2026Developer tokens are sunset; Google says the offline conversion restriction stays in effect
October 14, 2026Google Ads API v26 adds the unified enhanced conversions fields
Not announcedWhen developers who kept Google Ads API access must stop using it for uploads

Sources

Ask Tofu next

Pick a question and Tofu Ads Agent answers it in chat.

Let an agent build your next campaign.

Tofu Ads Agent reads your CRM, plans the funnel, builds the audience and creative, and stages full campaigns across LinkedIn, Google and Meta for your approval.