How do you measure aesthetics clinic ads through to bookings?

Meta's ad platform reports on events such as Lead, Schedule and Purchase, which fire the moment a form is filled in, a slot is picked or a checkout completes. None of those events tell you whether the patient was suitable, whether they paid a deposit, or whether they turned up. A UK aesthetics clinic needs to track the full chain: spend, lead, qualified lead, deposit-paid booking, attended, treated, revenue, and decide which of those steps its ad account should actually optimise towards.

What does Meta actually count when it reports a "result"?

Meta counts standard events: named actions its pixel or app SDK sends back to the ad account every time a visitor does something on your site. Meta's own developer documentation defines the three that matter to a clinic taking enquiries online. Lead fires "when a sign up is completed", the example given is a person filling in a form. Schedule fires "when a person books an appointment to visit one of your locations". Purchase fires "when a purchase is made or checkout flow is completed", and needs a currency and a value attached to the event so Meta can report spend against revenue (Meta for Developers, Meta Pixel Standard Events reference).

Notice what none of those three events know. A Lead event does not know if the person who submitted the form wants the treatment you offer, can afford it, or was just curious. A Schedule event does not know if that slot will be kept. A Purchase event, for a clinic, usually only exists if you sell something through a checkout, such as a deposit. If your clinic reports on "leads" or "form fills" as its main number, you are reporting on the least informative event Meta has.

What is the Conversions API, and does a clinic need it?

The Conversions API is Meta's server-to-server option for sending the same kind of event data straight from a business's own servers to Meta, instead of relying only on the browser-based pixel. Meta's developer documentation describes it as a way to send web, app and offline events "directly from your servers", so that ad blockers, browser privacy settings and lost pixel fires do not stop a real conversion from being counted (Meta for Developers, Conversions API get started guide).

For a clinic that takes a deposit through its own checkout, a Conversions API connection can make Meta's reported numbers more accurate, because the confirmation of payment is recorded on the server, not only in the patient's browser. It takes development work to set up and keep working: a clinic's website or booking system has to send the same event, tagged the same way, from its backend. This guide explains what the Conversions API is because it is part of how a clinic should think about measurement. It is not something PatientFlow builds or claims to run for a clinic's own site; PatientFlow's own claims are limited to what is listed under "How does PatientFlow handle this?" below.

Why do the same booking sometimes look like it happened twice?

If a clinic ever does send the same event from both the pixel (browser) and the Conversions API (server), Meta needs a way to avoid counting the booking twice. It does this through event deduplication. Meta's documentation is specific about how the matching works: it compares the pixel's "eventID" parameter against the Conversions API's "event_id" field, and the pixel's event name against the API's "event_name" field. Both have to match. Events are only treated as duplicates if the second one arrives within 48 hours of the first event with that same ID, and the clock starts when Meta receives the first event, not when it happened (Meta for Developers, Deduplicate Pixel and Conversions API events). The practical lesson for a clinic's own developer, if this is ever built, is to use one stable ID per booking rather than a new one on every page load, or the same deposit can be counted more than once.

What is an attribution window, and why does it change your numbers?

An attribution window is the length of time Meta will look back from a conversion to decide which ad gets the credit. Meta's own attribution settings, documented in its Business Help Centre, work on click and view: a click-through window (how many days after someone clicks an ad a conversion still counts) and a view-through window (how many days after someone merely sees an ad, without clicking, a conversion still counts). Meta shows these results "based on the attribution setting on the ad set level", so two ad sets in the same campaign can be measured differently (Meta Business Help Centre, About Facebook's attribution system). Check the setting on every ad set before comparing them.

This matters because two clinics can look at the same campaign and see different "cost per booking" purely because of the window, not because the campaign performed differently. A 7-day click window will credit a booking made six days after someone clicked an ad; a 1-day click window will not. When you compare your own numbers month to month, or compare your account to a case study or a vendor's published figures, check that the attribution setting is the same, or the comparison is meaningless.

What is a custom conversion, and should a clinic set one up?

Standard events like Lead or Purchase are broad. A custom conversion lets an advertiser define a narrower rule, usually a specific URL, such as a "deposit confirmed" thank-you page, and turn that into its own trackable and optimisable event inside the ad account, separate from every other form fill on the site (Meta Business Help Centre, About custom conversions for web). For a clinic, this is the difference between optimising Meta's delivery towards "anyone who filled in a contact form" and optimising it towards "anyone who reached the page that only loads after a deposit has cleared." The second is a far better signal for Meta's algorithm to learn from, because it is closer to a real patient.

What has to happen before any of this tracking is legal to run?

