Skip to content
Google Ads

Fix Offline Conversion Upload Errors in Google Ads

Roger McSaveney 28 February 2026 · 13 min read

You followed the instructions. Captured the GCLID. Built the spreadsheet. Uploaded the file. And Google Ads either threw an error you do not understand, or — worse — accepted the upload and showed zero conversions. You have spent two hours on something that was supposed to take twenty minutes.

Offline conversion upload errors are frustrating because they can happen at three different points in the pipeline: the click ID was never captured correctly, the upload file has formatting issues, or Google Ads accepted the data but cannot attribute it. Here is how to diagnose and fix each one.

Before You Blame Google: Check Your GCLID Capture

The most common reason offline conversion uploads fail is not a formatting error in your CSV — it is that the GCLID (Google Click Identifier) was never captured correctly in the first place. Before troubleshooting upload errors, verify that the data you are uploading is actually valid.

Check 1: Is auto-tagging enabled?

In Google Ads, go to Settings → Account Settings → Auto-tagging. If this is not turned on, no GCLID is appended to your ad URLs, and every upload will fail with “click can’t be found.”

Check 2: Is the GCLID surviving your WordPress site?

Click one of your own ads (or add ?gclid=test123 to your landing page URL). Then check:

  • Does the GCLID appear in the URL bar when the page loads? If not, a 301 redirect (www/non-www, HTTP/HTTPS, or trailing slash normalisation) may be stripping query parameters. This is a common WordPress and server configuration issue.
  • Navigate to two or three other pages on your site, then submit your form. Is the GCLID still stored? If not, your tracking does not persist the value through page navigation — which means any visitor who does not submit the form immediately on the landing page loses their GCLID.
  • Check the stored GCLID value. Is it the full string (GCLIDs can be lengthy strings (commonly 50-100+ characters)) or has it been truncated? Some form plugins limit hidden field values to 50 characters by default.

If any of these checks fail, the problem is upstream of the upload. See our guide on why your GCLID disappears between pages for the full diagnosis.

Other WordPress-specific causes of GCLID loss:

  • Caching plugins (WP Rocket, W3 Total Cache, LiteSpeed) serving stale pages without the GCLID parameter
  • AJAX form submissions that do not read URL parameters when submitting
  • Page builders (Elementor, Divi) with client-side navigation that drops URL parameters on internal page transitions
  • Embedded forms and iframes that cannot access the parent page URL due to browser security restrictions

Skip the hidden field headache: TrueConversion automatically captures and persists the GCLID (plus WBRAID, GBRAID, and UTM parameters) with every WordPress form submission — no hidden fields, no custom code, no parameters to lose. See how it works.

Upload Errors: What Each Message Means and How to Fix It

If your GCLID capture is solid and you are hitting errors during the actual upload, here are the most common messages and their fixes.

1. “The click for this conversion can’t be found”

What it means: Google cannot match the GCLID in your upload to any click in its system.

Common causes:

  • The GCLID is invalid or truncated. GCLIDs can be lengthy strings (commonly 50-100+ characters). If your form’s hidden field has a character limit (some WordPress form plugins default to 50), the GCLID gets cut off and becomes unmatchable.
  • The click came from an organic Google result, not a Google Ads click. Only paid clicks generate uploadable GCLIDs.
  • The GCLID was manually entered or copy-pasted incorrectly during testing.

Fix: Check that your form’s hidden field accepts at least 100 characters. Verify auto-tagging is enabled. If spam submissions are cluttering your data, filter them before uploading — spam forms often contain garbage GCLID values.

2. “This click is too old for its conversion to be imported”

What it means: The time between the ad click and your upload exceeds the allowed window — 90 days for GCLID-based uploads.

Fix: Upload more frequently. If your sales cycle routinely exceeds 90 days, upload an earlier-funnel conversion event instead — for example, “Qualified Lead” at the 2-week mark rather than “Closed Won” at the 4-month mark. You can create multiple conversion actions in Google Ads for different funnel stages.

Tip: The 90-day window is for standard GCLID-based uploads. The lookback window for your conversion action (configured in Google Ads) may be shorter — check your conversion action settings to see the actual window that applies.

3. “Conversion date precedes click date”

What it means: Your upload says the conversion happened before the ad was clicked, which is impossible.

Common cause: A timezone mismatch. Your Google Ads account is set to one timezone (e.g., US Eastern), but your conversion data uses a different timezone (e.g., UTC) without specifying the offset.

Fix: Always include an explicit timezone offset in your Conversion Time column. Use the format 2026-02-15 14:30:00-05:00 (for US Eastern) rather than just 2026-02-15 14:30:00. Note: PHP’s default date() function may output UTC. Use wp_date() in WordPress to get the site’s configured timezone, or always append the offset explicitly.

