Skip to main content
Guide

Why Ad Platforms Disagree on Clinic Conversions

Ad platforms report different conversion counts for the same clinic because they use different windows, credit rules, and modelling. Here is how to reconcile them.

10 min read

Ad platforms disagree on your clinic's conversion counts because each one uses a different attribution window, a different rule about who gets credit, a different position on view-through conversions, and a different amount of statistical modelling, and each one is reporting on its own performance. Curve is the HIPAA-compliant tracking, attribution, and analytics platform for healthcare, and one of the reasons clinics run it is that it gives you a single server-side record of what actually happened, so platform numbers become something you can explain rather than something you argue about. A signed BAA comes with every plan.

Start here: the numbers are not supposed to match

The most useful thing you can accept early is that Google Ads, Meta, Microsoft, your analytics, and your CRM will never produce the same conversion count, and that this is not a bug you can fix with better configuration.

Each system is answering a slightly different question. Google Ads answers "how many conversions can I attribute to my ads under my rules". Meta answers the same question under different rules. Your analytics answers "how many conversion events did I directly observe on my site". Your CRM answers "how many people entered the pipeline". Four questions, four answers.

The goal is not identical numbers. The goal is knowing which number to use for which decision, and being able to explain a gap when your practice owner asks about it.

The five reasons the numbers diverge

Attribution windows

An attribution window is how long after an ad interaction a conversion still counts. Platforms ship different defaults, allow different maximums, and treat clicks and views differently.

This matters enormously in healthcare because consideration cycles are long. Somebody researching a knee replacement, a fertility clinic, an orthodontic case, or a GLP-1 program does not book on day one. If one platform is counting a 30-day window and another is counting seven days, they are measuring different amounts of the same patient journey. We cover the choice in detail in our guide to conversion tracking setup across Google, Meta, and Microsoft.

View-through conversions

Meta counts conversions from people who saw an ad and did not click it. Google Ads can too, particularly on Display and YouTube. Your analytics almost never does, because there is no click for it to observe.

View-through credit is not inherently illegitimate. Awareness advertising genuinely influences behavior. But it is unverifiable from your side, and it inflates a platform's count relative to any click-based measurement. When a platform reports far more conversions than your site observed, view-through is often most of the gap.

Credit rules and last-click bias

Every platform gives itself credit for a conversion it touched. If a patient clicks a Google search ad on Monday, sees a Meta retargeting ad on Wednesday, and books on Friday, Google will count a conversion and Meta will count a conversion. Both are being honest by their own rules. Added together they report two bookings where the clinic got one.

This double counting is the single most common reason a clinic's total reported conversions exceed the number of patients who actually appeared. If you are summing platform-reported conversions across channels, you are overstating results, and the overstatement grows with how many channels you run.

Modelling and estimation

Browser privacy changes, ad blockers, cookie restrictions, and consent choices mean platforms observe less than they used to. They fill the gap with modelled conversions: statistical estimates of conversions they believe happened but could not directly measure.

Modelled conversions are a reasonable engineering response to a real measurement problem. They are also, from your perspective, unauditable. You cannot trace a modelled conversion back to a person or a session, because there was no observed person or session. When platform numbers move without any corresponding change in your own data, modelling is a likely explanation.

Self-reporting and deduplication failures

Every ad platform is grading its own homework. That does not make the numbers dishonest, but it does mean the defaults tend toward generosity, because generous numbers make advertising look effective.

On top of that sits a purely technical failure mode: deduplication. If you run both a browser pixel and a server-side conversion API without a shared event identifier, the platform receives the same conversion twice and may count it twice. This is a genuinely fixable problem, unlike the four above, and it is worth checking before you conclude anything about methodology.

Why healthcare makes all of this worse

Clinics hit every one of these problems harder than a typical ecommerce advertiser, for reasons specific to how patients behave and how healthcare data has to be handled.

The journey is long and interrupted. Weeks between first research and first appointment is normal. Long journeys cross more attribution windows, involve more channels, and produce more double counting.

The conversion often happens off your website. The patient clicks through to a booking tool, an intake platform, or a scheduling widget on a different domain. Without attribution carried across that handoff, the conversion is invisible to your own measurement while the platform may still claim it.

Phone is a major channel. A meaningful share of clinic bookings never touch a form. If calls are not tied back to sessions, your analytics undercounts against every platform.

You cannot fix it by sending more data. An ecommerce advertiser can improve match rates by sending richer customer data to platforms. A clinic cannot, because that data is health-adjacent and neither Meta nor Google signs a BAA for its advertising products. The privacy constraint is real, and it is why the reconciliation has to happen on your side of the line.

Consent gating removes sessions. Where consent for analytics or advertising cookies is declined, some measurement legitimately does not happen. That is the system working correctly, but it is another source of gap.

How to reconcile without chasing a match

The practical approach is to build one internal source of truth and treat platform numbers as inputs rather than as the record.

Pick one number as your business truth. For most clinics that is booked or attended appointments from the practice management system or CRM. It is the number the practice actually cares about, and it is not subject to any platform's credit rules.

Use platform numbers for optimization only. Meta's count is what Meta's algorithm learns from. Google's count is what Google's bidding uses. They need to be internally consistent within that platform, and they do not need to match anyone else. Judge a campaign against the same platform's own history, not against another platform's totals.

Never sum conversions across platforms. Cross-channel totals from platform reports are structurally inflated. If you need one blended number, take it from your own measurement layer where a single conversion appears once.

Standardize the windows you compare. When you do compare, make sure both sides are on the same window and the same conversion definition. Half of reported discrepancies dissolve at this step.

Reconcile at a fixed cadence, not on demand. Monthly, with a written note explaining the gap. The note is the deliverable. A gap you can explain is a managed gap.

