GCLID to Salesforce: offline conversion import, step by step
This is the single highest-leverage change available to a high-ticket advertiser, and it is mostly CRM configuration rather than advertising work.
Below is the sequence in the order it has to happen. Skip step one and nothing downstream functions, which is why so many half-built implementations quietly produce nothing.
On this page
Step 1 — capture the GCLID
Read gclid from the URL on landing and persist it before the visitor does anything else.
Google appends the parameter to every ad click when auto-tagging is on — check that first, because it can be switched off and occasionally is. On landing, read the parameter, write it to a first-party cookie with a 90-day lifetime, and populate a hidden field on every form on the site from that cookie.
Do the same for phone. Your call tracking must store the GCLID against the call record, otherwise every phone enquiry becomes untraceable — which in high-ticket healthcare can be most of your pipeline.
Step 2 — store it in Salesforce
Add a dedicated field, do not improvise with an existing one.
Create a custom text field on Lead named GCLID__c, 255 characters, and map the hidden form field to it. Add the same field to Contact and Opportunity. Make it read-only in page layouts so nobody helpfully edits it.
If you use Salesforce Web-to-Lead, map the field in the form setup. If you use a form vendor, map it in the vendor's Salesforce integration. Then submit a test lead and confirm the value arrives intact — GCLIDs are long and get truncated by fields sized at 100 characters.
Step 3 — carry it through conversion
Lead conversion in Salesforce is where the value usually disappears.
When a Lead converts to Account, Contact and Opportunity, custom fields only carry across if they are explicitly mapped. Set the mapping under Object Manager, on the Lead field, using Map Lead Fields. Confirm on a real conversion that GCLID__c is populated on the resulting Opportunity, not just on the Contact.
Also handle duplicates. If your dedupe rules merge a new Lead into an existing record, decide explicitly whether the new GCLID overwrites the old one. First-touch and last-touch are both defensible; silently keeping whichever arrived first is not.
Step 4 — define the conversion action
Choose the earliest CRM stage that reliably predicts revenue and still produces enough volume for bidding to learn.
| Stage | Trade-off |
|---|---|
| Qualified Lead | Highest volume, weakest link to revenue. Use only if closed-won volume is very low. |
| Consultation attended | Usually the sweet spot in high-ticket healthcare — a real human filter, still enough monthly volume to train on. |
| Closed-Won / Admitted | Truest signal, lowest volume, longest lag. Ideal where the sales cycle is short enough that Google still sees it inside the window. |
In Google Ads create the conversion action with source "Import" and category matching the stage. Set the click-through conversion window to cover your actual sales cycle — if patients take 45 days to decide, a 30-day window discards a third of your outcomes. Attach a value: the real revenue where you know it, a considered average where you do not.
Step 5 — send the data back
Three routes, in descending order of how much engineering they need.
- Native Salesforce link. Connect the account in Google Ads under Linked accounts, map stages to conversion actions, and Google pulls on a schedule. Least work, least flexibility.
- Scheduled upload. A CSV or Google Sheet with GCLID, conversion name, conversion time and value, on a daily schedule. Reliable, transparent, easy to debug.
- Google Ads API. Full control over timing, adjustments and restatements. Worth it once volume is high or the logic is genuinely complex.
Whichever route, upload daily rather than weekly. Fresher outcomes mean faster learning, and conversion time must be the moment the stage was reached, not the moment you uploaded it.
Step 6 — move bidding onto it
Change the conversion goal at campaign level, then reset targets — and warn everyone first.
Set the imported action as the primary goal and demote form fills to secondary so you can still see them without bidding on them. Your target CPA now has to be expressed in cost per patient, which is a much larger number than the cost per lead everyone has been quoting.
Reported conversion volume will fall sharply. This is the correct outcome — you removed the numbers that were not real — but if nobody is warned, the first monthly report reads as a catastrophe. Give Smart Bidding 30 to 60 days to retrain before judging anything.
Where implementations break
Five failure points, all of them boring, all of them fatal.
- Auto-tagging off, so no GCLID exists to capture.
- The field truncates the value because someone sized it at 100 characters.
- Lead conversion mapping missing, so the Opportunity has no GCLID and nothing can be sent.
- Conversion window shorter than the sales cycle, so real outcomes arrive after Google stopped listening.
- Nobody warned the owner that reported conversions would drop, and the project gets cancelled in week three.
Google's documentation on offline conversion imports covers the mechanics; the Salesforce integration guide covers the native route.
VERIFIED EXAMPLE · When I inherited a wasteful account at a luxury US healthcare clinic, this loop was the first thing built. Rebuilding bidding on admitted patients imported from Salesforce cut cost per admitted patient ~78% while spend scaled ~2×, with approved patients up ~9×.
Questions owners ask
How long does the whole implementation take?
Two to four weeks in most cases, and the majority of that is Salesforce configuration and testing rather than ad account work. Add another 30 to 60 days before Smart Bidding has retrained on enough imported outcomes to judge the change fairly.
What if I don't use Salesforce?
The same six steps apply. HubSpot, Zoho, Kipu and custom systems all work through scheduled uploads or the Google Ads API. What you need is a field that stores the click ID against the lead and a stage that reliably marks confirmed revenue — the CRM brand matters much less than those two things.
Is sending data back to Google a HIPAA problem?
Not when it is built correctly. What leaves your systems is a click ID, a timestamp, a conversion name and optionally a value. No name, no contact details, no clinical information. That is materially safer than the pixel setups most clinics already run, which frequently do expose health interest through URLs and form fields.
Will my conversion numbers drop?
Yes, and sharply. You are replacing form fills with confirmed outcomes, so a report showing 140 conversions might show 30. The number that should improve is cost per confirmed patient. Set that expectation with everyone who reads the report before you go live, not after.
What conversion window should I use?
Long enough to cover your actual sales cycle, measured from your CRM rather than assumed. If patients typically decide over 45 days, a 30-day window silently discards a third of your outcomes and makes the whole exercise look ineffective.