A tracking pixel, including Meta's, stores and reads information on a visitor's device, so it falls under the UK's Privacy and Electronic Communications Regulations (PECR), not just UK GDPR. The ICO's guidance on the use of storage and access technologies sets out that most advertising and retargeting pixels do not qualify for the narrow exceptions to consent (technologies that are strictly necessary for a service the user asked for, for example), so consent is required before they fire. The guidance is explicit that consent needs "a clear and positive action": continuing to use a website is not valid consent, nor is a pre-ticked box, and people must be able to withdraw consent as easily as they gave it (ICO, What are the PECR rules?). A clinic running Meta ads needs a compliant cookie banner that blocks the pixel until consent is given, not a banner that fires the pixel regardless and just displays a notice.

What is the full metric chain, and which step should you optimise on?

Every enquiry that comes from an ad passes through a chain of stages, and a clinic loses patients at every one of them. Write the chain down and put a number against each stage:

  1. Spend. What Meta charged for the period.
  2. Lead. Everyone who filled in a form or sent a message.
  3. Qualified. Everyone from that group who actually wants the treatment, can afford it, and can attend in a realistic timeframe.
  4. Deposit-paid booking. Everyone who paid to hold a consultation slot.
  5. Attended. Everyone who actually turned up.
  6. Treated. Everyone who went ahead with a treatment after the consultation.
  7. Revenue. What the treated patients actually paid.

Meta can only ever optimise its delivery on the events you give it. If the only event connected to your ad account is Lead, Meta will find you more people who fill in forms, which is not the same as more people who become patients. The nearer to "deposit-paid booking" you can get a trackable event, ideally through a custom conversion on a deposit confirmation page, the more useful Meta's own optimisation becomes, because it is chasing a signal that looks like a real patient rather than a click.

Attended, treated and revenue are worth tracking in your own spreadsheet even though Meta will never see them. They tell you whether the leads you are paying for convert into a working clinic, which the ad platform cannot measure on its own.

What should a clinic track in a simple spreadsheet?

You do not need software for this. A weekly row, by source (Meta, Google, referral, walk-in), with one column per stage in the chain above, is enough to see where patients are lost.

Illustration: a simple weekly tracking spreadsheet for one ad source
ColumnWhat to put in itWhere the number comes from
SpendTotal ad spend for the weekMeta Ads Manager
LeadsForm fills or messages receivedMeta Ads Manager (Lead event) or your inbox
QualifiedLeads who wanted the treatment, could afford it, could attendYour team's own log, from the conversation
Deposit-paid bookingsPatients who paid to hold a slotYour checkout or booking system
AttendedPatients who turned upYour diary
TreatedPatients who went ahead with treatmentYour clinical records
RevenueWhat treated patients paidYour till or PMS

Once you have four to six weeks of this, you can calculate a conversion rate between any two stages, and see which one is the weak link. A clinic with plenty of leads but few deposit-paid bookings has a qualification or speed-to-reply problem, not an ad problem. A clinic with plenty of deposit-paid bookings but few treated patients has a consultation-room problem, and no amount of ad spend will fix it.

Worked example: what a single stage actually costs

This is an illustration, not a real clinic's data. Say a clinic spends £1,000 in a month on Meta ads for injectables.

  1. The campaign generates 50 leads. Cost per lead: £1,000 ÷ 50 = £20.
  2. Of those 50, 20 are qualified (want the treatment, can afford it, can attend). Cost per qualified lead: £1,000 ÷ 20 = £50.
  3. Of those 20, 10 pay a deposit to book a consultation. Cost per deposit-paid booking: £1,000 ÷ 10 = £100.
  4. Of those 10, 8 attend. Cost per attended consultation: £1,000 ÷ 8 = £125.
  5. Of those 8, 6 go ahead with treatment. Cost per treated patient: £1,000 ÷ 6 = about £167.

Every one of those five numbers is "the cost per patient" depending on which stage you stop counting at. A clinic that only ever quotes cost per lead (£20) and a clinic that quotes cost per treated patient (£167) could be running the exact same campaign. When you compare your numbers to anything published, including this site's own guide to cost per new patient, check which stage the figure is measuring.

How do attribution windows change the same example?

Take the same £1,000 spend and 10 deposit-paid bookings. If three of those ten patients actually clicked the ad eight or nine days before they booked, a 7-day click attribution window will not credit that ad with those three bookings at all, because they fall outside the window. Your Meta dashboard would then report 7 bookings against £1,000 (£143 per booking) even though your own diary and checkout show 10 bookings (£100 per booking). Neither number is wrong; they are measuring different things. This is why the spreadsheet in the previous section, built from your own diary and checkout rather than from Meta's dashboard, is the only version of the truth a clinic should fully trust.

