Google Ads thinks your best campaign is the one producing the most form submissions. Your front desk knows that campaign produces the people who never answer the phone.
Both are looking at real data. Only one of them is looking at the data that matters, and it is not the one setting the bids.
Offline conversion tracking is how you close that loop: you take what happened after the click — the qualified enquiry, the booked consultation, the patient who actually attended — and send it back to the platform that bought the click. The bidding algorithm then optimises towards patients instead of towards form-fillers.
It is the single highest-return piece of plumbing in healthcare paid media, and most accounts do not have it.
01What "offline conversion" means here
Nothing to do with offline media. It means a conversion that happens away from the website — on the phone, at the front desk, in the CRM three weeks later — and gets uploaded back to the ad platform afterwards, matched to the original click.
The chain has three links. Capture an identifier at the moment of the click. Keep that identifier attached to the enquiry as it moves through your CRM. Send the identifier back with the outcome and the date once the outcome is known.
Break any link and the whole thing fails silently, which is why this project is usually worth doing properly once rather than half-doing three times.
02Step one: capture the click id and keep it
When someone arrives from a Google ad, the URL carries a click identifier — a GCLID, or a gbraid or wbraid parameter depending on how the click was routed. That string is not patient data. It identifies an ad click, not a person, which is what makes it the right tool for healthcare.
Put a hidden field on every form and every booking widget that reads the parameter and stores it. Store it in a cookie too, because patients rarely convert on the first session and the parameter is only present on the landing page.
Then make sure it survives. The most common failure is not the capture — it is a CRM whose lead record has no field for it, or a booking system that hands the practice a name and a phone number and drops everything else. Check the field exists before you write the tagging.
03Step two: make the CRM record the stage, not the event
Decide what you are going to send back, and be strict about it. The useful set for a clinic is usually three stages: qualified enquiry, consultation booked, consultation attended. A surgical service line may want a fourth for treatment accepted.
Each stage needs a definition a receptionist can apply in three seconds, written down, and the same in every location. "Qualified" meaning one thing in Gurugram and another in Bengaluru produces a dataset that teaches the algorithm nothing.
Attach a value to each stage if you can. Not a fabricated revenue figure — a consistent relative weight is enough for the bidding to learn that a booked consultation for one service line is worth more than another.
04Step three: send it back
In Google Ads you create a conversion action set to import from clicks, then upload the rows — click id, conversion name, conversion time, value — through the interface, a linked Google Sheet, or the API. The API is worth the effort if the CRM can do it, because a weekly manual upload will be missed the week somebody is on leave.
Two constraints to design around. The conversion has to fall inside the conversion window configured on the action, and Google's maximum click-through window is measured in weeks rather than months, so a service line where patients decide over a full quarter will lose its longest-lag conversions. And the conversion time you upload has to be accurate, in the right time zone, or the reporting distributes your results across the wrong days.
The same discipline is what makes the rest of the reporting honest, which we cover on measuring healthcare marketing and in our performance ads work.
05Enhanced conversions, and why healthcare is the awkward case
Google's alternative route is enhanced conversions for leads, where instead of the click id you send back a hashed email address or phone number and Google matches it to the click.
For most industries that is the easier path. For healthcare it deserves a pause.
A hashed email address of a person who enquired about a cancer screening is still information about that person's interaction with a healthcare provider. Hashing is not anonymisation; it is matching. In the United States, Google is not a business associate and will not sign a business associate agreement, so sending patient contact details — hashed or not — into an ad platform is the kind of decision that needs your compliance officer in the room, not your media buyer. In India, the Digital Personal Data Protection Act 2023 and the DPDP Rules 2025 require notice, a stated purpose, and consent for exactly this kind of onward processing, with the Data Protection Board of India enforcing it.
The click-id route avoids the problem entirely, because no patient identifier leaves your building. Where you have a choice, take it.
Meta has folded offline event uploads into the Conversions API. You send server-side events with an action source describing where they happened, and Meta matches them to ad exposure.
The matching, though, runs on hashed customer information — email, phone, name. There is no click-id equivalent that works as cleanly as Google's, which means Meta offline tracking for a healthcare advertiser is a data-sharing decision rather than a technical one. For a United States practice, that is usually where the project stops. For an Indian or Gulf practice it is a consent-and-purpose question under the DPDP Act or the applicable Gulf data law, answerable but not to be answered by silence.
Meta's health and wellness advertising policy restricts what can be inferred and targeted in any case. Neither Google nor Meta signs business associate agreements, and no product called "restricted-category bidding" exists to get you around it.
07What changes once the data is flowing
Three things, usually within a couple of months.
Smart bidding starts finding different people. Target CPA and target ROAS strategies optimise towards the event you feed them, and fed with attended appointments they will quietly stop chasing the audiences that produce curious clickers.
Performance Max becomes assessable. Its main weakness in healthcare is that it will happily optimise towards a weak signal; given a strong one it behaves considerably better.
And the budget argument changes shape. When the report says which campaigns produced attended patients, the monthly meeting stops being a debate about cost per lead. The tracking foundations for this sit in conversion tracking, and the CRM side in setting up a healthcare CRM.
08How long to wait before you judge anything
Healthcare has a lag problem that most offline-conversion advice ignores. A patient clicks an ad in the first week of the month, enquires in the second, attends a consultation in the fourth, and accepts a procedure six weeks after that. Feed the platform only the final stage and the data arrives so late that the bidding never learns from it.
The working compromise is to send back an intermediate stage that happens quickly and correlates with the final one. For most clinics that is the booked consultation: fast enough to fall well inside the conversion window, close enough to revenue to be worth optimising towards.
Here is an illustrative worked example — the numbers are made up to show the shape of the calculation, not drawn from any account. Suppose a campaign reports a hundred form fills, and the CRM shows that thirty became qualified enquiries, eighteen booked a consultation and twelve attended. If you upload only the twelve, the bidding waits five or six weeks for each signal. If you upload the eighteen, the signal arrives within days and still describes something real. Most accounts are better off with the eighteen, plus a monthly report on the twelve for the humans.
Whichever stage you choose, hold it constant. Switching the uploaded stage mid-quarter resets the learning and makes the before-and-after comparison meaningless.
09The failure modes worth knowing in advance
Duplicate uploads, when a weekly file overlaps with the last one and the same conversion lands twice. Time zones, when the CRM exports in local time and the account is set to another. Stage definitions drifting, so "qualified" quietly becomes "anyone who answered the phone". Values inflating, because someone decided a booked consultation should be worth what the surgery is worth. And the quiet one: the click id field stops being populated after a website change and nobody notices for six weeks, because the uploads keep succeeding with fewer and fewer rows.
Put a monthly check on the match rate. A falling match rate is the first symptom of all five.
10What to do first
- 1Confirm your forms capture the click id and your CRM has somewhere to keep it.
- 2Write the three stage definitions on one page and get the front desk to agree with them.
- 3Create the import conversion action in Google Ads and upload one week manually to prove the chain works.
- 4Automate the upload, then leave the bidding alone for a few weeks while data accumulates.
- 5Decide the Meta question on compliance grounds before you decide it on marketing grounds.
---
If you want to know which links of that chain are currently broken in your account, get a free audit — we will send the findings whether or not you work with us. Or book a strategy call and we will look at the tracking with you.