Home / Notes

GCLID to Salesforce: offline conversion import, step by step

Capture the GCLID on your landing page, store it on the Salesforce Lead, carry it to the Opportunity on conversion, and send the closed outcome back to Google Ads as an offline conversion. Google then bids on revenue you have actually collected instead of on form submissions.

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.

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.

Picking the stage
StageTrade-off
Qualified LeadHighest volume, weakest link to revenue. Use only if closed-won volume is very low.
Consultation attendedUsually the sweet spot in high-ticket healthcare — a real human filter, still enough monthly volume to train on.
Closed-Won / AdmittedTruest 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.

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.

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.

Want this built rather than described?

Thirty minutes on your CRM and your ad account. I’ll tell you how much of this you already have, what is missing, and what it takes to close the loop.

$500 audit + 90-day roadmap · direct with the owner, no account managers.

Book a 30-minute call