Offline Conversion Tracking in Google Ads: The 2026 Setup
Key Takeaways
- Offline Conversion Tracking (OCT) sends qualified leads and closed deals back to Google Ads. Without it, Smart Bidding only sees form submits, not the actual money.
- Starting June 15, 2026, offline conversion uploads move from the Google Ads API to the Data Manager API. Custom integrations have to migrate before the cutoff.
- Enhanced Conversions for Leads (EC4L) is Google's recommended path. The classic GCLID-only flow still works but is labeled legacy and reports fewer conversions than the combined setup.
- Setup order decides whether your first leads land or get lost. Conversion action first, then click-ID capture, then go live. Not the other way around.
Google Ads knows who clicked on your ad. It has no idea who actually bought. Offline Conversion Tracking closes that gap. And it’s the exact spot where most lead accounts run Smart Bidding into the dark, because the system is guessing what a click is worth.
In my work, I see this every audit. A B2B account is running lead forms, the sales team qualifies and closes offline, and Google never gets to see any of it. The fallout is a bidding strategy that treats every form fill the same way, whether it later becomes a $500 install or a $50,000 deal.
What is Offline Conversion Tracking, exactly?
Offline Conversion Tracking, or OCT, is the return path to Google Ads. You capture which click the lead came from (via Google Click ID), store it in your CRM or a spreadsheet alongside the lead, and later report back what happened: qualified, proposal sent, closed, with the value attached.
The flow has four steps:
- A user clicks your ad. Google appends
gclid(orwbraid/gbraid) to the landing URL. - Your landing page reads the ID and stores it as a hidden form field.
- The form gets submitted. The ID lands in your CRM or Google Sheet along with name, email, phone.
- Once the lead qualifies or closes, you send the
gclidplus the real value back to Google Ads.
Only then does Smart Bidding learn which clicks bring real revenue, and can actually optimize for it.
When does OCT make sense?
Not every business model needs it. OCT pays off when the click and the actual sale are separated in time or place:
- Lead businesses with longer sales cycles. B2B, agencies, consulting, construction, industrial. The lead comes in today, the deal closes weeks later.
- Phone-closed deals. Inbound calls, callback requests, consultation calls. The conversion happens offline.
- Service providers with appointment flow. Appointment request is not the appointment, and the appointment is not the revenue.
- High-ticket products with consultation. Configurator, proposal, contract live as separate stages.
For straight e-commerce with clean checkout tracking, OCT is usually overkill. Google already sees the order value at purchase. It gets interesting once returns or actual profit are the real number you care about, and that’s the territory of the post on ROAS, POAS, and optimizing for profit.
GCLID, wbraid, gbraid: what is the difference?
Google currently runs three click IDs because the old gclid is not reliable on every browser anymore.
| ID | When it gets set | Browser context |
|---|---|---|
| gclid | Standard ad click | Works wherever cookies and cross-site tracking are allowed |
| wbraid | Web-to-app on iOS | When an iOS user clicks and converts inside a native app |
| gbraid | Web-to-web on iOS with ATT/ITP block | When Apple’s tracking protection blocks gclid from carrying through |
For your capture script, that means: you need to read all three parameters from the URL and store them. Anyone grabbing only gclid is systematically losing iOS traffic. Google walks through the basics in the GCLID setup guide.
GCLID import vs. Enhanced Conversions for Leads: what you actually want in 2026
Until recently, the standard play was: collect GCLID, ship it back to Google later. That path still works, but it’s officially labeled legacy now. The recommended setup is Enhanced Conversions for Leads (EC4L). Google documents it in the Enhanced Conversions for Leads help.
The one-line difference: classic OCT matches on gclid alone. EC4L matches on gclid plus hashed user data like email or phone.
In practice that means:
- Classic OCT: If the
gclidgoes missing along the way (no capture, deleted cookie, different device), the lead is lost as far as Google is concerned. - EC4L: Even without a
gclid, Google can still attribute the lead via hashed email back to the original click, as long as the user was signed into a Google account at click time.
My own read: in accounts where the click-ID capture isn’t airtight, classic OCT loses anywhere from 20 to 50 percent of leads depending on the device mix. According to Apple, Safari ITP caps third-party cookies at 7 days, which is exactly why EC4L catches a chunk of that GCLID dropout, especially on iOS, where gclid is missing more often than not. If you’re starting fresh in 2026, there’s no good reason to only rely on gclid.
June 15, 2026: migration to the Data Manager
This is the actual reason the topic is worth your attention now. Google is moving the upload path.
From the official update on Enhanced Conversions settings: “Imports of offline conversions and uploads of enhanced conversions for leads will be migrated to the Data Manager API and blocked in the Google Ads API.”
In plain English:
- From April 2026: Google accepts your user data in parallel from website tags, Data Manager, and API connections.
- From June 2026: Web Enhanced Conversions and Leads Enhanced Conversions get merged into a single on/off toggle.
- From June 15, 2026: The old upload endpoints in the Google Ads API for offline conversions and EC4L are getting blocked.
If you’re shipping data through CRM connectors or the Data Manager connector, you don’t have to lift a finger. If you have a custom script that hits UploadClickConversions on the Google Ads API directly, you need a migration plan to Data Manager before mid-June. The API path for custom integrations is also documented in the Google Ads API offline conversions docs.
Setup options in the wild
There isn’t one right setup, there are four reasonable variants depending on your stack and lead volume:
| Option | When it fits | Effort | Catch |
|---|---|---|---|
| Manual upload (CSV or Google Sheet) | Few leads, no code, occasional pull from the CRM | Low | A human is on the hook for upkeep, which gets messy |
| Google Sheet + Apps Script | A handful of leads per week, sales lives in spreadsheets | Medium | Script maintenance, Apps Script quirks around timestamps |
| Native CRM integration (HubSpot, Salesforce, Pipedrive) | CRM is the source of truth, sales works there anyway | Medium to high | Connector license or custom build, depending on the CRM |
| Data Manager connector / API | Google’s recommended path from 2026 forward | Variable | For custom builds, migration before June 15, 2026 is required |
My default for smaller accounts is the Sheet plus Apps Script setup. It’s quick to spin up, the client sees their leads right in the sheet, and the export to Google Ads runs from a sheet-menu button. For CRM-led sales teams, native integration is usually the honest answer, because nobody wants to maintain two systems.
The setup order nobody talks about
A lesson I learned the hard way: setup order matters. In one project I created the import conversion actions in Google Ads after the first real leads had already come in. The result: 6 out of 8 test leads were unattributable for Google, because no matching import conversion action existed at the time of the click.
The clean order looks like this:
- First, create the import conversion actions in Google Ads (one per lead stage, e.g. appointment booked, proposal sent, deal won).
- Then, set up lead storage (Sheet plus Apps Script, or CRM integration).
- Then, add the click-ID capture script to the landing page (
gclid,wbraid,gbraidfrom URL into cookie and hidden form field). - Then, launch the landing page.
- Right away, send a test lead through with
?gclid=TESTand check that it lands in the sheet or CRM with the ID attached. - Right away, test the upload path with a real conversion value going to Google.
It sounds pedantic and it’s the cheapest insurance you have against lost leads in the first live week.
Common gotchas
From the field, here are the gotchas that come up most often in OCT setups.
- Click ID never gets stored. Capture script missing, or the hidden form field stripped by the form builder. Quick check: hit the URL with
?gclid=TEST123, submit the form, look forTEST123in your sheet or CRM. - “Conversion can’t occur before the click.” Common in Apps Script setups. The usual culprit is the timestamp format. If you store a timestamp without a timezone (
2026-06-10 09:30:00), Google may read it as UTC. The fix: always use ISO with timezone (2026-06-10T09:30:00-04:00). - Naming drift on conversion actions. If your script sends status values like “Closed Won” but Google Ads has the conversion action named “Deal Won”, nothing matches. Define naming once, mirror it everywhere.
- Consent Mode V2 missing or misconfigured. Without consent signals, Google may stop processing the values or only model them. The setup is part of the broader picture in the post on Server-Side Tracking 2026.
- Conversion window set too short. Default is 30 days, but you can stretch it to 90. For long sales cycles, the default becomes a trap: a lead from week one that closes in week five gets ignored.
Conversion values: think client by client
One thing I can’t generalize: what is each lead stage worth?
There is no universal answer. It depends on your business model, customer lifetime value, conversion rates between stages. In one account a “qualified lead” might be worth $80, in another $1,200. What you need is stage-by-stage math:
- What’s your average deal size?
- What’s your conversion rate from “lead” to “deal”?
- What does that work out to per stage (lead, qualified lead, proposal, deal)?
Anyone running with default values is feeding bidding the wrong signals. Anyone deriving values from real CRM data gives Smart Bidding what it needs.
Why it matters: Smart Bidding and the conversion value
Smart Bidding (Target CPA, Target ROAS, Maximize Conversion Value) is only as smart as the data you feed it. Without OCT, the system optimizes on form submits and treats them all the same. With OCT, it optimizes on qualified leads or deals and can learn that Click A leads to $1,500 on average and Click B to $50.
That is the difference between bidding that splits budget in the dark and bidding that actually understands profitability. Google’s own Smart Bidding help lists 30 conversions in 30 days as the floor for Target CPA, and 50 for Target ROAS, per campaign. The default conversion window in Google Ads is 30 days, configurable up to 90, which matters when your sales cycle stretches. But the conversions have to be the right ones. Anyone serving hard conversions through OCT and then flipping bidding to optimize for them tends to see a different budget allocation than before.
Honest caveat from experience: this isn’t a “turn it on today, see better numbers tomorrow” change. The system needs learning time. Anyone reshuffling conversion actions in the middle of a learning phase is risking performance dips. Better: stage new conversion actions as secondary, watch them, then promote to primary once the data is solid.
FAQ
What is the difference between GCLID import and Enhanced Conversions for Leads?
GCLID import matches leads on the Google Click ID alone. If the ID is lost, the lead is unattributable. Enhanced Conversions for Leads (EC4L) also matches on hashed user data like email or phone, so leads can still attribute when gclid is missing, as long as the user was signed into a Google account at click time.
Do I need OCT for e-commerce too?
Most of the time, no. Straight e-commerce with clean checkout tracking already gives Google the order value at purchase. OCT becomes interesting when the real value is only known later, like with high return rates, frequent cancellations, or when you want to optimize for actual profit rather than revenue.
What happens to old setups after June 15, 2026?
If you ship data through CRM connectors or the Data Manager connector, nothing changes on your side. Google handles the migration. If you have a custom API integration hitting UploadClickConversions on the Google Ads API directly, you have to migrate to the Data Manager API. Otherwise uploads get blocked after the cutoff. Details in the official update.
How far ahead do I need to create the conversion actions?
Before the first click. If a lead comes from a click with no matching import conversion action in Google Ads at that moment, the later upload can’t find the click anymore. This is the most common setup mistake. Create conversion actions before the campaigns go live.
Does OCT work with Smart Bidding?
Yes, and that’s actually the point. Smart Bidding (Target CPA, Target ROAS) only becomes useful with OCT data, because then the system optimizes on real deal values instead of form submits. Mind the learning phase: after conversion changes, give bidding time. Stage new conversion actions as secondary, then promote to primary once you have enough data.
Your next moves
Before you think about tools, answer two questions honestly. First: do you actually have a flow where the click and the real value land in different places in time? If yes, OCT is relevant for you. Second: does your sales team set a clean status per lead that delivers the information you want to send back to Google? If not, that’s the first thing to fix, not the script.
If both answers are yes, start with the simplest version: Sheet plus Apps Script, clear conversion action naming, test lead before launch. The rest you can grow into.
One last reminder: everything above is what I’ve learned from running accounts, not universal law. Every account has its own conversion actions, its own lead flow, its own sales cycle. What is obviously right in one setup can be exactly wrong in the next. The clean version of OCT for your specific account is part of my Google Ads audit or a project setup. The most common structural mistake behind all this is the one I describe in the post on Google Ads conversion tracking issues.
Google Ads project & setup specialist. Former contractor on behalf of Google. Helps SMBs and medical practices in the DACH region advertise profitably.
You might also like
Ready for profitable Google Ads?
In a free initial consultation, we will look together at if and how Google Ads can work for you.
Book Free ConsultationNo commitment · No sales pressure · 30 minutes