How to measure dental marketing against booked revenue: the complete guide
On this page
To measure dental marketing properly, you follow each patient from the ad they clicked to the treatment they paid for, and you judge spend on the far end of that chain, not the near end. That means naming every stage between a click and a completed treatment, picking one number for each stage, and knowing which system holds it: the ad platform, your website analytics, your phone records or your practice management system (PMS).
This guide sets out that method in full. It's the one I use when I build dental marketing attribution for a practice, written so a principal can check any report against it.
Why measurement decides spend
Every ad platform optimises towards whatever you tell it counts as a result. That instruction is called a conversion action: the event Google Ads or Meta is told to treat as success, such as a form submission, a call over 60 seconds or a booked consultation. Automated bidding then spends your budget chasing more of that event.
So the definition of "a result" isn't a reporting detail. It steers the money. If the conversion action is a form fill, the platform will find people who fill in forms. Some of them will book, some won't answer the phone, some will be looking for an NHS appointment you can't offer, and a few will be spam. The platform can't tell the difference, because nobody told it.
This is why cost per lead misleads practices. A campaign can halve its cost per lead by attracting cheaper, weaker enquiries, and the report will show it as an improvement. The number that should replace it is cost per booked consultation, and further along, the cost of each treatment that actually started.
Two practices can spend the same amount and report the same number of enquiries while one of them loses money. The difference only shows once you follow those enquiries into the diary and the till. That is the whole case for measuring against booked revenue: it's the only level where the report and the bank statement agree.
The stages from click to completed treatment
A high-value treatment such as implants, full-arch work or clear aligners rarely books off one visit. The patient researches, compares, worries about cost, and comes back. The stages below hold whether the journey takes a day (an emergency appointment) or four months (a full-arch case).
Here is what each stage means in plain terms.
- Ad seen and click. Someone sees an ad and clicks it. The ad platform records both.
- Visit. They land on your site. Your analytics tool records the visit and what they did.
- Enquiry. They submit a form, phone, book online or send a message. This is where most reports stop.
- Consultation booked. A real appointment exists in your diary.
- Consultation attended. They turned up. The appointment is marked completed rather than cancelled or failed to attend.
- Treatment accepted. They agreed a treatment plan, often after a cooling-off period and a finance conversation.
- Treatment started. The first clinical appointment of the accepted plan took place. For a long treatment, the start is the stage to watch, because it arrives months before the final invoice.
- Treatment completed and paid. The work was done and the invoice settled, in full or on finance.
After stage eight, the patient returning for more care matters for patient lifetime value. It's a follow-on, not a stage, and it sits outside most campaign reports because it takes years to read.
The gap between stages three and four is where most dental marketing dies. What happens there (speed of response, missed calls, the treatment coordinator's handover) is covered in what happens after the enquiry. For measurement, the point is simpler: if you can't see stage four, you can't tell a marketing problem from a reception problem.
The metric for each stage
One number per stage keeps the report readable. Each metric below links to the page that defines it in full. The formulas are standard; the figures in the example further down are illustrative, not benchmarks.
| Stage | Metric | Formula | What it tells you |
|---|---|---|---|
| Click | Cost per click | Spend divided by clicks | Price of attention. Useful for diagnosis, useless as a goal |
| Enquiry | Cost per lead | Spend divided by enquiries | Price of an enquiry of unknown quality. Why it misleads |
| Enquiry to booked | Booking rate | Booked consultations divided by enquiries | How well enquiries are handled and how qualified they were |
| Booked | Cost per booked consultation | Spend divided by booked consultations | The first number worth steering on |
| Attended | Show rate | Attended divided by booked | Whether bookings were real, and how well reminders work |
| Accepted | Treatment acceptance rate | Accepted plans divided by attended consultations | Clinical conversation, price fit and patient readiness |
| Started and completed | Cost per treatment start, revenue per patient | Spend divided by starts; revenue divided by patients | Whether the channel pays for itself. See dental marketing ROI |
| Returns | Lifetime value | Revenue from a patient over a set period | What a new patient is worth to the practice, not just the first course |
Two rules make these useful.
First, every rate is a ratio of two adjacent stages. If show rate falls, the problem sits between booking and attendance, not in the ad account. That is how a report stops being a blame exercise between the agency and the front desk.
Second, cost metrics use the same spend figure all the way down. If a campaign spent £2,000, then cost per lead, cost per booked consultation and cost per treatment start all divide that same £2,000. The number grows as you move down the funnel, and the jump between two stages shows where money is leaking.
The worked example below shows how the maths reads. Illustrative figures, not benchmarks: I made up round numbers so the arithmetic is easy to follow.
| Illustrative figures, not benchmarks | Campaign A | Campaign B |
|---|---|---|
| Spend | £2,000 | £2,000 |
| Enquiries | 80 | 40 |
| Cost per lead | £25 | £50 |
| Booked consultations | 16 | 20 |
| Cost per booked consultation | £125 | £100 |
| Attended | 10 | 17 |
| Treatment accepted | 3 | 7 |
| Cost per treatment start | £667 | £286 |
Campaign A wins on cost per lead and loses on everything that pays the bills. Most dashboards would have told you to move budget from B to A.
Where each number comes from
This is the part most dental marketing reports skip, and the reason two reports for the same practice can disagree. Each stage is recorded by a different system, and each system sees only its own slice.
| Stage | Source system | Who owns the data | What it cannot see |
|---|---|---|---|
| Ad seen, click | Google Ads, Meta Ads Manager | The practice's ad accounts | Anything after the click unless you send it back |
| Website visit | Google Analytics 4 (GA4) | The practice's analytics property | Visitors who decline cookies, and anything off the website |
| Form enquiry | Website form tool, GA4 event | The practice's site | Whether the person was real, qualified or reachable |
| Phone enquiry | Call tracking, phone system | Call-tracking account, phone provider | Callers who dialled a number the tracking does not cover |
| Online booking | Booking tool or portal | The booking vendor, then the practice | Often the ad source, because booking tools break tracking. See tracking online bookings |
| Booked, attended | Practice system diary | The practice | Which ad or search brought the patient, unless you record it |
| Accepted, completed, paid | Practice system: treatment plans, invoices, payments | The practice | Marketing source, unless joined to a click or enquiry record |
| Returns | Practice system over time | The practice | Nothing, provided the patient record is kept clean |
GA4 is Google's analytics tool; it records what visitors do on your website. A practice system is the software that runs your diary, patient records and billing: in the UK that is usually Dentally, Software of Excellence, R4, Pearl Dental Software, Aerona or Xenon. I compare what each of them allows in the practice software comparison.
Read the table from top to bottom and a pattern appears. The marketing systems see the top half. The practice system sees the bottom half. Nothing sees both unless someone joins them. That join is the core of attribution. It needs something that survives the gap: a click identifier captured with the enquiry, a phone number matched to a patient record, a booking reference, or a source field reception fills in.
In GA4, the events you mark as important to your business are now called key events. Google renamed them from "conversions", so older guides and reports use the old word.1 Either way, a GA4 key event is still a website action. It isn't a patient.
What a join needs
For each enquiry, at least one of these must travel with it into your practice system:
- a click identifier, the code Google or Meta adds to the link when someone clicks an ad (for Google, the GCLID)
- a contact detail (email or phone) that can be matched to the patient record later
- a source field answered at booking ("how did you hear about us?"), which is weak on its own but better than nothing
- a booking reference that ties the website booking to the diary entry
A practice with none of these can still report cost per lead. It can't report anything below it with confidence. How I build that join, and what it sends back to the ad platforms, is described on the dental marketing attribution page.
Five mistakes that break the numbers
These are a common pattern in dental ad accounts. None of them needs new software to fix.
- Counting the same enquiry twice. A form that fires a conversion on submit and again on the thank-you page, or a Google Ads conversion imported from GA4 alongside the Google Ads tag, doubles the enquiry count. Check that each enquiry type is counted by one conversion action only.
- Counting clicks on the phone number as calls. A tap on a phone link isn't a call. The person may hang up before it connects. Count connected calls from call tracking instead.
- Treating a booking request as a booking. Many online booking tools send a request that reception confirms later. Until it's in the diary, it's an enquiry.
- Mixing existing patients into new-patient figures. An existing patient who clicks an ad to rebook a hygiene visit isn't new business. The practice system knows who is new; the ad platform doesn't.
- Leaving the source field optional. If reception can skip "how did you hear about us?", it will be skipped on the busiest days, and those are the days that matter.
Attribution models and their limits
An attribution model is a rule for splitting credit between the touches that came before a result. A patient who clicked a Google ad in March, saw an Instagram ad in April, and searched your practice name in May before booking has three candidates for credit. The model decides who gets it.
| Model | How it assigns credit | Where you meet it | The catch |
|---|---|---|---|
| Last click | All credit to the final ad click before the conversion | Available in Google Ads and GA4 | Rewards brand searches that would have happened anyway |
| Data-driven | Credit split using the platform's own analysis of converting and non-converting paths | Google's default model2 | You cannot audit how it decides, and it only sees Google's own touches |
| Platform self-reporting | Each platform credits itself for any conversion it touched in its window | Google Ads and Meta reports | Both platforms claim the same patient, so the totals add up to more than you got |
| Source field at booking | Whatever the patient says | Practice system acquisition source | Patients misremember, and reception skips the question when busy |
| Closed-loop (practice system joined to clicks) | Credit to the ad click recorded against the patient who paid | An attribution build | Only as complete as consent and capture allow |
Google no longer supports the older rule-based models (first click, linear, time decay and position-based) in Google Ads, and GA4 dropped them in November 2023, leaving data-driven and last-click options.23 If an old report quotes a linear or time-decay model, it predates that change.
The conversion window
Every platform counts a conversion only if it happens within a set time after the click, called the conversion window. In Google Ads you set it per conversion action. The click-through default is 30 days, and it can run from 1 to 90 days depending on the source of the conversion.4 A full-arch patient who books four months after first clicking falls outside most windows. The platform will never count that booking, however it's measured. Your practice system will.
What no model can tell you
Attribution says which ad-sourced patients paid. It doesn't say which of them would have come anyway. Someone who searches "dentist near me" at 7am with toothache might have found you through the map listing if the ad had not run. Crediting the ad is attribution. Measuring what the ad added is incrementality, and it needs a different test: switching a campaign off in one area or for one period and comparing. Those tests need volume and patience, and I only recommend them once the basic join works.
Known gaps
Every measurement setup has blind spots. A good report names them rather than hiding them.
- Phone calls. A caller leaves no click identifier behind. Call tracking can tie a call to a campaign, and a caller's number can sometimes be matched to a patient record, but coverage is never complete.
- Walk-ins and word of mouth. A patient who saw an ad and later walked in won't be joined to that ad.
- Cross-device journeys. Clicking on a phone at lunch and booking on a laptop at night breaks many joins.
- Declined consent. Patients who decline cookies or ad measurement are, rightly, not tracked. They still exist as revenue.
- Manual bookings. If reception books over the phone and doesn't record the source, the link is lost.
The useful habit is to report coverage: the share of new patients a report can trace to a source. A report that traces a small share honestly is more useful than one that claims to trace everything.
Consent
Measurement in a dental practice sits under stricter rules than most businesses face, for two reasons.
First, cookies and similar tracking on your website fall under the Privacy and Electronic Communications Regulations (PECR). Advertising tags, including Google Ads conversion tracking and the Meta Pixel, need the visitor's consent before they run. Analytics used only to improve your site can run without consent, but only if you tell visitors clearly, give them a simple, free way to object, and keep the data away from advertising. Your cookie banner has to offer a real choice either way. How consent mode and your banner fit together is covered in cookie consent on dental websites.
Second, information about a patient's dental care is health data. Under UK GDPR, health data is special category data and needs extra justification to process.5 Appointment and treatment details that reveal something about a person's health fall into it. Sending anything derived from the patient record back to an advertising platform is a decision for the practice as data controller, with a lawful basis, patient-facing wording and usually a data protection impact assessment (a DPIA, the written risk assessment UK GDPR expects for higher-risk processing).
Three positions follow from that, and I hold to all of them.
- Measurement and advertising are separate purposes. A patient can agree to the practice knowing which ad brought them in without agreeing to be advertised to.
- Nothing clinical leaves the practice. An ad platform can be told "a conversion worth £X happened for this click". It's never told what the treatment was.
- Meta is a special case. Meta's own terms restrict health information, and what a dental practice may send is narrower than for Google. That is set out on the Meta Conversions API page.
Consent also shapes the numbers. Every patient who declines is a patient the report can't trace. Plan for it by reporting coverage alongside results, never by quietly scaling the traced figure up.
Reporting cadence
Different stages move at different speeds, so one report frequency doesn't fit all of them.
| Cadence | What it covers | Metrics | Who reads it |
|---|---|---|---|
| Weekly | Is anything broken, and are enquiries being handled? | Spend, enquiries, missed calls, booking rate, tracking health | Whoever runs the ads, and the practice manager |
| Monthly | Is each channel producing patients at a sensible cost? | Cost per booked consultation, show rate, acceptance, revenue by channel, coverage | The principal |
| Quarterly | Are the long-cycle treatments paying back, and is the mix right? | Cost per treatment start by treatment line, lifetime value, channel mix | The principal, with the numbers from the practice accounts |
Two habits keep the monthly report trustworthy.
Read long treatments by cohort. A cohort is a group of patients who first enquired in the same period. Group implant and full-arch patients by the month they first clicked, then watch that group's bookings, starts and revenue accumulate over the following months. A month-by-month view makes a good campaign look bad, because its revenue arrives after the report closes.
Keep unknown separate from zero. If a campaign's revenue can't be traced, the report should say "not traceable", not "£0". The difference decides whether a campaign gets switched off.
What a monthly report should actually show, and how it should look, is covered in what a dental marketing report should show. If you want to know whether all of it paid for itself, that is the job of whether the marketing paid for itself.
Questions to ask of any report
Whoever produces your marketing report, whether that is me, an agency or your own team, these questions show quickly whether it measures patients or activity.
- Where did each number come from? Every figure should name its source system. "Leads: 64" means nothing until you know whether it came from Google Ads, GA4, the call log or the diary.
- What share of new patients can this report trace? If the answer is "all of them", ask how phone bookings and walk-ins were handled.
- Are Google and Meta totals added together? If so, the same patient may be counted twice.
- Which conversion action is the ad account bidding on? If it's a form fill or a page view, the platform is being asked to find form fillers, not patients.
- What changed since last month, and what was done about it? A report that only describes numbers, with no decision attached, is a status update, not a management tool.
- What is still unknown? A sound report has an answer. A report with no blind spots is hiding them.
If a supplier can't answer the first two, the rest of the report can't be trusted either.
Where to start
If you measure nothing below the enquiry today, don't try to build all eight stages at once. In order:
- Record the source of every new patient in your practice system, even if it's only the source field at booking.
- Make sure calls from ads are tracked, since they are often the largest enquiry channel for a practice.
- Count booked and attended consultations per channel each month.
- Then join clicks to patients, and send the result back to the ad platforms.
Step four is the one that changes how the platforms bid. It's also the one that needs the most care with consent and data.
If you want someone to set this up and run it inside your own accounts, email me at Fayez@imfayez.com with the software your practice uses and what you spend on ads. You can also read how I work first. The terms used on this page are defined in the dental marketing glossary.
Sources
-
Google Analytics Help, "About key events". https://support.google.com/analytics/answer/13965727, accessed 1 October 2026. ↩
-
Google Ads Help, "About attribution models", https://support.google.com/google-ads/answer/6259715, and "About data-driven attribution" (default model for most conversion actions), https://support.google.com/google-ads/answer/6394265. Both accessed 1 October 2026. ↩ ↩2
-
Google Analytics Help, attribution models available in GA4 (older models no longer available as of November 2023). https://support.google.com/analytics/answer/10596866, accessed 1 October 2026. ↩
-
Google Ads Help, "About conversion windows". https://support.google.com/google-ads/answer/3123169, accessed 1 October 2026. ↩
-
Information Commissioner's Office, "What is special category data?". https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/lawful-basis/special-category-data/what-is-special-category-data/, accessed 1 October 2026. ↩
Further sources
- Google Ads Help: About data-driven attribution, accessed 1 October 2026.