Dentally and Google Ads: tracking bookings back to your campaigns
On this page
As of 1 October 2026, Dentally's online booking (Dentally Portal) doesn't carry a Google Ads click identifier through to the booking, so a Dentally booking can't be sent back to Google Ads straight from the Portal. It can still be done. The click has to be captured before the patient reaches Dentally, and the booking, attendance or treatment start is matched to it afterwards and uploaded to Google Ads as an offline conversion.
It covers where the click is lost, three routes that work today, what each one actually measures, and where consent fits. Only Google Ads is covered, as one part of tracking ads to booked treatment, and every Dentally capability below was checked against Dentally's own documentation or staff posts on the date shown. The full method, stage by stage, is in measuring marketing against booked revenue.
The problem practices describe
Practices have been asking Dentally about this for a year. In October 2025 a practice asked on the Dentally Community for help "tracking bookings related to Google Ads campaigns". A Dentally team member replied that the product team saw it as "very much on our radar" and aimed to solve it the following year, and suggested a workaround using Zapier and webhooks. In November 2025 the same practice reported that conversions were still not pulling through into Google Ads.1
In August 2026 another practice opened a thread titled "major issues for digital advertising with google / meta". It said "there is no practical way to add or meaningfully integrate GA4, Google Ads tracking, Google Tag Manager or Meta Pixel" on the Portal, and that the Portal "does not retain and pass through identifiers such as GCLID, GBRAID or WBRAID". It added that the practice had explored webhooks, Zapier and offline conversions without finding a reliable workaround.2 In September 2026 Dentally's community manager replied that Google Analytics would be released as part of wider online booking improvements this year.2
There's a third, older thread worth reading for a different reason. In June 2025 a practice asked how others track revenue, given several Dentally reports that disagree. Dentally's answer pointed to the invoice report, as work that has been charted and completed.3 That matters later: it tells you which Dentally number to treat as revenue.
| Date | Where | What was said |
|---|---|---|
| 9 Oct 2025 | Practice Management board | Practice asks for help tracking Google Ads bookings |
| 13 Oct 2025 | Same thread, Dentally team | "Very much on our radar"; Zapier and webhook workaround suggested |
| 26 Nov 2025 | Same thread, practice | Conversions still not pulling through into Google Ads |
| 28 Apr 2026 | Same thread, Dentally Portal product manager | Google Analytics planned this year; click identifier pass-through "not currently supported" |
| 24 Aug 2026 | Integrations/API board, practice | No practical way to add GA4, Google Ads tracking, GTM or Meta Pixel to the Portal |
| 10 Sep 2026 | Same thread, community manager | Google Analytics to be released with online booking improvements this year |
| 26 Sep 2026 | First thread, Dentally Portal product manager | Portal upgrade to beta "in the coming months"; Google Analytics to follow |
Sources: the Dentally Community threads cited in the footnotes, read on 1 October 2026.12
If Dentally ships Google Analytics support on the Portal, part of this page will change. I will update it, and the date at the top will say so.
Where the click is lost
When someone clicks a Google ad, Google adds a code to the landing-page address called the GCLID, short for Google click identifier. It only appears if auto-tagging is switched on in your Google Ads account. For some clicks involving Apple iOS apps, Google uses two related codes, GBRAID and WBRAID. Whichever arrives is what lets Google tie a later result back to the ad click, and offline conversion import depends on keeping it.4
Dentally's own guidance is to put a "Book Now" button on your website that links to your Portal booking page, or to use a pop-up.5 The patient leaves your site for the Portal. Your website saw the click identifier. The Portal, on the evidence of Dentally's staff above, doesn't keep it. The booking arrives in Dentally with no link to the ad.
Dentally does give you useful things on the other side of that gap:
- Acquisition sources. Practices can set up a list of sources, record one on each patient, and new patients can choose one when they sign up through the Portal. The Patients report can analyse them.6
- Custom fields. Practices can add custom fields to the patient record.7 That is where a booking reference or a consent answer can be stored.
- An API. Dentally documents a REST API (version 1) with sections for patients, appointments, invoices, invoice items and acquisition sources.8 A newer version is being rolled out to verified Dentally partners, who authenticate through OAuth2.9
- Webhooks. Dentally can notify another system when appointments, patients or payments are created, updated or deleted. Only users with administrator access (Dentally's Permission Level 4) can manage them.10
- Report exports. Some reports can be exported. Dentally says not all of them can.11
An acquisition source tells you "Google" at best. It doesn't tell you which campaign, and it can't be sent to Google Ads. The click identifier can. So every route below is about keeping the identifier and joining it to Dentally's records.
Route 1: booking form capture
The simplest fix is to stop sending ad traffic straight to the Portal. Instead, the landing page for your ads carries a booking request form on your own website. The form stores, alongside the enquiry:
- the click identifier (GCLID, or GBRAID or WBRAID if that is what arrived)
- the campaign tags on the link (UTM parameters)
- the patient's consent answers, with the wording they saw
- a booking reference, shown to the patient and sent to reception
Reception then books the appointment in Dentally, records the booking reference in a custom field, and sets the acquisition source. The click identifier now sits outside Dentally, keyed to a reference that also sits inside it.
| Keeps | Loses | Needs |
|---|---|---|
| The click identifier, every time the form is used with consent | Self-service slot picking for ad traffic, unless your form offers slots | A form built for it, reception entering the reference, a place to store the enquiry securely |
You can keep the Portal for existing patients and for visitors who arrive any other way. Only paid traffic needs the form. How booking widgets break tracking more generally, including embedded ones, is covered in tracking online bookings in GA4 and Google Ads.
Route 2: offline conversion import
Route 1 captures the click. Route 2 closes the loop. An offline conversion is a result that happens away from your website, such as an attended consultation, which you tell Google about afterwards. Google Ads accepts these as an upload containing the click identifier, the conversion name, the time and, optionally, a value.12
The build runs on a schedule:
- Read new appointments and invoices from Dentally, through the API or a report export.
- For each stored enquiry, find the matching patient by booking reference, then check the appointment status and invoice.
- Keep only patients who consented to measurement, and only events you have decided to count (for example, consultation booked, consultation attended or treatment started).
- Upload each result to Google Ads against the stored click identifier.
- Record what was sent, so nothing is sent twice.
Google sets time limits, and they shape what you can send.
| Rule | Limit | Source |
|---|---|---|
| Upload by click identifier | Not imported if uploaded more than 90 days after the last click | Google Ads Help12 |
| Upload by hashed contact details | Not imported if uploaded more than 63 days after the last click | Google Ads Help12 |
| Same-day results | Conversions within one day of the click may not be recorded yet; Google suggests uploading an extra day's data each time | Google Ads Help12 |
| Conversion window | Must fall inside the window set on the conversion action | Google Ads Help12 |
For a long treatment like full-arch work, that usually means uploading the booked and attended consultation and the treatment start, not the final payment. Treatment completed later is measured in the practice's own report.
Two current changes are worth knowing. Google now labels file-based import by click identifier as a "legacy" feature and recommends enhanced conversions for leads (Route 3 below) instead.12 And from 15 June 2026, the older Google Ads API upload method fails for developer tokens that had not used it before, with new builds pointed to Google's Data Manager API.13 Neither change stops a practice uploading conversions. Both mean a new build should be designed around Data Manager rather than the older methods.
For value, Dentally's own advice on revenue is a good anchor: the invoice report reflects work that has been charted and completed.3 Uploading an invoiced amount keeps the value honest. For free consultations, where no invoice exists, the practice has to agree a fixed value in advance, or the event has no value at all.
This is the route I usually recommend. It's where the Dentally API and webhooks earn their keep, and where most of the care goes: matching, deduplication and consent checks.
Route 3: Data Manager
Google Ads Data Manager is Google's own point-and-click tool, inside Google Ads, for importing first-party data. It handles offline conversion import and enhanced conversions for leads, and its listed sources include Google Sheets, BigQuery, SFTP, HTTPS and several CRMs.14 Instead of writing an upload yourself, you put the matched results somewhere Data Manager can read, such as a Google Sheet, and it imports them on a schedule.
Data Manager also carries enhanced conversions for leads. Google describes this as an upgraded version of offline conversion import that uses data such as email addresses.15 The email or phone number collected on your website form is scrambled with a one-way method called SHA-256 hashing, and the later conversion is matched on the same scrambled value, with the click identifier sent too where you have it. That catches some patients whose click identifier was lost, as long as the Google tag collected those details on your site in the first place. Since April 2026, Google has combined the enhanced conversions settings for web and for leads into a single switch.15
| Keeps | Loses | Needs |
|---|---|---|
| A supported Google import with no custom upload code | Nothing extra, but it depends on Route 1 for the click or contact data | A clean, matched sheet or source; the Google tag set to collect form data with consent |
Data Manager doesn't read Dentally directly. Something still has to produce the matched list. The difference from Route 2 is only in how the list reaches Google.
What each route measures
| Route | What it captures | What reaches Google Ads | What it cannot see |
|---|---|---|---|
| 1. Booking form capture | Click identifier and consent at enquiry | Nothing on its own; a form conversion at most | Whether the patient booked, attended or paid |
| 2. Offline conversion import | Booked, attended or paid events from Dentally, matched to the click | Named conversions with time and value | Patients who phoned or used the Portal directly |
| 3. Data Manager | The same matched events, plus hashed contact matches | The same, with some lost clicks recovered | Anyone who never gave contact details on your site |
| Acquisition source only | What the patient or reception selected | Nothing | Campaign, keyword, and whether it was an ad at all |
Two gaps apply to every route. Phone calls from ads carry no click identifier, so they need call tracking. Patients who click an ad, then book through the Portal from another page, are lost until Dentally supports tracking there.
Consent
Two kinds of consent apply.
On the website. Google Ads tags, including anything that stores the click identifier in a cookie, need the visitor's consent first under the UK's cookie rules, because they are used for advertising. Google also asks advertisers to pass consent signals for users in the UK and European Economic Area, and offline uploads carry a consent field for that purpose.16 How the banner and Google's consent mode fit together is covered in cookie consent on dental websites.
On the patient record. A booking at a dental practice, matched to an appointment and an invoice, is health information. Under UK GDPR that is special category data. Sending even a "conversion happened" signal derived from it to Google is a decision for the practice as data controller, with a lawful basis, patient-facing wording, and usually a data protection impact assessment. I record the patient's consent in a Dentally custom field and check it before anything is uploaded. Treatment names never leave the practice. Conversion names are generic.
When to get help
You can do Route 1 yourself if your website form tool can store hidden fields and your reception team will record a reference. Routes 2 and 3 are where most practices get stuck: API access, matching, deduplication, consent checks, and monitoring that tells you when the feed has stopped.
Get help if any of these apply:
- you spend enough on Google Ads that bidding on form fills is costing real money
- you want Google to bid on attended patients rather than enquiries
- you have tried Zapier or webhooks and conversions are not arriving
- nobody at the practice owns the data protection side
Other practice management systems (PMS) handle this differently; the UK practice software comparison sets them side by side. If you run Dentally and want your bookings joined to your campaigns, email me at Fayez@imfayez.com or read how I work first. Terms are defined in the dental marketing glossary.
Sources
-
Dentally Community, "google ads campaign tracking", Practice Management board, thread started 9 October 2025, replies to 26 September 2026. https://community.dentally.com/practice-management-58/google-ads-campaign-tracking-446, accessed 1 October 2026. ↩ ↩2 ↩3 ↩4
-
Dentally Community, "Meaningful ads tracking and Dentally Portal update - major issues for digital advertising with google / meta", Integrations/API board, 24 August 2026. https://community.dentally.com/integrations-api-47/meaningful-ads-tracking-and-dentally-portal-update-major-issues-for-digital-advertising-with-google-meta-830, accessed 1 October 2026. ↩ ↩2 ↩3
-
Dentally Community, "Tracking revenue", 24 June 2025. https://community.dentally.com/practice-management-58/tracking-revenue-316, accessed 1 October 2026. ↩ ↩2
-
Google Ads Help, "About the Google Click Identifier (GCLID)", https://support.google.com/google-ads/answer/9744275, and "About offline conversion imports" (auto-tagging requirement), https://support.google.com/google-ads/answer/7012522; GBRAID and WBRAID: Google Ads API, "Upload offline click conversions", https://developers.google.com/google-ads/api/docs/conversions/upload-offline. All accessed 1 October 2026. ↩
-
Dentally Help, "How to optimise your online booking". https://help.dentally.com/en/articles/8238342-how-to-optimise-your-online-booking, accessed 1 October 2026. ↩
-
Dentally Help, "How to add acquisition sources in Dentally". https://help.dentally.com/en/articles/7338627-how-to-add-acquisition-sources-in-dentally, accessed 1 October 2026. ↩
-
Dentally Help, "Custom fields in Dentally". https://help.dentally.com/en/articles/7959540-custom-fields-in-dentally, accessed 1 October 2026. ↩
-
Dentally API documentation (v1). https://developer.dentally.co/, accessed 1 October 2026. ↩
-
Dentally Help, "Dentally partner API FAQs". https://help.dentally.com/en/articles/15956843-dentally-partner-api-faq-s, accessed 1 October 2026. ↩
-
Dentally Help, "Using webhooks in Dentally". https://help.dentally.com/en/articles/15031727-using-webhooks-in-dentally, accessed 1 October 2026. ↩
-
Dentally Help, "How to export and print reports". https://help.dentally.com/en/articles/9317639-how-to-export-and-print-reports, accessed 1 October 2026. ↩
-
Google Ads Help, "Import conversions from ad clicks into Google Ads using files (legacy)", https://support.google.com/google-ads/answer/7014069; "Guidelines for importing offline conversions" (90 days for click identifier uploads, 63 days for enhanced conversions for leads, after the last click), https://support.google.com/google-ads/answer/15081888. Both accessed 1 October 2026. ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Google Ads API, "Upload offline click conversions" (notice on requests from new developer tokens from 15 June 2026). https://developers.google.com/google-ads/api/docs/conversions/upload-offline, accessed 1 October 2026. ↩
-
Google Ads Data Manager Help, "About Google Ads Data Manager", https://support.google.com/google-ads-data-manager/answer/13761872, and supported data sources, https://support.google.com/google-ads-data-manager/table/13860693. Both accessed 1 October 2026. ↩
-
Google Ads Help, "About enhanced conversions for leads". https://support.google.com/google-ads/answer/15713840, accessed 1 October 2026. ↩ ↩2
-
Google, "EU user consent policy" (covers the EEA, the UK and Switzerland), https://www.google.com/about/company/user-consent-policy/; consent fields on uploads, https://developers.google.com/google-ads/api/docs/conversions/upload-offline. Both accessed 1 October 2026. ↩
Further sources
- Google Ads Help: Guidelines for importing offline conversions, accessed 1 October 2026.