Get your Dental & Med Spa tracking to 95%+ accuracy guaranteed in writing.
A hygiene exam and a full-arch case are the same event to Google. So are a first-visit neurotoxin appointment and a body-contouring package. We separate them by value, track whether the patient actually showed up, and build the whole thing so nothing tying a person to a procedure leaves your systems.
Free30 minutesNo obligation
Dental & Med Spa · what breaks
Where practice marketing tracking goes wrong — Dental & Med Spa
- 01
The booking widget isn't on your website
NexHealth, LocalMed, Zocdoc, Vagaro and Boulevard host the confirmation step on their own domain or inside an iframe. Your thank-you page never loads, the session restarts, and the booking gets credited to the booking vendor.
- 02
Booked is not kept
New-patient no-shows and same-day cancellations are a normal part of this business. If booked is the only event you report, bidding is optimizing toward calendar slots rather than toward people in the chair.
- 03
The URL is the leak
A page_location of /invisalign or /coolsculpting, paired with a hashed email, is exactly the combination you can't hand to an ad platform. Default GA4 and pixel installs send it without anyone ever deciding to.
- 04
Every appointment is worth the same to the algorithm
An intro promo and a full treatment plan fire the same valueless conversion. The promo is cheaper to win, so that's what the platform learns to go find more of.
Dental & Med Spa · the fix
What changes when kept visits and value tiers drive the bidding — Dental & Med Spa
Bidding weighted to your own fee schedule
Appointments carry a value tier drawn from what the practice actually charges, sent as a number and never as a procedure name, so high-value consults stop being outbid by promo traffic.
The event fires when the patient shows up
visit_kept and treatment_accepted come from the practice management system or a weekly export, so the platforms learn from attendance and case acceptance instead of from a booking form.
A data map you can hand your attorney
One page listing every field that leaves the practice, where it goes, and what gets stripped first. Review becomes a conversation with counsel rather than a code audit.
Calls handled the way the front desk handles them
Missed, after-hours and overflow calls are captured, with recording and redaction settings configured deliberately and a BAA in place with the call tracking vendor where the practice needs one.
Dental & Med Spa · architecture
Booking widget to kept visit, with the URL stripped — Dental & Med Spa
The funnel is ad click, treatment page, booking widget or phone call, confirmed appointment, kept visit, accepted treatment. The redaction has to sit in the middle of that, not bolted on at the end.
- 1
Treatment pages send a template, not a path
page_location is reduced to a generic template inside the container, so /invisalign or /coolsculpting never travels alongside a hashed email.
- 2
The booking widget hop gets bridged
NexHealth, LocalMed, Zocdoc, Flexbooker, Boulevard, Vagaro or Zenoti confirmations are captured with cross-domain linking so the session survives the jump.
- 3
Calls handled the way the front desk handles them
Missed, after-hours and overflow calls land in the same record, with recording redaction switched on and a BAA with the call vendor where the practice needs one.
- 4
The practice management system owns attendance
Dentrix, Eaglesoft, Open Dental, Curve, Boulevard, Zenoti, Aesthetic Record or PatientNow reports kept, no-show and treatment accepted on a schedule.
- 5
Value tiers replace treatment names
A number drawn from your own fee schedule goes to the platforms, and the procedure that number represents stays inside your systems.
Dental & Med Spa · events
What a practice sends, and what it deliberately doesn't — Dental & Med Spa
Every row carries a value or a tier, and no row carries a procedure name, a treatment page path or anything from a chart.
| Event | Fires when | Key parameters | Sent from / role |
|---|---|---|---|
| page_view | Any page renders, treatment pages included | page_template only (path stripped), consent state | Browser to server · reporting only |
| click_to_call | Visitor taps the tracked practice number | gclid, _fbp, event_id, location_id | Browser · reporting only |
| booking_started | The booking widget opens or the intake step loads | gclid, event_id, location_id | Browser to server · reporting only |
| appointment_booked | The widget or front desk confirms a slot | gclid, em (hashed), ph (hashed), value (fee tier 1–4), currency, event_id | Server · optimization (primary) |
| call_booked | A tracked call ends with an appointment created | gclid, ph (hashed), value (fee tier), currency, event_id | Server · optimization (primary) |
| visit_kept | The practice management system marks the visit arrived | gclid or hashed contact, value (fee tier), currency, transaction_id | Server offline import · optimization by value |
| treatment_accepted | Case accepted and scheduled or paid | gclid or hashed contact, value (banded, never itemized), currency | Server offline import · value correction, reporting |
| no_show | Appointment marked no-show or same-day cancellation | internal appointment_id only | Held in your systems · reverses the booked value |
Dental & Med Spa · prove
Reconciled against kept visits in the practice system — Dental & Med Spa
The scoreboard is people who sat in the chair, counted in your own system. We also re-check every month that nothing new started leaking.
Source of truth
Kept appointments and accepted treatment in Dentrix, Eaglesoft, Open Dental, Curve, Boulevard, Zenoti or PatientNow
- Export new-patient appointments for the month by status — booked, kept, no-show, canceled — with the fee tier on each.
- Match kept visits to a click ID or hashed contact and report the unmatched share per location.
- Compare kept-visit counts to platform-reported conversions by conversion date rather than by booking date.
- Re-run the payload check: no procedure name, treatment path, page title or query string in any outbound request.
- Confirm the written field allow-list still matches what's live after any booking-vendor or website update.
- Split the difference into attribution windows and real misses, then fix only the real misses.
Dental & Med Spa · free audit
What we check in the free audit
- The booking widget isn't on your website
- Booked is not kept
- The URL is the leak
- Every appointment is worth the same to the algorithm
Checked against
Kept appointments and accepted treatment in Dentrix, Eaglesoft, Open Dental, Curve, Boulevard, Zenoti or PatientNow
Free30 minutesNo obligation
Dental & Med Spa · when not to buy
When a practice shouldn't hire us — Dental & Med Spa
Four real reasons to skip this build.
- One location, a full schedule and a small local budget. A tracking number, a working booking widget and a monthly new-patient review is enough.
- Your treatment mix is uniform — hygiene and routine restorative only. Value tiers add nothing when every visit is worth about the same.
- Your booking vendor won't export appointment status and its confirmation can't be observed. Without kept-visit data there's nothing better to send.
- Counsel hasn't decided what may leave the practice. Get that decision first; we build to the allow-list, we don't write it for you.
Dental & Med Spa · what we deliver
What we build for an appointment-driven practice — Dental & Med Spa
A server container that redacts before it forwards
A GTM server container on your own subdomain and cloud project. Scrubbing happens there, so a stray page path can't reach Google or Meta from a browser you don't control.
A booking-widget bridge
NexHealth, LocalMed, Zocdoc, Flexbooker, Boulevard, Vagaro or Zenoti: the confirmation captured, the cross-domain session preserved, duplicate bookings collapsed by event_id.
A URL and parameter scrubber
Procedure paths, query strings and page titles removed from anything forwarded to an ad platform, while your own analytics keeps the full detail behind your login.
A value-tier model built from your fee schedule
Three or four tiers mapped from what you actually charge, so the platform receives a number it can bid on and nothing it could profile a person with.
Kept-visit and case-acceptance reconciliation
Dentrix, Eaglesoft, Open Dental or Curve on the dental side; Boulevard, Zenoti, Aesthetic Record or PatientNow on the aesthetics side, matched back on a schedule.
Consent and privacy wiring, written down
Consent Mode v2, a working opt-out path, CCPA/CPRA sensitive-data handling, and the field allow-list documented so counsel signs off on a list instead of on a promise.
Written guarantee
95%+ tracking accuracy
Measured against Kept appointments and accepted treatment in Dentrix, Eaglesoft, Open Dental, Curve, Boulevard, Zenoti or PatientNow. Miss it and we keep working at no cost.
FAQ
Dental & Med Spa questions, answered
I won't make that claim, and you should be wary of anyone who does, because compliance is a determination you and your counsel make about your whole operation rather than a feature a tracking vendor sells. What I can tell you is the design assumption: Google and Meta don't sign business associate agreements, so nothing that identifies a person and links them to treatment goes to them. Hashing doesn't cure that either, since a hashed email attached to an implant consult is still about an identifiable patient.
Often it doesn't, since HIPAA reaches covered entities and their business associates, and a cash-pay practice that never bills insurance electronically may not be one. That doesn't leave you free, though. State health-privacy laws such as Washington's My Health My Data Act, plus Google's and Meta's own health-data terms, still govern what you send. We build the same careful way either way and let your counsel decide what can be relaxed.
Not off treatment pages. Google's personalized advertising policies restrict audiences built around health conditions and treatments, and Meta has its own restrictions on health-related data. What does work is remarketing from non-clinical pages, geographic and interest targeting, and, where your counsel approves it, a consented list that isn't tied to a procedure.
Calls to a practice contain exactly the detail you're trying to keep out of ad platforms. So: a BAA with the call tracking vendor where you need one, PII redaction switched on, transcripts kept out of any feed that reaches a platform, and two-party consent states handled in the greeting rather than after the fact.
From your practice management system, usually as a scheduled export or an API pull of appointment status. We match it back to the original click or to the hashed contact captured at booking. Chart data isn't needed for any of this and we don't ask for it.
One build, then per-location containers and call tracking, because the fee schedule and the appointment mix differ by location. Med spa groups usually need more variation than dental groups, since the aesthetic mix shifts market by market and the value tiers move with it.
If you're one location with a full schedule and a small local budget, don't build it. A single tracking number, a properly configured booking widget and a monthly look at where new patients came from will tell you enough. It earns its keep when you're paying for high-ticket treatment inquiries, like implants, full-arch or body contouring, and can't tell which campaigns produce the consults that actually convert.
More on Dental & Med Spa
- GuideDental and Med Spa Ad Tracking: Booked Chairs, Not Just Clicks
- GuidePhone Call Conversion Tracking: Stop Losing Your Best Leads to the Phone
- GuideHealthcare Marketing Tracking: What You Can (and Can't) Send to Ad Platforms
- Dental IntelligenceConversion tracking for Dental Intelligence Online Scheduling
- Open DentalOpen Dental Web Sched books new patients your ads never see
- ImplantsGoogle Ads for dental implant practices: the build order
Free · 30 min
Track the patients who show up, not the slots that get booked
Free30 minutesNo obligation
