TL;DR
- From 15 June 2026, offline conversion import and enhanced conversions for leads uploads moved to the Data Manager API and are blocked in the Google Ads API except for allowlisted legacy tokens.
- Google retains the GCLID for 90 days; conversions matched on hashed email or phone for enhanced conversions can be uploaded up to 63 days after the associated ad click.
- Google says to wait 4-6 hours after creating a conversion action before uploading, or conversions can take 2 days to appear; processing takes 24-48 hours.
- Conversion adjustments can retract or restate an uploaded conversion for up to 55 days after it was first recorded; a retracted conversion cannot be adjusted again.
- Enhanced conversions for leads does not support external attribution, while standard GCLID import accepts fractional credit such as 0.33 from your own attribution model.
Google Ads offline conversion import lets you send conversions that happen outside your website, such as a qualified lead in your CRM, a signed contract or a sale closed by phone, back into Google Ads and credit them to the ad click that started the journey. The match is made either with the Google Click ID (GCLID) stored when the lead arrived, or, with enhanced conversions for leads, with hashed customer details such as an email address, and Google now recommends that new setups start with enhanced conversions for leads.
For lead-generation businesses this is often the difference between bidding for form fills and bidding for customers. A form submission tells Google Ads that someone filled in a form. An imported "closed deal" tells it which keywords and campaigns produced revenue. This guide explains how the import works, how the GCLID method differs from enhanced conversions for leads, the upload methods available, the time windows that cause most rejected rows, how to read the diagnostics, and how to set values and attribution so Smart Bidding learns from the right signal.
What offline conversion import is and why it changed in 2026
An offline conversion is any valuable action that Google's website tag cannot see: a sales call that turns into an order, a showroom visit that ends in a booking, a lead that a sales rep marks as qualified a week later. Offline conversion import closes that gap. You keep an identifier for each ad-driven lead, wait for the outcome in your own system, then upload the outcome with a conversion name and timestamp. Google Ads records it against the original click alongside your other conversion data.
Two changes in 2026 affect anyone setting this up now. First, Google combined enhanced conversions for web and for leads into a single on/off setting from April 2026, and Google Ads now accepts user-provided data from website tags, Data Manager and API connections without asking you to choose one implementation method. Existing users were migrated automatically. Second, from 15 June 2026, offline conversion import and enhanced conversions for leads uploads moved to the Data Manager API and are blocked in the Google Ads API. Developer tokens that sent no requests between January and June 2026 were not allowlisted for legacy access. If you maintain an in-house upload script, check which API it calls.
Google also describes classic GCLID-only import as a legacy feature and recommends that advertisers who have not adopted offline import yet begin with enhanced conversions for leads instead.
GCLID import vs enhanced conversions for leads
Both methods answer the same question, which click produced this offline result, but they use different keys to make the match.
How GCLID-based import works
Google Ads appends a unique Google Click ID to the landing page URL for every ad click when auto-tagging is turned on. To use it, Google's setup guide lists several requirements: auto-tagging must be enabled, you must be able to edit every page of your site, and you must be able to store each GCLID next to the prospect's details in your lead system. The usual implementation is a hidden form field plus a short script on every page that reads the gclid parameter, keeps it in a first-party cookie or local storage, and writes it into the hidden field when a form is submitted. Google's sample script keeps the value for 90 days. The GCLID is case sensitive, so any system that changes its capitalisation will break the match.
How enhanced conversions for leads works
Enhanced conversions for leads uses information the person typed into your form. The sequence in Google's documentation is: a user clicks the ad and submits a form; your Google tag sends Google a hashed version of a field such as the email address; you store the lead in your CRM; when the lead converts, you upload the same hashed email or phone number, plus any GCLID you hold; Google then matches the upload to the tag data and to signed-in Google Accounts that engaged with the ad. Google lists cross-device conversions and engaged-view conversions among the benefits that standard import lacks.
Google still recommends sending GCLIDs whenever you have them. They are required if you are not using a tag to collect user-provided data, and even with the tag in place, existing GCLIDs help tie conversions to specific clicks. Google also documents one edge case: if uploads that contain both GCLIDs and hashed data run into matching problems or a "Needs attention" status, try a test upload with only the hashed user data, because Google Ads may prioritise the GCLID match.
Upload methods: manual, scheduled, API and CRM connectors
There are four practical ways to get offline data into Google Ads. All of them need at least one offline conversion action created first, under Goals, then Summary, then Create conversion action, then Conversions offline.
- One-time file upload. Under Goals, Conversions, Uploads, you can upload a file from your computer or Google Sheets, or pull one over HTTPS or SFTP. You choose whether user data is hashed or unhashed; for a manual upload of unhashed data, Google hashes it before upload. Preview shows errors before you apply the file.
- Scheduled uploads. On the Schedules tab of the same page you can point Google Ads at a Google Sheet or a file on HTTPS or SFTP and set a frequency and time. For enhanced conversions for leads, data in scheduled files must already be hashed with SHA-256 after normalising it, for example lowercasing email addresses.
- Google Ads Data Manager. Google calls this the fastest way to set up enhanced conversions for leads, with both GCLID and user-provided data usable as match keys. Its import window depends on the connector: for Google Cloud Storage, Amazon S3, HTTP, SFTP and Google Sheets it imports conversions from the past 90 days on every run; for Salesforce and HubSpot it imports the last 14 days on the first run and then only changes since the previous run; for BigQuery, Amazon Redshift, Snowflake, MySQL and PostgreSQL it imports the last 14 days on every run. The legacy Salesforce integration stopped being supported on 31 May 2025.
- API and third-party integrations. Developers can send conversions through the Data Manager API. Google also documents a Zapier integration, and HubSpot users can set up offline tracking through HubSpot's Google Ads optimization events tool.
Google's FAQ is clear that a CRM is not mandatory. Any system that captures lead information can work, including a Google spreadsheet.
Timing windows that decide whether a row is accepted
Most rejected uploads come down to time. These are the windows Google documents.
- New conversion actions. Wait 4 to 6 hours after creating a conversion action before uploading to it. Conversions uploaded during that period can take two days to appear in reports.
- GCLID age. Google retains the GCLID for 90 days. A conversion uploaded against an older click is rejected with the message that the click is too old. If your sales cycle is longer, upload an earlier milestone, such as a qualified lead, that happens inside 90 days.
- User-provided data age. Conversions matched on personally identifiable information for enhanced conversions can be uploaded up to 63 days after the associated ad click.
- Very recent clicks. If a conversion is within one day of the click, Google Ads may not be able to record it yet. Google's best practice is to include an extra day of data in each import. An error saying the click is still being processed means you should upload again later; Google suggests waiting 6 hours on scheduled uploads.
- Processing. Allow 24 to 48 hours for imported data to show in reports and in the conversion action status.
- Adjustments. You can retract or restate an uploaded conversion with conversion adjustments for up to 55 days after it was first recorded. A retracted conversion cannot be adjusted again.
Preparing the file
A standard upload has one row per conversion with a Google Click ID column, the conversion name, and the conversion time, plus optional order ID, conversion value and conversion currency. The conversion name must match the action in Google Ads exactly, including capitalisation. Values can be a currency amount or a relative score; if left blank, Google Ads applies the default value set on the conversion action. Currency uses the three-letter ISO 4217 code.
Time zones cause many errors. Set the time zone in the Parameters:TimeZone row, in the Conversion Time values, or both. Google recommends a time zone ID such as Asia/Bangkok over a fixed offset to avoid daylight saving problems, though an offset in the +0700 format is also accepted. If you see the error "Conversion date precedes click date", the time zone is usually wrong.
Uploads also accept Ad User Data and Ad Personalization consent columns with Granted or Denied values. If enhanced conversions for leads is on, use the "Conversions from clicks (enhanced conversions for leads)" template, which includes the user-data columns, and make sure the customer data terms have been accepted in the account's conversion settings.
Duplicates are handled for you. Google Ads treats a conversion as unique by conversion action name, conversion time and the identifier, so re-uploading the same row does not double count it. If one click genuinely produced two conversions of the same type, give them different timestamps.
Matching and diagnostics
After every upload, open Goals, Conversions, Uploads. The Status and Results columns show whether each file imported and why rows failed, and Download errors gives a spreadsheet with a reason for each rejected row. These download links are removed 30 to 60 days after the upload, so save error files if you need them later. When a whole file fails, the error appears in the first row of a CSV or a General Errors sheet in Excel.
For enhanced conversions for leads, each conversion action also has a Diagnostics tab with match information and messages such as "No user-provided data matches" or "Enhanced conversions has no recent data". Common errors and fixes from Google's troubleshooting guide include:
- "We cannot find this conversion name in the target account": the click may belong to a different account, or the client account under a manager account does not use cross-account conversion tracking.
- "Conversion date precedes click date": check the time zone, or add 1-2 days to the conversion time.
- "This click is too old for its conversion to be imported": the GCLID is beyond 90 days; upload more often or use an earlier milestone.
To reconcile Google Ads with your CRM, Google recommends adding the All conv. (by conv. time) column to the Campaigns report and segmenting by conversion action. Most columns count conversions on the date of the ad click, while this one counts by conversion date, which lines up with the Conversion Time in your upload file.
Values, funnel stages and attribution
Create a separate conversion action for each funnel stage, for example qualified lead and closed deal, rather than one action for everything. Google's guidance is that separate actions give clearer reporting and let you bid to the single stage that matters. Set the stage you want Smart Bidding to optimise for as a primary action, and keep the others secondary for observation.
Google gives specific advice for bidding on imported data: upload at least daily, or on a consistent schedule if daily is not possible; upload all conversions with values if you plan to use Target CPA, Target ROAS or Maximize conversion value; run daily uploads for one to two conversion cycles before including the action in the Conversions column; and when adopting Target ROAS, wait about six weeks for value data to build up at a steady rate.
On attribution, standard offline import supports external attribution, which lets you upload fractional credit, for example 0.33 per click, from your own multi-touch model. The conversion action must be set to use external attribution at creation, and it cannot be combined with order IDs for deduplication or adjustments. Enhanced conversions for leads does not support external attribution at all; it must use a Google attribution model such as data-driven. If you run several accounts under a manager account, track offline conversions at the same level as your online conversions, because mixing manager-level and client-level tracking is not possible.
GCLID import and enhanced conversions for leads compared
The table below sets the two methods side by side on the points that most often decide which one to use.
| Point of comparison | GCLID-based offline import | Enhanced conversions for leads |
|---|---|---|
| Match key | Google Click ID stored with the lead | Hashed email or phone, plus GCLID where available |
| Upload window after the click | Up to 90 days from the click | Up to 63 days from the associated ad click |
| Site changes needed | Hidden field and script on every page to capture the GCLID | Google tag or Tag Manager set to capture form data |
| External attribution | Supported, fractional credit allowed | Not supported; Google attribution model required |
| Google's current recommendation | Legacy method | Recommended for new and upgraded setups |
What this means for Thai businesses
Many Thai sales journeys move off the website quickly, into a phone call, a LINE chat or a showroom visit. Offline import only works if an identifier survives that handover. A GCLID exists only for people who arrived from an ad click and submitted something on your site, so a lead who taps a LINE button before filling in a form leaves no GCLID behind. Capturing an email address or phone number on the site keeps enhanced conversions for leads available, and it is worth training sales staff to record the same email or phone in the CRM exactly as the customer entered it, since hashed values must match.
Consent matters as well. Thailand's Personal Data Protection Act governs the collection and use of personal data, and Google's own documentation reminds advertisers to observe local cookie-consent rules when storing the GCLID and to obtain consent where required. Set the Ad User Data and Ad Personalization columns to reflect the consent you actually hold. Finally, Thailand has no daylight saving time, so either Asia/Bangkok or +0700 works in the time zone field; just keep it consistent with how your CRM stores timestamps.
Offline conversion import FAQ
Do I need a CRM to use offline conversion import?
No, any system that stores lead information can be used, including a Google spreadsheet. What matters is that each lead keeps its GCLID or the email or phone captured on the form, and that you can record when and how it converted.
How long after the click can I upload a conversion?
GCLID-based conversions can be uploaded up to 90 days after the click, and conversions matched on user-provided data for enhanced conversions up to 63 days after the associated ad click. For longer sales cycles, import an earlier milestone that falls inside the window.
Can I change a conversion after uploading it?
Yes, conversion adjustments let you retract or restate a conversion for up to 55 days after it was first recorded. Once a conversion is retracted it can no longer be adjusted.
What happens if I upload the same conversion twice?
Google Ads deduplicates it, counting only the first instance of a given conversion name, conversion time and identifier. Two genuine conversions from the same click need different timestamps.
Should I use GCLID import or enhanced conversions for leads?
Google recommends enhanced conversions for leads for new setups and as an upgrade for existing GCLID imports, while still sending GCLIDs when you have them. Standard GCLID import remains the option if you need external, fractional attribution, which enhanced conversions for leads does not support.
Getting offline data into your bidding
Offline conversion import pays off when it is boring: one action per funnel stage, identifiers captured on every page, a daily scheduled upload, and someone checking the Uploads page and Diagnostics tab each week. Once that runs reliably, Smart Bidding can optimise toward the outcomes your sales team actually counts. If you want help connecting CRM outcomes to campaigns, Relevant Audience offers Google Ads management, GA4 and tracking setup and ERP and CRM integration, with data security and compliance support for the consent and hashing side.