How does PatientFlow handle this?

PatientFlow runs Meta ads from the clinic's own ad account, so the clinic owns the account, the budget and the underlying data throughout. Every enquiry gets a WhatsApp reply in under 60 seconds, day or night, and is qualified in that conversation on treatment wanted, suitability, budget and timing before a slot is offered. The patient pays a deposit through the checkout to confirm the consultation, and the booking lands in the clinic's diary and in the PatientFlow portal with the full WhatsApp transcript attached, so a clinic can see exactly how each booking was qualified. Pricing is £2,000 one-time setup, then £75 per deposit-paid booking, no retainer; the clinic pays its own ad spend directly to Meta, from about £1,000 a month. Dr Motox, a UK aesthetics clinic with sites in Mayfair, Clapham and Chislehurst, booked 160 deposit-paid consultations in four months of 2026 at £36 per booking from its own Meta ad account, with a 6x return on ad spend once the campaign scaled (read the case study).

How do you reconcile Meta's dashboard against your own diary?

Expect the two to disagree, and check why rather than assuming one is broken. There are three usual reasons. First, the attribution window, covered above: Meta may credit a booking to an ad that was clicked outside the window it reports on, or fail to credit one that falls just outside it. Second, event setup: if the event connected to your ad account is Lead rather than a custom conversion on a deposit-confirmed page, Meta's count will always run ahead of your actual bookings, because it is counting a much earlier and much less reliable stage of the chain. Third, timing: a booking made days after the click can be credited to the ad that was clicked, so Meta's weekly figure and your diary's weekly figure can include different bookings even when both are right.

None of this means the dashboard is wrong. It means the dashboard and your diary are measuring related but different things, for different reasons, and a clinic that understands why will stop over-reacting to a single day's numbers moving.

What should you do with attended, treated and revenue, since Meta never sees them?

Feed them back into your own decisions, not into Meta's ad account. Meta can only optimise on events it receives, so it will never automatically learn that a particular audience produces patients who no-show, or that a particular treatment converts poorly at consultation. That analysis has to happen in your own spreadsheet, by cross-referencing the source of a booking (which ad, which audience, which creative) against what happened after the deposit was paid.

In practice this means tagging every deposit-paid booking with its source before it reaches the diary, so that three months later you can ask: which source produced patients who attended and went on to treatment, not just which source produced the cheapest bookings. A source with a higher cost per deposit-paid booking but a much higher attendance and treatment rate can be the better source once revenue is the measure, even though it looks worse on a dashboard that stops at "bookings."

A measurement checklist for this week

  1. Write down your own metric chain: spend, lead, qualified, deposit-paid booking, attended, treated, revenue.
  2. Start a weekly spreadsheet with one row per source and one column per stage.
  3. Check which event your Meta ad account is actually optimising on. If it is Lead alone, ask whether a custom conversion on a deposit or booking-confirmed page is possible.
  4. Confirm your site has a cookie banner that blocks the Meta pixel until consent is given, and that withdrawing consent is as easy as giving it.
  5. Note the attribution setting on each ad set, and use the same one whenever you compare periods.
  6. Every time you see a cost-per-patient figure, from any source, ask which stage of the chain it is measuring before you compare it to your own.

Sources

  1. Meta for Developers, Meta Pixel Standard Events reference. https://developers.facebook.com/docs/meta-pixel/reference/
  2. Meta for Developers, Conversions API get started guide. https://developers.facebook.com/docs/marketing-api/conversions-api/get-started
  3. Meta for Developers, Deduplicate Pixel and Conversions API events. https://developers.facebook.com/documentation/ads-commerce/conversions-api/deduplicate-pixel-and-server-events
  4. Meta Business Help Centre, About Facebook's attribution system. https://en-gb.facebook.com/business/help/458681590974355
  5. Meta Business Help Centre, About custom conversions for web. https://www.facebook.com/business/help/780705975381000
  6. ICO, Guidance on the use of storage and access technologies: What are the PECR rules?. https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/guidance-on-the-use-of-storage-and-access-technologies/what-are-the-pecr-rules/
  7. ICO, Guidance on the use of storage and access technologies (cookies and similar technologies). https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/guidance-on-the-use-of-storage-and-access-technologies/

Want deposit-paid consultations in your diary?

We run the Meta ads, answer every enquiry on WhatsApp in under 60 seconds, and book patients with a deposit down. £2,000 one-time setup, then £75 per deposit-paid booking. No retainer.