Booking analytics with Google Analytics and GTM

Open Marketing → Booking analytics to send a privacy-safe booking funnel to your Google Analytics property. You can measure every way clients reach booking; select all the options you use.

Choose your booking paths

PathWhat the client doesConnection
Widget on your websiteBooks without leaving your websiteEvents go to the GTM already installed on your website
From your website to bookingFollows a link to the Tervita booking pageGA4 measures the page and cross-domain setup keeps the Google session
Direct booking page linkOpens the Tervita link from social media, maps, messages or adsGA4 measures the Tervita page; no website is required

Any combination works. For example, you can use the widget on one page, link to the full booking page elsewhere, and share the same booking page directly in social profiles.

What you need

  • For a website widget: GTM installed on your website and a consent manager that can grant analytics consent.
  • For the Tervita booking page: a dedicated GA4 Web Stream and its Measurement ID beginning with G-.
  • An HTTPS privacy or cookie policy link that covers Google Analytics. It may be hosted on any HTTPS page you control; a clinic website is not required.

Tervita never asks for a GTM- container ID and never runs your GTM container on the Tervita domain.

Configure Tervita

  1. Open Marketing → Booking analytics.
  2. Select every booking path you use.
  3. If you selected the widget or a website-to-booking transition, enter each website origin in full, for example https://example.com. Put multiple sites on separate lines.
  4. If you selected either booking-page option, enter the G- Measurement ID and the privacy or cookie policy link.
  5. Save the settings, confirm the privacy checks, then activate analytics.

Set up the website widget in GTM

Keep GTM and the consent manager on your website. Use the booking embed with analytics events enabled, and after the visitor's consent decision call the versioned Tervita consent API from the top-level website:

TervitaBooking.setConsent({
  clinic: '<your-booking-address>',
  analytics: true,
  noticeVersion: 'cmp-v1'
})

In GTM, create a Custom Event trigger for each event shown on the Booking analytics page, then connect those triggers to GA4 Event tags. Do not map form values, services, specialists, URLs, prices, identifiers or appointment times.

Withdrawing consent must call the same API with analytics: false. Events are not stored for later replay while consent is denied.

Set up a transition from your website

Use the same GA4 Web Stream on your website and on the Tervita booking page. In GA4, open Admin → Data streams → Web → Configure tag settings → Configure your domains and add both your website hostname and the actual booking hostname.

Configure cross-domain measurement in the Google tag or GTM on your website. Keep the booking link as a normal clickable link so Google can add its linker parameter when the client clicks it. Do not add payment providers such as Stripe or Montonio as linked domains.

Use only the booking page

Select only Direct booking page link. Enter the G- Measurement ID and the policy link; the website field stays hidden. You can share the booking link anywhere, and Tervita sends consented events directly to that GA4 stream.

Events

  • tervita_booking_opened — the widget or page was opened.
  • tervita_booking_started — the client made the first meaningful choice.
  • tervita_booking_step_viewed — a booking step was displayed.
  • tervita_booking_submit — the booking was sent for creation.
  • tervita_booking_created — the booking was successfully created.
  • tervita_booking_payment_completed — online payment was confirmed.
  • tervita_booking_error — a safe error category was recorded.

Events never contain names, contact details, form text, services, specialists, prices, appointment identifiers or times, raw URLs, query strings or Tervita platform identifiers.

Check the result

Use Google Tag Assistant and GA4 DebugView to test each selected path. Confirm that every conversion arrives once and that a website-to-booking transition keeps the original source and session instead of creating a Tervita self-referral.