Skip to main content
TrackingConsulting
PlaybookReporting gap· 7 steps · free to use

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.

  1. 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.

  2. 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.

  3. 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.

  1. 01Get the exact conversion action definition from Google Ads, including the counting setting.
  2. 02Get the exact report definition from the EHR, including the date basis.
  3. 03Note the attribution window on the Google side and the reporting period on the practice side.
  4. 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.

WHAT THE BIDDING ALGORITHM LEARNS FROMSearchthe query is typedClickyou are charged hereForm or callwhat Google counts todayEHR or practicemanagement systemwhere money is decidedthe outcome, sent back as the conversionWithout the dashed returnGoogle optimizes toward step three and buys more form fills, cheaper —including every one that never becomes a treated patient, joined back to…It reports that as an improvement, because by its own measure it is one.
The full path runs through your EHR or practice management system. Google sees only as far as step three unless you build the return, and it cannot want what it cannot see.
  1. 01Counting setting: 'every' conversion counts repeat form fills from the same person.
  2. 02Attribution window: a conversion credited to last month's click appears in last month's row.
  3. 03No-shows and unqualified enquiries never reach the EHR at all.
  4. 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.

  1. 01Open the conversion action and check Count: it should be 'One' for lead actions.
  2. 02Check for duplicate conversion actions firing on the same event.
  3. 03Check whether both a form action and a thank-you page action exist.
  4. 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.

WHERE THE MONEY ACTUALLY APPEARSClicksyou pay hereForm or callwhat most accounts optimize toConsultation bookedbooked — still not moneya treated patient, joined back…the only stage that paysGoogle sees nothing below herethese two live in your EHR or practice…Send the bottom stage back as the conversion, and the whole funnelstarts working for you instead of against you.
Google can see the top two stages and nothing below. Optimize to a form fill and it will buy more form fills — including everyone who books and never arrives, and everyone who arrives and never proceeds. The line is where the advertising platform stops being able to help you.
  1. 01Form fills → contacted.
  2. 02Contacted → appointment booked.
  3. 03Booked → attended.
  4. 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.

  1. 01Capture GCLID in a hidden field on every form and store it against the record.
  2. 02Give staff a field for it on phone enquiries, or use call tracking that passes it.
  3. 03When the patient is treated, upload that as an offline conversion with the stored GCLID.
  4. 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.

AD RANK = BID × AD QUALITY27303636AD RANK$4.00bid9/10qualityAdvertiser ATop of page30AD RANK$6.00bid5/10qualityAdvertiser BSecond27AD RANK$9.00bid3/10qualityAdvertiser CThirdQuality wins the position and then discounts the click — you pay the rank below you ÷ your own quality.
Height is where the ad lands. Width is what the advertiser bid. C bids more than twice what A bids, and comes third — then pays more per click for the worse position, because price is set by rank divided by your own quality. The numbers are illustrative; the reversal is the point.
  1. 01Switch the primary conversion action to the offline one.
  2. 02Mark form fills as secondary so they still report but no longer bid.
  3. 03Give the offline conversion a value if the values differ meaningfully.
  4. 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.

  1. 01Reconcile Google conversions against treated patients every month.
  2. 02Track the ratio between them; a sudden change means tracking broke, not that demand changed.
  3. 03Report cost per treated patient to the owner, not cost per lead.
  4. 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.

01

The reported number and the real number stopped agreeing.

What is actually happening

Nothing joins the ad click to your EHR or practice management system, so the platform reports what it can see and nobody reconciles it.

What fixes it

Capture the click identifier at the form, store it against the record, send the outcome back when it is known.

02

Conversions collapsed and nothing in the account changed.

What is actually happening

The tracking broke, not the campaign — a site update, a consent banner change, or a browser tightening cookie rules.

What fixes it

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.

03

Compliance asked a question nobody could answer in writing.

What is actually happening

The tags were installed by whoever built the site, and no one has audited what leaves the page or where it goes.

What fixes it

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.