4. “We cannot find this conversion name in the target account”

What it means: The conversion action name in your CSV does not match any conversion action in your Google Ads account.

Common causes:

  • A typo, extra space, or capitalisation difference between your CSV and Google Ads
  • The conversion action’s source type is not set to “Import” — if it is set to “Website” or “App,” it will not accept uploaded data
  • You are uploading to the wrong Google Ads account in a multi-account (MCC) structure

Fix: Copy-paste the conversion action name directly from Google Ads into your CSV — do not retype it. Verify the source type is set to “Import from clicks.”

5. “We are still processing this click’s information”

What it means: You uploaded the conversion too soon after the click occurred. Google needs time to process click data before it can accept conversion uploads.

Fix: Wait at least 6 hours after the click before uploading. For scheduled uploads, build in a 12-24 hour buffer — upload data from 2+ days ago rather than from today.

6. Duplicate conversion rejected

What it means: Google has already recorded a conversion with the same combination of GCLID, conversion name, and conversion time.

Two distinct mechanisms are at play here:

  • Order ID deduplication: If you include an Order ID (transaction ID) column in your upload, Google uses it to prevent duplicates. Two rows with the same Order ID are considered the same conversion, regardless of other fields.
  • Counting setting: If your conversion action is set to count “One” conversion per click, Google only records the first conversion for each GCLID. If you intentionally want multiple conversions per click (e.g., tracking multiple products from the same lead), set counting to “Every.”

Fix: Deduplicate your CSV before uploading. If you need to re-upload a corrected row, change the Order ID or conversion time slightly.

7. CSV formatting and template errors

What it means: Your file structure does not match what Google Ads expects.

Common causes:

  • Wrong template. If your account has Enhanced Conversions for Leads (ECL) enabled, the standard GCLID upload template does not work. You need the enhanced template with user-provided data columns (hashed email, hashed phone). Download the correct template from Google Ads → Tools → Uploads.
  • Wrong date format. Google requires yyyy-MM-dd HH:mm:ss+/-HH:mm. Formats like “Feb 15 2026” or “15/02/2026” will be rejected.
  • Column headers do not match exactly. Extra spaces, different capitalisation, or renamed columns will cause the upload to fail.

Fix: Always download the template directly from Google Ads rather than creating your own. Copy-paste headers exactly.

8. Consent mode blocking attribution (silent failure)

What it means: The upload succeeds — no error message — but the conversions are not attributed to any clicks in your reports.

Since March 2024, Google requires consent signals for EU/EEA traffic. If your upload does not include consent fields (ad_user_data), conversions from European visitors may be accepted but never attributed.

The behaviour differs by upload method:

  • CSV upload via the Google Ads UI: May silently drop conversions that lack consent data — the upload appears successful but conversions do not appear in reports.
  • Google Ads API: Returns explicit consent-related error codes in API v15 and later, making the failure visible.

Fix: If you serve EU/EEA traffic, include consent fields in your uploads. In the Google Ads UI, go to Tools → Data Manager → Consent settings and configure your default consent status. If consent status is unknown for a specific upload, set it to “DENIED” rather than leaving it blank (blank may cause unexpected behaviour).

9. Cross-account or MCC attribution errors

What it means: You are uploading conversions to the wrong account in a multi-account (MCC) structure, or the conversion action is owned by a different account than the one receiving the upload.

Fix: Upload to the account that owns the conversion action. If you use cross-account conversion tracking (where conversion actions are managed at the MCC level), upload to the MCC account directly.

10. Auto-tagging disabled or GCLID stripped by redirects

What it means: No GCLID was ever appended to your ad URLs, or a redirect between the ad click and your landing page stripped it.

Fix: Enable auto-tagging (Settings → Account Settings in Google Ads). Audit your redirect chain — check for HTTP-to-HTTPS redirects, www/non-www redirects, and third-party click trackers that strip query parameters. Note that having manual UTM tagging enabled does not interfere with auto-tagging unless the “Allow manual tagging to override” setting is turned on.

“Upload Succeeded” But Conversions Do Not Appear

This is the most maddening scenario. Google Ads accepted your file with no errors, but your conversion count stays at zero. Here is what to check:

  • Processing delay. Uploaded conversions can take up to 72 hours to appear in reports. New conversion actions may take longer for the first batch. Do not panic until at least 3 days have passed.
  • Reporting by click date. Google Ads attributes offline conversions to the click date, not the upload date. If the click happened 45 days ago and you uploaded today, the conversion appears in reports for 45 days ago — not today. Check the correct date range.
  • Conversion counting. If your conversion action is set to “One,” only the first conversion per click is counted. Subsequent conversions from the same GCLID are silently ignored.
  • Conversion window. If the conversion happened outside your configured conversion window (e.g., your window is 30 days but the lead converted after 60 days), the conversion is accepted but not attributed.
  • Consent mode. As described in error #8 above — the upload may succeed but attribution may be blocked for EU/EEA traffic.

