This site is under construction. Some pages, figures and testimonials are still placeholders while we build.
Guide 09 · Measure

Track what actually books a patient

A tag manager installed without breaking the site, one conversion that counts once, zero personal information, and a verification step you do before you trust any of it.

28 min read5 chaptersAdvancedUpdated 2026-09-26
01Get the plumbing in02Define the conversion03Consent

In this guide.

  1. 01Get the plumbing in
  2. 02Define the conversion
  3. 03Consent
  4. 04Connecting it to the ad platforms
  5. 05When it goes sideways
00Measure · The ClinicBoost guides

What you will have at the end.

A tag manager live, one conversion per real booking, consent respected, and a written verification you have run yourself and can rerun in ten minutes.

Before you start

Edit access to your website, or a provider who will make one change
Knowledge of where your booking confirmation lives
Your consent banner, if you have one, and the ability to change it

What you need open

A tag manager — one container, on every page
An analytics property — created fresh rather than inherited from a former provider
The preview mode — of whichever tag manager you use; this is the whole verification step

Every decision in this whole catalogue depends on one question: did that booking come from anywhere we can name. If the answer is no, you are not optimizing, you are redecorating.

01Measure · The ClinicBoost guides

Get the plumbing in

  1. Install one tag manager container, on every page

    A tag manager is a single piece of code on your site that lets you add and change measurement without touching the site again. Install it once and every later change is a five minute job instead of a ticket with your provider.

    One container. Two containers on one site is a real and common mess, usually the fossil of a previous agency.

    The snippet goes on every page, including the thank you page and the booking confirmation.
    If your booking tool is on another web address, it needs the same container or its own, and you need to know which.
    Before installing, search your site for existing measurement code and write down what you find. Removing it later is easier than discovering it during a discrepancy.

    In practice

    A tag manager does not measure anything by itself. Installing it and stopping is the most common half-finished state we see. It is a delivery mechanism, not a measurement.

  2. Create the analytics property yourself

    Create it under an account you own, not under a provider's. Clinics that inherit a property lose it when the relationship ends, along with every year of history.

    Set the time zone and the currency on day one. Both are painful to change later and both silently corrupt comparisons if they are wrong.

02Measure · The ClinicBoost guides

Define the conversion

  1. Decide what a conversion actually is

    Write it in one sentence before touching any tool. For most clinics it is one of two things: an appointment was booked, or an enquiry was submitted. Those are different and you should not merge them.

    Things that are not conversions and are constantly configured as though they were: a page view of the contact page, a click on the booking button, time on site, a scroll depth.

    A click on a booking button is an intention. Counting it as a booking inflates everything downstream.
    A page view of the confirmation page is a good proxy, provided the page cannot be reloaded or reached directly.
    If you take bookings by phone, a tap on the phone number is the closest measurable signal. Count it as its own thing, named as its own thing, not as a booking.
  2. Make it count once

    One booking equals one conversion. This sounds trivial and it is the failure we find most often when a clinic's reported numbers do not match their schedule.

    If the confirmation page can be refreshed, the event fires again. Set the counting to once per session at minimum.
    If you send the same event from the browser and from your server, they must carry a shared identifier so the platform can deduplicate.
    If two tools both fire on the same page, one of them is a leftover. Find it.
    Exclude your own clinic's network address, and your provider's, from the analytics property. Your team reloading the confirmation page is real and it is measurable.

    In practice

    Test by booking one appointment and counting. If you see two, stop and fix it before you build anything on top.

  3. Keep the event payload empty of people

    The event carries the fact that a booking happened and, at most, which service category it belonged to at a level too coarse to identify anyone. Nothing else.

    No email, hashed or otherwise. Hashing is not anonymization when the set of possible inputs is small.
    No name, no phone, no date of birth, no postal code at full precision.
    No symptom, no diagnosis, no treatment name attached to an individual event.
    No value amount if the amount would reveal which treatment was booked.
    Check your URLs. A confirmation URL containing a name or an appointment reference sends that to analytics automatically, because the page path is part of every page view.
03Measure · The ClinicBoost guides

