Performance Advertising
Google Ads Offline Conversion Tracking: 2026 Setup Guide
Set up Google Ads offline conversion tracking in 2026: capture GCLID, turn on enhanced conversions for leads, connect Data Manager and plan value bidding.
By Hiba Darwish · Published · 8 min read
Google Ads offline conversion tracking connects what happens in your CRM (a qualified lead, a booked job, a signed contract) back to the ad click that started it, so Smart Bidding can optimize for real customers instead of form fills. In 2026 the setup looks different from older guides: since June 15, 2026, offline conversion imports and enhanced conversions for leads uploads go through the Data Manager API and are blocked in the Google Ads API. The fundamentals are unchanged: capture the click ID and the customer's email or phone, map CRM stages to conversion actions, and upload daily.
This guide covers the 2026 changes, GCLID capture, enhanced conversions for leads, data source lookback windows and value-based bidding readiness.
What changed in 2026
Three changes matter for anyone running or rebuilding offline tracking this year.
Uploads moved to the Data Manager API. From June 15, 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 made no such requests between January and June 2026 were not allowlisted for legacy access (Google Ads Help). If a developer or vendor built your upload, ask them which API it uses today.
One setting for enhanced conversions. Since April 2026, enhanced conversions for web and enhanced conversions for leads share a single on/off setting, and existing users were migrated automatically (Google Ads Help).
Offline conversion import is now "legacy". Google describes enhanced conversions for leads as the upgraded version. It uses hashed user data, is more durable, and can capture engaged-view and cross-device conversions. Google still says to include GCLIDs whenever possible, and enhanced conversions for leads is required if no tag on your site collects user data (Google Ads Help).
Offline conversion import vs enhanced conversions for leads
| Offline conversion import (GCLID) | Enhanced conversions for leads | |
|---|---|---|
| How it matches | Google Click ID stored with the lead | Hashed email or phone captured on the form |
| Google's status | Legacy | Recommended, upgraded version |
| What breaks it | Lost or altered GCLID, missing auto-tagging | No email or phone captured, user not signed in to Google |
| Best practice | Keep capturing GCLIDs | Send hashed identifiers and GCLIDs together |
You do not have to choose one. Google found that adding first-party data such as email and phone to GCLID imports showed a median 10% increase in conversions compared with standard offline imports (Google Ads Help). Send both.
Step-by-step setup
Step 1: Turn on auto-tagging and accept customer data terms
Auto-tagging is required for offline conversions (Google Ads Help). Enhanced conversions for leads also needs the customer data terms accepted in your account settings (Google Ads Help). Check both before anything else.
Step 2: Capture the GCLID on every form
When auto-tagging is on, Google adds a gclid parameter to your landing page URL (or gbraid / wbraid). Your site needs to read it, keep it while the visitor browses, and submit it with the form. Google's own sample script stores the GCLID in a cookie or localStorage for 90 days and fills a hidden form field (Google Ads Help).
Illustrative example only (simplified, adapt and test before use):
<!-- Hidden field inside your lead form -->
<input type="hidden" name="gclid" id="gclid_field">
<script>
(function () {
var NINETY_DAYS = 90 * 24 * 60 * 60 * 1000;
var params = new URLSearchParams(window.location.search);
var gclid = params.get('gclid');
// Save a new click ID with an expiry date
if (gclid) {
localStorage.setItem('gclid', JSON.stringify({
value: gclid, // keep exact case: GCLIDs are case sensitive
expires: Date.now() + NINETY_DAYS
}));
}
// Fill the hidden field from storage if still valid
var stored = JSON.parse(localStorage.getItem('gclid') || 'null');
var field = document.getElementById('gclid_field');
if (stored && stored.expires > Date.now() && field) {
field.value = stored.value;
}
})();
</script>
Handle gbraid and wbraid the same way in their own fields. Then map the hidden field to a dedicated CRM property and confirm, on a real test click, that the value in the CRM matches the URL character for character. GCLIDs are case sensitive, and CRMs or spreadsheets that change capitalization silently break matching (Google Ads Help).
Multi-page and multi-step forms are where GCLIDs usually get lost, because the parameter is gone by the time the visitor reaches the final step. If you use a multi-step lead qualification form, read from storage on the last step, not from the URL.
Step 3: Turn on enhanced conversions for leads
Enhanced conversions for leads needs auto-tagging, accepted customer data terms and an email or phone field on the form. You can set it up with automatic form detection, the gtag('set', 'user_data', ...) command, or Google Tag Manager. Hashing is hex SHA-256 after normalization: lowercase and trimmed email, and phone in E.164 format (for example, +13125550100). Google "strongly recommends" sending the consent field (Google Ads Help).
Step 4: Map CRM stages to conversion actions
Create one offline conversion action per CRM stage you want Google to see, for example:
- Qualified lead
- Appointment booked or proposal sent
- Closed won
Set one as primary (the stage Smart Bidding optimizes toward) and the rest as secondary (reported, not bid on). Primary versus secondary directly affects Smart Bidding (Google Ads Help). Choose the primary stage carefully: it should happen soon after the click and often enough to train bidding (see the readiness section below).
After creating a new offline conversion action, wait 4 to 6 hours before uploading to it (Google Ads Help).
Step 5: Connect a data source in Data Manager
Your options include Google's native Salesforce and HubSpot connectors, Google Sheets, scheduled file uploads (SFTP, cloud storage, HTTP), database connections such as BigQuery, or the Data Manager API directly. The choice changes how far back Google will accept conversions, which is the next section.
Step 6: Upload daily
Each upload should include the GCLID (when present), hashed email and phone, conversion time, conversion value, currency and consent status. Google's value-based bidding guidance is to upload daily (Google Ads Help). Daily uploads also keep bidding responsive and make failures visible quickly.
Step 7: Validate with diagnostics
Use the conversion action diagnostics and upload summaries in Google Ads to check match rates and errors. Two failure causes covered in this guide are altered GCLIDs (they are case sensitive) and clicks outside your data source's lookback window.
Lookback windows by data source: 14 vs 90 days
Many guides say offline conversions can be imported up to 90 days after the click. That is only true for some data sources. Google's prerequisite is a click-to-conversion cycle of "less than 14 days or 90 days, depending on the data source" (Google Ads Help):
| Data source | What each run imports |
|---|---|
| Cloud Storage, Amazon S3, HTTP, SFTP, Google Sheets | Conversions from the last 90 days, in every run |
| Salesforce and HubSpot native connectors | The last 14 days on the first successful run, then all changes reported between the last successful run and the current one |
| BigQuery, Redshift, Snowflake, MySQL, PostgreSQL | The last 14 days, in every run |
The connector and database windows matter most for long cycles. Database sources only ever look back 14 days, and the native Salesforce and HubSpot connectors backfill only 14 days when you first connect them before switching to incremental syncs. If your qualified stage typically lands weeks after the click, confirm how your source handles it in Data Manager or with Google support before relying on it. The safer options are to pick an earlier proxy stage that happens within the window, or to use a scheduled file or Sheets upload with the 90-day window. A custom CRM can write directly to whichever source fits your sales cycle.
Value-based bidding readiness for lead generation
Value-based bidding tells Google that some leads are worth more than others. Google's readiness guidance for lead generation (Google Ads Help):
- Pick a funnel stage with "a relatively short conversion delay and at least 15 monthly conversions"
- Use at least 2 unique non-zero values
- Collect at least 4 weeks or 3 conversion cycles of consistent value data before switching
- Allow at least 2 weeks or 3 conversion cycles of ramp-up before judging results
- Upload daily and avoid zero values
This guide uses Google's current value-based bidding guidance for lead generation: at least 15 conversions a month at the chosen stage.
Setting proxy values
Most lead gen businesses do not know a lead's revenue when it qualifies. Use a proxy: the stage's value equals its historical close rate multiplied by average deal value. With hypothetical numbers: if 20% of your qualified leads close and your average deal is $5,000, a qualified lead is worth $1,000 to the bidding model. Revisit the numbers quarterly.
Google cites Citibanamex, which grew credit card bookings 27% and cut cost per booked card 7% after adopting value-based bidding (Google Ads Help). That is a large finance advertiser, not a lead generation benchmark, so treat it as an example of the approach rather than an expected result.
Long sales cycles
If deals close in 4 to 9 months, you cannot train bidding on closed revenue. Optimize toward the earliest stage that reliably predicts revenue, such as a sales-accepted lead or a completed discovery call, and keep later stages as secondary actions for reporting. Responding fast helps here, because a lead that is reached quickly reaches the qualified stage sooner; see our guide to speed to lead.
Limitations: when this is not the right choice
- Very low volume. If no stage reaches roughly 15 conversions a month, value-based bidding has little to learn from. Track offline stages anyway for reporting, but keep bidding on a simpler goal until volume grows.
- Signed-in users only. Enhanced conversions match only people signed in to a Google account, so some leads will never match.
- Bad data trains bad bidding. The wrong primary action, junk leads marked as qualified, or zero values will teach Smart Bidding the wrong lesson. Agree on stage definitions with sales before you upload.
- Privacy and consent. Fill the consent field and follow the US state privacy laws that apply to you. Hash identifiers before upload.
- Maintenance. Any custom upload now depends on the Data Manager API. Someone needs to own it when Google changes it again.
Bringing it together
Offline conversion tracking works when three things are true: every lead carries its GCLID and contact details into the CRM, your sales stages are updated consistently, and a daily upload sends those stages to Google through a source whose lookback window fits your sales cycle. The same CRM events can feed Meta through the Conversions API and LinkedIn through its own Conversions API return path, so one clean pipeline trains all three platforms.
If you want that pipeline built and maintained alongside your campaigns, Robustech's performance advertising service handles tracking, CRM integration and bidding strategy as one system.


