Google Ads says 40 conversions. Your EHR says 11.
The two systems are counting different events. Google counts the form submission or the phone tap; your EHR counts the patient who arrived and was treated. Neither is lying — they were never measuring the same thing, and nobody built the join between them.
- The auction
- This is the single most common reason a practice fires an agency, and usually the agency has not done anything wrong. The gap is structural: the ad platform can only see as far as the browser, and the money is decided weeks later inside a system it has never been told about.
- The conversion
- a treated patient, joined back to the click that produced them
- Source of truth
- your EHR or practice management system
- Costliest mistake
- Assuming one of the numbers is wrong. Both are correct for what they measure. The error is treating a form fill as a proxy for a patient, and then bidding on it for a year.
The short answer
To run Google Ads for medical practices whose reported numbers do not match reality, optimize toward a treated patient, joined back to the click that produced them — recorded in your EHR or practice management system — rather than toward form fills or booked appointments. This is the single most common reason a practice fires an agency, and usually the agency has not done anything wrong. The costliest mistake is assuming one of the numbers is wrong. Everything below is the build order, in the sequence you would actually work through it.
Written by Ariful Islam — eight years building Google Ads accounts and the conversion tracking underneath them.
Read this before step one
Google Ads does not fail on its own. It fails on top of three things that were already broken.
- 01
Conversion tracking that reports the truth
If Google is counting form fills rather than a treated patient, joined back to the click that produced them, every bid it makes is aimed at the wrong outcome. First-party, server-side, joined back to your own system — not a browser tag that a consent banner or a cookie policy can silence.
- 02
A landing page that answers the search
One page for every ad group means the page answers a general question when the search asked a specific one. Google scores that as poor landing page experience and charges you more per click for it.
- 03
The right campaign for the goal
Performance Max on a broken signal spends faster and explains less. Search first, on a conversion you trust, then expand — in that order, because the order is not a preference.
Get all three right and the playbook below compounds. Get the first one wrong and everything below is executed perfectly in the wrong direction — which is the single most expensive thing that happens in this channel.
Not sure which of the three is wrong on your account? Send it over and we will tell you what it is actually reporting.
Before deciding which to trust
Write down, precisely, the event behind each figure. Most of the time nobody has ever done this and the discrepancy dissolves into two clearly different definitions.
- 01Get the exact conversion action definition from Google Ads, including the counting setting.
- 02Get the exact report definition from the EHR, including the date basis.
- 03Note the attribution window on the Google side and the reporting period on the practice side.
- 04Expect them to differ. The question is by how much and why.
In the order they usually apply
Almost every gap is one of four things, and they compound. Ruling them out in order is faster than debating the totals.
- 01Counting setting: 'every' conversion counts repeat form fills from the same person.
- 02Attribution window: a conversion credited to last month's click appears in last month's row.
- 03No-shows and unqualified enquiries never reach the EHR at all.
- 04Calls answered and handled outside the tracked path are invisible to Google.
Thirty seconds, frequently the whole answer
A lead-generation conversion action set to count 'every' rather than 'one' inflates by whatever your repeat-submission rate is, and forms get submitted twice constantly.
- 01Open the conversion action and check Count: it should be 'One' for lead actions.
- 02Check for duplicate conversion actions firing on the same event.
- 03Check whether both a form action and a thank-you page action exist.
- 04Look for a tag firing on every page load rather than on submission.
The number nobody wants
Between form fill and treated patient there are several stages, and each loses people. Knowing the rate at each is more useful than closing the gap on paper.
- 01Form fills → contacted.
- 02Contacted → appointment booked.
- 03Booked → attended.
- 04Attended → treated and paid. This last number is the one that matters.
The actual fix
Capture the click identifier at the form, carry it into the practice system, and send the outcome back when it is known. This is the step that changes what the algorithm optimises toward, and it is the one almost no account has.
- 01Capture GCLID in a hidden field on every form and store it against the record.
- 02Give staff a field for it on phone enquiries, or use call tracking that passes it.
- 03When the patient is treated, upload that as an offline conversion with the stored GCLID.
- 04In a HIPAA context, send the fact and the value only — never the condition or the identity.
Where the money comes back
Once treated patients flow back, smart bidding stops buying form fills. Expect volume to fall and cost per treated patient to fall further; that is the trade working as intended.
- 01Switch the primary conversion action to the offline one.
- 02Mark form fills as secondary so they still report but no longer bid.
- 03Give the offline conversion a value if the values differ meaningfully.
- 04Allow a full learning period before judging. The first two weeks will look worse.
Permanently
From here the Google column is a diagnostic, not a scoreboard. The practice system is the scoreboard, and the reconciliation between the two runs monthly.
- 01Reconcile Google conversions against treated patients every month.
- 02Track the ratio between them; a sudden change means tracking broke, not that demand changed.
- 03Report cost per treated patient to the owner, not cost per lead.
- 04Keep the two definitions written down where the next person can find them.
When Google Ads is the wrong answer here
Three situations where running this playbook will lose money. Read them before you fund the account, not after.
- You have not launched yet and nothing is broken. Build it right the first time — this page describes repairs, and repairs are more expensive than construction.
- The question is legal rather than technical. This page explains the mechanism and what it implies; it is not legal advice and does not replace your counsel's sign-off.
- You are looking for a way around a rule rather than a way to comply with it. Circumventing a platform's systems costs the account permanently, and we will not help with it.
Questions this raises
- Which number should I believe?
- Yours. The practice system records what actually happened and what you were paid for. The ad platform records what it could see from the browser.
- Is my agency lying to me?
- Usually not. Most agencies report the platform number because it is the one they have. The gap is structural, and closing it needs access to your systems, which most agencies never ask for.
- How big a gap is normal?
- There is no normal. It depends entirely on your no-show rate, your qualification rate and your close rate. What matters is that the ratio is stable — a moving ratio means something broke.
- Does offline conversion import work with a small practice?
- Yes. It needs a GCLID field and someone to export weekly. It does not need a data team.
- Will this reduce my conversion volume?
- Yes, on the dashboard. That is the point. You will be buying fewer, better outcomes and the reported number will finally mean something.
Five problems we get called in to fix
Every one of these arrived as “the campaign has stopped working”. None of them were the campaign. If you recognize your own symptom here, the cause is probably the one sitting next to it.
The reported number and the real number stopped agreeing.
Nothing joins the ad click to your EHR or practice management system, so the platform reports what it can see and nobody reconciles it.
Capture the click identifier at the form, store it against the record, send the outcome back when it is known.
Conversions collapsed and nothing in the account changed.
The tracking broke, not the campaign — a site update, a consent banner change, or a browser tightening cookie rules.
First-party server-side tagging, so measurement does not depend on a third-party cookie surviving, plus monitoring so the next break is an alert rather than a quarter.
Compliance asked a question nobody could answer in writing.
The tags were installed by whoever built the site, and no one has audited what leaves the page or where it goes.
An inventory of every tag on every clinical page, then a server-side container that redacts before anything is forwarded.
So what should you actually do with this?
Three honest options. The first one is genuinely fine for a lot of businesses, and we would rather you picked it knowingly than drifted into it.
Run it yourself
Good if you have the hours and someone technical
- A build, then a weekly routine that never stops
- You end up understanding your own account, which is worth real money later
- The measurement step still needs a developer
- Your mistakes are paid for at auction prices while you learn
Hire a general agency
Good if you want it off your desk this month
- Fast to start, and most are competent at the campaign work
- Usually optimizes toward whatever is easy to count — the form fill, the booked call
- Reports come from the ad platform's own numbers
- The measurement problem stays yours, because it lives in your systems
Work with us
Good if the reporting has stopped matching reality
- We build the measurement first — first-party, server-side, joined back to your EHR or practice management system
- Then we run the account on a conversion we can both check
- Reporting is against your numbers, not the Google column
- Eight years of this, and the tracking and the media are the same team
We are not going to promise you a number. Anyone who quotes you a return before seeing what your account currently reports is guessing, and the guess is always flattering. What we will tell you, for free and before any of this becomes a conversation about money, is what your account is actually measuring today.
Or we run it for you
Eight years of Google Ads, on top of tracking that reports the truth.
Everything above is doable. Doing it every week for a year, while running the business it is meant to fill, is the part that does not fit.
Most agencies will run the campaign and take your word for what a conversion is. We build the measurement first — first-party, server-side, joined back to your EHR or practice management system — and then manage the account on a signal we can both trust. It is the same reason the playbook above starts with the conversion rather than the keywords.
- Account build or rebuild, structured the way this page describes
- Conversion tracking wired to your EHR or practice management system, not to form fills
- Server-side, first-party tagging so the signal survives the browser
- Landing pages that answer the ad, one per intent
- Monthly reporting against your own numbers, not the Google column
- The search terms report worked every week, not quarterly
The first conversation is a read of what your account is actually reporting. No deck, and nothing to sign to get it.
