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.
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.
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.
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.
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.
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.
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.
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.
| System | Online booking | API | Conversion signal available |
|---|---|---|---|
| Dental4Windows and Dental4Web | Yes | Live and documented, on-premise reachable through Halo Connect | attended, failed and online booleans, plus treatments and financials |
| Core Practice | Native and embedded | OAuth 2.0 REST, well documented | Five state attendance enum, plus a new versus returning patient flag |
| Dentally | Yes | Signed HMAC webhooks on appointment create, update and delete | Completed and Did not attend states, value from invoices |
| Praktika | Yes, on a separate domain | No public API found | None reachable. Attribution breaks at the domain boundary |
| EXACT and OASiS | Via module and HealthEngine | No public API | Enhanced 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.
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.
A senior specialist who runs clinic accounts day to day.
Every keyword, headline and account structure built inside real Australian clinic accounts.
Winner, Best Google Ads Campaign, Australia 2025. Google Partner. AFR Fast 100.