Consent

  1. Make the banner actually control the tags

    A consent banner that appears but does not gate anything is worse than no banner, because it documents that you knew and did it anyway.

    The tags that set identifiers must not fire before consent. Your tag manager can hold them until the signal arrives.

    Verify by loading the site in a fresh browser, declining, and checking that nothing fired.
    Then accept, and check that everything fired once.
    Both halves matter. Most clinics test only the accept path.
  2. Know what an iframe does to consent

    If your booking flow lives inside an embedded frame from another provider, your consent decision does not necessarily reach it, and the identifiers your ad platforms rely on often do not cross into it either.

    This produces a specific and confusing symptom: the tags are published, they look correct, and they report nothing, because consent was never granted inside the frame and the platform silently discards the event.

    Ask your booking provider whether they receive your consent signal.
    Ask whether the advertising click identifier is preserved when the frame loads.
    If both answers are no, either move the booking onto your own domain or accept that this path is unmeasurable and say so out loud rather than reporting a number you know is wrong.
04Measure · The ClinicBoost guides

Connecting it to the ad platforms

  1. Send the conversion back, once, to each platform

    Each advertising platform needs to know the booking happened so it can learn. Send it once per platform, from one place.

    Fire from the tag manager rather than from code pasted into the page, so you can see and change it.
    One tag per platform. Two tags for the same platform is the standard cause of doubled numbers.
    Never send the conversion from both a platform plugin and the tag manager. Pick one.
  2. Reconcile monthly against the schedule

    Once a month, put three numbers side by side: appointments your software recorded as new patients, conversions your analytics recorded, and conversions each ad platform claims.

    They will differ. The point is that the differences are stable and you can explain each one.

    Ad platform higher than analytics: expected, because platforms credit views and longer windows.
    Analytics higher than the schedule: something is counting more than once, or counting your own team.
    Schedule higher than everything: people are calling instead of booking online, which is fine but means your online numbers are a floor, not a total.

    In practice

    Write the explanation down next to the numbers. Next month you will not remember, and the month after that someone will present the gap as a new problem.

05Measure · The ClinicBoost guides

When it goes sideways

SymptomProbable causeFix
Conversions are exactly doubleTwo tags for the same platform, or a refreshable confirmation pageRemove the duplicate tag and set counting to once per session. Retest with one booking.
Tags are published and report nothingConsent never granted on the path that matters, often inside an embedded booking frameTest the decline and accept paths separately, and ask the booking provider whether your consent signal reaches them.
Traffic shows as coming from your payment providerA hop to an external payment page starting a new session on returnAdd the payment domain to the referral exclusion list in the analytics property.
Personal information is appearing in your reportsThe confirmation URL carries it in the query stringStrip the query string before recording the page view, and ask the booking provider to stop putting it there.
Analytics shows far fewer bookings than the schedulePhone bookings, which are invisible online, or an unmeasurable booking frameMeasure phone taps as a separate named event and state clearly that the online number is a floor.
Numbers changed sharply with no campaign changeSomebody edited a tag, or the consent banner was updated, or a provider republished the siteCheck the tag manager version history first. It is dated and it names who changed what.
Two analytics properties both have dataA previous provider's setup is still runningDecide which one is canonical, and remove rather than ignore the other. Ignored properties get quoted back to you a year later.
Final checklist

Before you trust a single number

One tag manager container, on every page including the confirmation
Analytics property owned by you, time zone and currency set
The conversion defined in one sentence, written down
One booking produces exactly one conversion, tested
No email, name, phone, symptom or treatment in any event
Confirmation URL carries nothing identifying
Consent decline path tested, not only the accept path
Your own network address excluded
One tag per ad platform, no plugin duplicates
A monthly reconciliation against the schedule, with the gaps explained in writing
Questions we get.
Can we send hashed emails for better ad matching?
In a clinic, treat that as a no. The fact that a specific person booked at a specific clinic is itself health information, and hashing does not change who the data is about.
Do we need a consent banner at all?
Depends on your jurisdiction, and the answer is moving in one direction everywhere. Build as if you do. A banner that genuinely gates tags is cheap now and expensive to retrofit.
Our booking tool cannot be measured. What do we do?
Measure the step before it, name the event clearly as a start rather than a booking, and reconcile against the schedule monthly. An honest proxy beats a dishonest total.
How long until the data is usable?
A month of clean data beats a year of dirty data. Start the clock from the day verification passed, not from the day you installed the container.
Should we track phone calls?
Track taps on the phone number, which is free. Call tracking numbers add attribution and also add a name and address mismatch risk with your listing, so weigh that before installing one.

This guide is general information for clinic owners. It is not clinical advice, and it does not replace the guidance of your professional body or your own advisers.

Take it with you

The full guide as a PDF, plus every other guide we publish. One email, once.

We send the guides and the occasional new one. No patient data, no sharing, unsubscribe in one click.