Tip: Check the Google Ads offline data diagnostics page (Tools → Uploads → click your upload → Diagnostics). This shows match rates, processing status, and specific row-level errors that the initial upload confirmation may not surface.

The WBRAID and GBRAID Problem

If a growing share of your leads show no GCLID at all, the issue may not be a capture failure. Visitors arriving from iOS devices via Safari or Google apps (YouTube, Gmail, Google Discover) often carry WBRAID or GBRAID parameters instead of GCLID. These are Google’s privacy-compliant click identifiers for Apple’s ATT framework.

The critical limitation: Google’s CSV upload does not support WBRAID or GBRAID. You cannot include these identifiers in a file upload through the Google Ads UI. Only the Google Ads API supports them.

For SMBs who have been uploading conversions via CSV, this means a growing segment of your Google Ads traffic — all iOS Safari users — cannot be attributed through your existing upload method.

Workaround: Use Enhanced Conversions for Leads (ECL), which matches on hashed email addresses rather than click identifiers. ECL works regardless of whether the visitor arrived with a GCLID, WBRAID, or GBRAID. See our offline conversion tracking guide for setup options.

Diagnostic Checklist: Before Your Next Upload

Work through these steps in order before uploading:

  1. Is auto-tagging enabled in your Google Ads account?
  2. Click your own ad — does the GCLID appear in the landing page URL?
  3. Navigate to another page and submit a test form — is the GCLID captured and stored?
  4. Is the stored GCLID the full string (not truncated)?
  5. Is the conversion action created in Google Ads with source set to “Import from clicks”?
  6. Does the conversion action name in your CSV match exactly (copy-paste, do not retype)?
  7. Is the Conversion Time formatted correctly with an explicit timezone offset?
  8. Is the conversion time after the click time and within 90 days of it?
  9. Have you waited at least 6 hours since the click before uploading?
  10. Have you deduplicated your CSV?
  11. Are you using the correct template (standard vs enhanced conversions)?
  12. Have you set consent fields (required for EU/EEA traffic)?
  13. Are you uploading to the correct Google Ads account?

Scaling Beyond CSV Uploads

CSV uploads work for getting started and testing, but they are manual, error-prone, and limited. They do not support WBRAID/GBRAID, do not handle consent fields natively, and require you to format data precisely every time.

When you are ready to move past CSV:

  • Google Sheets via Data Manager — automate scheduled uploads from a Google Sheet. Less error-prone than CSV because the connection persists and column mapping is saved.
  • Zapier or Make.com — connect your form submissions or CRM directly to Google Ads offline conversion uploads. Handles hashing and formatting automatically.
  • Google Ads API — the most powerful option, supporting WBRAID/GBRAID, consent fields, and real-time uploads. Requires developer resources or a tool that handles the integration.
  • WordPress tracking plugins — capture the GCLID and lead source data automatically with every form submission, giving you clean, complete data ready for upload via any method.

Frequently Asked Questions

How long do offline conversions take to appear in Google Ads?

Up to 72 hours. New conversion actions may take longer for the first batch. Conversions appear under the click date, not the upload date — so check the correct date range in your reports.

Why does Google say “click not found” when the GCLID looks correct?

The GCLID may be truncated (GCLIDs can be lengthy strings (commonly 50-100+ characters)), from an organic click rather than a paid click, or you may have uploaded too soon after the click (wait at least 6 hours).

Can I upload conversions for WBRAID and GBRAID clicks?

Not via CSV. WBRAID and GBRAID uploads require the Google Ads API. Alternatively, use Enhanced Conversions for Leads, which matches on hashed email rather than click identifiers.

What if my upload succeeds but conversions do not appear?

Wait 72 hours, then check: (1) you are viewing the correct click date range, (2) the conversion window has not expired, (3) consent fields are included for EU traffic, and (4) the counting setting allows the conversion to be recorded.


Capture Every GCLID Without the Headache

Most upload errors trace back to a GCLID that was never captured correctly. TrueConversion stores the GCLID, WBRAID, GBRAID, and UTM parameters with every WordPress form submission — automatically, with no hidden fields or custom code. Your data arrives clean and complete, ready for upload.


Roger McSaveney

← Back to Articles

Comments

No comments yet. Be the first to share your thoughts!

Leave a comment