Fix deduplication first. Before doing any methodological reasoning, confirm the same conversion is not arriving twice at the same platform. Shared event identifiers between browser and server events are the mechanism. Our piece on Meta Conversions API architecture for healthcare covers the implementation side.

How Curve gives you a stable reference point

Curve is HIPAA-compliant ad tracking, attribution, and analytics built for healthcare, and it is deliberately positioned between your website and the ad platforms rather than alongside them.

The Curve tracking script installs in place of the Meta Pixel and Google tag. Events go to Curve's US-hosted infrastructure first, and Curve forwards clean conversions server-side to Meta CAPI, Google Ads Enhanced Conversions, TikTok, Microsoft, LinkedIn, and other destinations. That order of operations is what makes reconciliation possible.

  • One record of what happened. Because every conversion passes through Curve before it reaches any platform, there is a single first-party log of the event, its source, its click ID, and its timestamp. Platform reports become claims you can check against a record.
  • Server-side forwarding with deduplication in mind. Sending conversions from the server rather than only from the browser removes a large class of loss from ad blockers and browser restrictions, and it puts event identity under your control rather than the tag manager's.
  • Reconciliation reporting for Google Ads. Curve reports what it sent to Google against what Google reports receiving, which turns "the numbers do not match" into a specific, checkable delivery question.
  • Bridge tokens across the booking handoff. When a patient clicks out to IntakeQ, Calendly, or Jane App, a bridge token carries attribution across so the conversion is not orphaned. This closes the most common blind spot in clinic funnels.
  • Incoming webhooks and offline conversion uploads. Booked and attended outcomes come back from the CRM or practice management system and are matched on email, click ID, or bridge token, so your business truth and your ad measurement finally reference the same events. Incoming data cannot override protected core attribution fields, so a misconfigured integration cannot corrupt the record.
  • Per-destination field mapping and hashed identifiers. Only explicitly mapped fields forward to a given destination, and identifiers are SHA-256 hashed to each platform's requirements. Neutral event aliases keep the service line out of the platform's view. You improve measurement without widening disclosure.
  • Campaign reporting in one place. Paid media, organic search, website behavior, and CRM outcomes sit in one workspace with freshness indicators, so you can tell a stale sync apart from a real drop.

Curve includes a signed BAA on every plan, which is the part no ad platform offers for its advertising products. For the underlying architecture, see our technical overview of conversion API architecture.

What a good monthly reconciliation looks like

  1. Fix the window and the definition. Same date range, same conversion, on every system you are comparing.
  2. Record the platform numbers as reported. Do not adjust them yet. Write them down as they are.
  3. Record your own observed number. From your measurement layer, where each conversion appears once.
  4. Record the business number. Booked or attended appointments from the CRM or practice management system.
  5. Name the gaps. View-through, cross-channel overlap, modelling, consent-gated sessions, phone calls, off-site bookings. Assign each gap a likely cause.
  6. Check deduplication. Confirm browser and server events for the same conversion share an identifier.
  7. Decide with the business number. Optimize inside each platform with that platform's number. Allocate budget with yours.

Frequently asked questions

Which platform's conversion count should I believe?

For optimizing inside that platform, its own. For deciding where the clinic's money goes, none of them. Use your own measurement layer and your CRM outcomes, because those count a patient once regardless of how many ads touched them.

Why does Meta report so many more conversions than my site sees?

Usually view-through conversions plus modelling. Meta counts people who saw an ad without clicking, and estimates conversions it could not directly observe. Your site can only count sessions that actually arrived. Neither number is wrong, they are answering different questions.

Is it double counting if Google and Meta both claim the same booking?

Yes, in the sense that summing them overstates results. Each platform is correctly reporting that it touched the journey. Adding claims across platforms is the error, not the individual reports.

Will server-side tracking make my platform numbers match?

No, and anyone promising that is overselling. Server-side tracking makes your own record more complete and more resistant to browser restrictions, which makes gaps explainable. Methodological differences between platforms remain because they are choices, not defects.

Can I just send more patient data to improve matching?

Not in healthcare. Richer identifiers do improve match rates, but the data involved is health-adjacent and neither Meta nor Google signs a BAA for advertising products. The compliant path is hashed identifiers limited to explicitly mapped fields, with neutral event names, forwarded server-side.

How much of a gap is normal before I should investigate?

There is no universal threshold, and any specific figure you see quoted should be treated skeptically. What matters is stability. A gap that holds steady month to month is methodological. A gap that suddenly changes without a campaign change points to a technical fault: a broken tag, a failed connector sync, a deduplication regression, or a consent configuration change.

Do consent choices explain part of the difference?

Yes. Where a visitor declines analytics or advertising cookies, some measurement legitimately does not occur, and platforms will handle that absence differently from your own analytics. It is a real and expected contributor to the gap rather than a fault to correct.

Where to start

Before you attempt any reconciliation, make sure a single conversion is not being counted twice inside one platform, and make sure your bookings actually come back from the systems where they happen. Those two fixes resolve more reported discrepancies than any amount of window tuning.

Curve gives clinics one compliant server-side record of every conversion, forwards clean events to each ad platform with per-destination field mapping and hashed identifiers, carries attribution across booking handoffs with bridge tokens, brings outcomes back through webhooks and offline uploads, and includes a signed BAA on every plan. Run our free compliance scanner to see what your current setup is sending, or visit curvecompliance.com to work through your reconciliation.

Reviewed August 2026. Ad platform attribution defaults, modelling behavior, and healthcare advertising policies change frequently. Verify current requirements before implementation.

Stay Compliant. Scale Confidently.

Join healthcare innovators who trust Curve for HIPAA-compliant ad tracking.Launch in hours, not months. Your growth stack, now HIPAA-safe.

Book a free tracking audit