Free setupLive in 7 days30 leads in 30 days or your money back
Home  /  Industries  /  Dental  /  Conversion tracking
Dental · conversion tracking

Your booking button may be throwing your conversions away.

We tested this rather than assumed it. One of Australia's most widely used dental booking flows completes on a separate domain carrying no analytics tags at all, which means the booking is real and the attribution is gone.

What we actually tested

The booking completes somewhere you cannot measure.

We fetched the booking endpoints of the major Australian dental booking layers directly. Praktika's booking runs on appointments.praktika.net.au, which is a different registrable domain from both the practice's website and praktika.com.au. It returned no analytics tags of any kind: no Google tag, no tag manager, no analytics, nothing. There is also no thank you page on the practice's own site for a conversion to fire on.

So a practice sending paid traffic into that flow is producing real bookings that Google cannot see, and reporting instead on clicks of the Book Now button. Those two numbers are not the same, and the gap between them is invisible in every dashboard.

The contrast case is instructive. Pacific Smiles runs the same underlying practice software but built its own booking on booking.pacificsmilesdental.com.au, its own subdomain, carrying the same tag manager container as the parent site. Same software, opposite measurement outcome, and the difference is architectural rather than technical.

The chain

Getting an attended dental appointment back to Google.

Attendance, not booking, because dental practice software ships explicit attended and failed to attend flags. Vendors do not build those unless no shows are a first class business problem.

  1. 01

    Establish where the booking completes

    On your own domain, on a subdomain you control, or on someone else's. This single fact determines which of the following steps are even possible, and it takes about a minute to check.

  2. 02

    Capture and store the click identifier

    Dental4Web and Core Practice both expose the appointment record through an API. Where the booking flow is under your control, the identifier can be carried through and stored against the appointment.

  3. 03

    Wait for attendance

    Dental4Web exposes attended and failed as separate booleans, plus an online flag showing the booking came through the web. Core Practice has a five state attendance enum including FailedToAttend. Dentally distinguishes Completed from Did not attend and fires a signed webhook on the change.

  4. 04

    Attach the treatment value

    This is the step that makes it worthwhile in dental specifically, given the 14 to 137 times value spread. Both Dental4Web and Core Practice expose treatment and invoice endpoints that can supply it.

  5. 05

    Upload within the window, or match on hashed details

    Google's offline import reaches back 90 days. An implant or orthodontic case routinely takes longer than that from first click to case acceptance, which is why the import should be the attended appointment rather than the completed treatment. Where the click identifier was never captured, enhanced conversions matching on hashed email works instead.

What each system permits

Australian dental software, honestly compared.

SystemOnline bookingAPIConversion signal available
Dental4Windows and Dental4WebYesLive and documented, on-premise reachable through Halo Connectattended, failed and online booleans, plus treatments and financials
Core PracticeNative and embeddedOAuth 2.0 REST, well documentedFive state attendance enum, plus a new versus returning patient flag
DentallyYesSigned HMAC webhooks on appointment create, update and deleteCompleted and Did not attend states, value from invoices
PraktikaYes, on a separate domainNo public API foundNone reachable. Attribution breaks at the domain boundary
EXACT and OASiSVia module and HealthEngineNo public APIEnhanced conversions on hashed patient details is the only route

Checked against each vendor's own developer documentation. Two corrections worth noting: Cliniko does not list dentistry among its disciplines despite appearing on competitor pages as dental software, and Automed integrates medical rather than dental systems.

You cannot build a Customer Match audience from your patient list
Google classifies Health among its sensitive interest categories, and advertisers in those categories cannot use advertiser-curated audiences. That rules out Customer Match, your-data segments and lookalikes built from patient records. Measurement uploads are a different thing and remain available, which is the distinction that matters: you can tell Google that a click became an attended patient, but you cannot ask Google to find more people like that patient. Agencies proposing patient-list retargeting for a dental practice are proposing something the platform does not permit.
Straight answers

Questions clinic owners actually ask

Why do my dental bookings not show up in Google Ads?
Most often because the booking completes on someone else's domain. We fetched Praktika's booking endpoint directly and it runs on appointments.praktika.net.au, a separate registrable domain, serving no analytics tags at all. HealthEngine and HotDoc similarly complete the booking on their own properties, and HotDoc has deliberately removed frame protection from its booking paths so they can be embedded. In each case the practice's tag never fires on a completed booking, so what gets reported as a conversion is usually a click on the Book Now button rather than a booking.
What should a dental practice count as a conversion?
An attended appointment, valued by treatment. The practice software makes this possible and points at it: Dental4Web ships attended and failed as separate fields, Core Practice has a five state attendance enum, Dentally distinguishes Completed from Did not attend. Counting bookings rather than attendance means paying Google to generate no shows. Counting all attendances equally means training the bidding to prefer a $219 check up over a $17,000 full arch, because the check up is cheaper and more plentiful.
Can we track an implant case back to the click that created it?
Often not directly, and it is better to know that than to pretend otherwise. Google's offline conversion import reaches back 90 days, and a high value dental case regularly takes longer than that between first click and case acceptance, because there is a consultation, a treatment plan, a finance decision and frequently a second opinion in between. The workable approach is to import the attended consultation, which happens comfortably inside the window, and to reconcile completed cases separately for reporting rather than for bidding.
Does offline conversion tracking work if we use HealthEngine or HotDoc?
Yes, through enhanced conversions rather than the click identifier. When the booking completes inside a third party platform, the click identifier is lost at the domain boundary and cannot be recovered. Enhanced conversions for leads instead matches on hashed first party data, principally email, which every dental practice management system holds. That means a practice can still report attended patients back to Google even though the booking itself happened somewhere it could not measure. It is more work and it is less precise, and it is considerably better than reporting button clicks.
Related

Conversion tracking in other clinics

A campaign partnership built for clinics

Ads that earn their place in your P&L.

A senior team that lives inside your account. Conversion infrastructure wired in before any ad goes live. Reporting that ties spend to booked appointments, not impressions.

Dedicated account manager

A senior specialist who runs clinic accounts day to day.

Clinic-only specialists

Every keyword, headline and account structure built inside real Australian clinic accounts.

Award-winning team

Winner, Best Google Ads Campaign, Australia 2025. Google Partner. AFR Fast 100.

When you're ready
We will be too.
Start a conversation →How we work