Back to Blog
    Marketing & Analytics3 April 20268 min read

    Why Most Clinics Have No Idea If Their Ads Are Working

    You're spending thousands on Google and Meta ads every month. Here's what you're probably not tracking — and why it matters.

    TL;DR

    Most clinics can't tell if their ads work because the booking system and the ad platforms are two disconnected datasets — the click that brought a patient is never stored with the appointment. Capturing each ad's click ID (gclid, fbclid) at booking links every patient back to the exact click, so you can measure cost per paying patient and feed real conversions back to Google and Meta.

    Why Most Clinics Have No Idea If Their Ads Are Working

    If you run a medical or surgical clinic, chances are you've invested in your online presence. You have a professional website. You probably have an online booking system. You might be running Google Ads, Meta campaigns, or both.

    And at the end of each month, someone asks: "Are our ads working?"

    The honest answer, for most clinics, is: "We don't really know."

    Not because you're doing something wrong. But because there's a gap in the toolchain that nobody talks about.


    The Setup Everyone Has

    Here's what a typical medium-sized clinic looks like:

    • A well-designed website with provider profiles and procedure information
    • An online booking system (custom-built, Doctolib, or similar)
    • Google Ads campaigns targeting procedure-specific keywords
    • Maybe Meta/Instagram campaigns for brand awareness or lead generation
    • A billing or practice management system for invoicing

    Each of these tools works fine on its own. The problem is what happens between them.


    The Gap

    When a patient books an appointment through your website, your booking system records the appointment. But does it record:

    • Which Google search term the patient used?
    • Which ad campaign they clicked on?
    • Whether they came from Instagram or a direct Google search?
    • The specific click ID that Google or Meta uses to track the conversion?

    In almost every clinic I've seen, the answer is no. The booking system captures the patient's name, phone number, preferred date, and maybe the procedure they're interested in. That's it.

    This means you have two completely separate datasets:

    • Ad platform data: impressions, clicks, cost — but no idea what happened after the click
    • Clinical data: appointments, no-shows, surgeries, payments — but no idea where the patient came from

    The result? You can't connect the CHF 50 Google click to the CHF 12,000 surgery that happened four months later.


    Why This Matters More Than You Think

    "We can see our bookings went up when we increased ad spend."

    That's the level of insight most clinics have. And it's dangerously misleading. Here's why:

    Not all bookings are equal. A patient who books a rhinoplasty consultation from a Google Ad and shows up has a very different value than one who books from Instagram and no-shows.

    No-show rates vary by channel. We've seen clinics where Meta leads no-show at 40% while Google Ads patients no-show at 15%. Without channel attribution on each appointment, you'd never know.

    The real metric is cost per paying patient. Not cost per click. Not cost per booking. How much did you spend, per channel, to get a patient who actually had surgery and paid? That's the number that tells you whether your ads are working.


    What Full-Funnel Tracking Looks Like

    Imagine seeing this for every acquisition channel:

    Google Ads — March 2026

    • Ad spend: CHF 4,200
    • Clicks: 380
    • Bookings: 42 (11% click-to-book rate)
    • Kept appointments: 36 (86% show rate)
    • Surgery planned: 14 (39% consultation-to-surgery)
    • Surgery paid: 11 (79% payment rate)
    • Revenue: CHF 98,000
    • Cost per acquisition: CHF 382
    • ROI: 23x

    Meta Ads — March 2026

    • Ad spend: CHF 2,800
    • Leads: 95
    • Bookings: 28 (29% lead-to-book rate)
    • Kept appointments: 17 (61% show rate)
    • Surgery planned: 5 (29% consultation-to-surgery)
    • Surgery paid: 3 (60% payment rate)
    • Revenue: CHF 31,000
    • Cost per acquisition: CHF 933
    • ROI: 11x

    Both channels "work." But Google Ads delivers patients at CHF 382 each, and Meta at CHF 933 each. Without this breakdown, you'd just see "we spent CHF 7,000 and got some patients."


    The Missing Link: Click IDs

    The technical piece that makes this work is surprisingly simple. When someone clicks on a Google Ad, Google appends a gclid parameter to the URL. Meta does the same with fbclid. These are unique identifiers for each ad click.

    If your booking system captures and stores that click ID alongside the appointment, you now have the link. You can trace any patient back to the exact ad click that brought them.

    And here's the bonus: you can feed that data back to Google and Meta. When you tell Google "this gclid resulted in a CHF 12,000 surgery," their algorithm learns to find more people like that patient. Your ads get smarter over time.


    The Meta/Instagram Lead Problem

    There's a specific workflow that's particularly broken at most clinics: Meta lead form campaigns.

    Here's how it typically works:

    • You run Instagram lead form ads
    • Your marketing agency exports the leads to Excel
    • They email you the spreadsheet
    • Your staff calls each lead, tracks outcomes in a separate spreadsheet
    • If someone books, they manually create an appointment
    • The connection between the ad and the appointment is lost

    This is manual, error-prone, and means you can never track which Meta campaign actually led to paying patients.

    The alternative: leads flow directly into your system via a webhook. Staff sees them instantly, logs call outcomes, and schedules with one click. The connection to the original ad campaign is preserved all the way through.


    What Would You Do Differently?

    If you had full visibility into your patient acquisition funnel, what would change?

    • Budget allocation: Move spend from low-ROI channels to high-ROI ones
    • Campaign optimization: Double down on campaigns that bring surgery-converting patients, not just bookers
    • Agency accountability: Hold your marketing agency to CPA targets, not just click or booking volumes
    • Procedure-specific strategy: Run different channels for different procedures based on actual conversion data
    • No-show reduction: Identify and address channels with high no-show rates
    • Offline conversion feedback: Feed surgery payment data back to Google and Meta for algorithm optimization

    Closing

    The tools to build a great clinic website and booking system have existed for years. The missing piece has been connecting that front end to the clinical and financial back end — tracking the full journey from ad click to paid surgery.

    It's not a huge technical challenge. It's just something that nobody built specifically for clinics until now.

    If you're curious what this looks like in practice, we put together a detailed walkthrough with real examples: viali.app/funnels


    Frequently asked questions

    Why don't most clinics know if their ads work?

    Their booking system and their ad platforms hold two separate datasets — the booking system doesn't record which ad, search term or click brought the patient, so the ad click can't be connected to the eventual surgery.

    What is the metric that actually matters?

    Cost per paying patient — how much you spent per channel to get a patient who actually had surgery and paid — not cost per click or cost per booking.

    What is a click ID and why does it matter?

    Google appends a gclid and Meta an fbclid to each ad click. If the booking system stores that click ID with the appointment, you can trace any patient back to the exact ad click that brought them.

    Can conversion data be sent back to Google and Meta?

    Yes. Telling the platforms which click led to a paid surgery lets their algorithms find more people like that patient, so the ads get smarter over time.

    Why do no-show rates matter by channel?

    No-show rates vary by channel — some clinics see Meta leads no-show at 40% while Google Ads patients no-show at 15% — so channel attribution on each appointment changes which channel really performs.

    What's wrong with the typical Meta lead form workflow?

    Leads are exported to Excel and emailed, called and tracked in a separate sheet, and booked manually — so the link between the ad and the appointment is lost. Routing leads through a webhook preserves that connection.

    Ready to experience this yourself?

    Book a demo and see how Viali transforms your clinic operations.

    Request Demo