Skip to main content
Booking trackingLocal business

Booking conversion tracking that counts kept appointments, not Book Now clicks

Cheap cost per booking, no new faces at the front desk? The conversion is probably a button click, while the real booking finishes inside a scheduler your tags can't see. We track click, request, confirmed and attended as separate steps, send the attended visit to Google Ads and Meta as the conversion that bids, and tell you which booking doors stay out of view.

Free30 minutesNo obligation

Booking tracking · what breaks

What it costs when a click passes for a booking

  1. 01

    A cheap cost per booking and an empty chair

    The conversion is a button or a reloadable thank-you page, so campaigns that bring browsers look best and keep the budget.

  2. 02

    Bookings that vanish inside the scheduler

    The calendar runs in a frame or on the vendor's domain, so bidding never sees the confirmation and chases clicks.

  3. 03

    No-shows paid for at full price

    A booking that never shows counts like a client who sat down, so the platforms learn to find people who book and ghost.

  4. 04

    Regulars and Maps bookings credited to ads

    Rebooks, brand searches and Google profile bookings share one column, so you pay acquisition prices for clients you already had.

Booking tracking · the fix

What changes — Booking tracking

  • Bidding on kept appointments

    The attended visit from your booking records becomes the primary conversion; clicks and requests stay readable.

  • One booking, one conversion

    Every request carries a booking ID that the Pixel and the server event both use, so a page refresh, a moved slot or a duplicate tag can't count it twice.

  • Every booking door labeled

    Ad click, Google profile, marketplace, phone and returning client reported apart, with the gaps written down.

Booking tracking · architecture

How we pick the tracking method for your scheduler

We use the strongest signal your booking engine documents and say where it stops.

  1. 1

    M1: your own page confirms the booking

    When the booking form lives on your site, the conversion fires on the server's success response with a booking ID, never on the button.

  2. 2

    M2: the scheduler's documented callback

    Calendly's JavaScript embed posts a calendly.event_scheduled message to your page; Calendly says a direct iframe can't do that. Where a vendor documents no callback, your tags can't read inside its frame.

  3. 3

    M3: cross-domain linking through a redirect

    GA4 can carry its IDs to the vendor's domain in the _gl parameter, but Google notes redirects can strip it, so we test it live.

  4. 4

    M4: webhooks and API status

    Confirmed, rescheduled and canceled states come from the scheduler. Acuity warns its catch-all changed hook can duplicate the specific ones, so each event gets one owner.

  5. 5

    M6: attended visits back to the ad platforms

    The saved click ID, plus hashed email or phone where allowed, lets Google Ads match an offline conversion; Meta's Conversions API takes the same visit.

  6. 6

    M7 and M8: doors you can only count

    Marketplaces and Google's Book button complete the booking off your site. We add tracking parameters where a custom link allows it and reconcile the provider's own report each month.

Booking tracking · diagnose

How we find where your booking tracking breaks

In this order, because the cheapest faults are also the most common.

  1. 01

    Read what each primary conversion fires on

    A button click or page view set as primary is the first fix.

  2. 02

    Make one tagged test booking

    Book with a test click ID in the URL and check the appointment record.

  3. 03

    Count conversions from that one booking

    Two Pixels, or an imported GA4 key event and a Google tag both set as primary, is a common double count.

  4. 04

    Compare confirmed with attended

    The no-show share for ad-sourced bookings shows how far bookings overstate paying clients.

  5. 05

    Split bookings by door

    Put the scheduler's bookings-by-source report next to the ad platforms. The gap is untracked.

Booking tracking · prove

How the work gets proven — Booking tracking

On a real booking through your live site, not the admin preview.

Source of truth

Your booking system's appointment records: requests, confirmed and attended visits by date, with source and booking ID

  • A test appointment booked from a link carrying an ad click ID, and that ID found on the record afterward.
  • That single appointment shows up once in each ad platform, with the Pixel and server event deduplicated on a shared event ID.
  • A canceled test booking retracted in Google Ads; a moved test booking still counted once.
  • Attended visits arriving daily, since Meta rejects server events dated more than seven days back.
  • Ad-click bookings matched record by record against each platform over a fully closed window.
  • Bookings from doors we can't see inside listed separately.
  • The same record-by-record check run again after 30 days, plus after any change to the scheduler or the site.

Booking tracking · free audit

What we check in the free audit

  • Read what each primary conversion fires on
  • Make one tagged test booking
  • Count conversions from that one booking
  • Compare confirmed with attended
  • Split bookings by door

Checked against

Your booking system's appointment records: requests, confirmed and attended visits by date, with source and booking ID

Get my free conversion tracking audit

Free30 minutesNo obligation

Booking tracking · when not to buy

When you don't need this — Booking tracking

Some booking setups are better served by a short settings fix.

  • Almost every booking comes by phone. Start with call tracking.
  • Most bookings arrive through a marketplace or Google's Book button rather than your own scheduler. There's little ad-click booking to track, and the guarantee wouldn't cover those.
  • You don't run paid ads. Your scheduler's reports are enough.
  • The only problem is a second Pixel or a button marked as primary. We'll walk you through that settings change during the call.

Booking tracking · what we deliver

What we build, rung by rung — Booking tracking

  • Rung 1: Book Now click

    Recorded as interest only. It never counts as a booking and never bids.

  • Rung 2: Booking request

    Counted when the scheduler accepts the form, with the click ID and source saved onto the booking record.

  • Rung 3: Booking confirmed

    Kept apart from holds and waitlists, and used as the secondary conversion.

  • Rung 4: Appointment attended

    The conversion that bids, sent server-side with the visit's value and a new-or-returning flag.

  • Corrections: cancel, no-show, reschedule

    Google Ads gets a retraction when a counted booking is canceled; Meta has no equivalent, so its attended event simply never fires. A moved slot keeps its original booking ID.

  • The doors we can only count

    Google's Book button, marketplaces and Local Services Ads reported from their own records.

Written guarantee

95%+ tracking accuracy

Measured against Your booking system's appointment records: requests, confirmed and attended visits by date, with source and booking ID. Miss it and we keep working at no cost.

Get my free conversion tracking audit

Pricing

Pick the package that fits your ad spend

Browser-side starter

$400One-time fee · lifetime ownership

Repairs and verifies the browser-side setup you already have, on a live conversion. Honest about its ceiling on this platform.

  • Root cause fixed, not worked around
  • Verified on a live conversion
  • Reconciled against your own records
  • Written handover
Fix what I have

1st-party server-side

Recommended

$800One-time fee · most popular

Money events sent from your own records through a first-party container on your subdomain, so the browser can no longer lose them.

  • First-party server container on your own subdomain
  • Money events from your records, not the browser
  • Deduplicated on a shared event ID at every destination
  • First-party cookies beyond Safari's 7-day cap
  • 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Rebuild it server-side

Full 1st-party stack

$1,800One-time fee · lifetime ownership

Every paid channel server-side plus the offline loop, with monitoring so the next break surfaces in days.

  • Everything in 1st-party server-side
  • Pinterest, Snapchat, Reddit and LinkedIn CAPI
  • CRM and offline conversion loop
  • Refunds and cancellations corrected wherever each platform allows it
  • Monitoring on every destination
Get the full stack

FAQ

Booking tracking questions, answered

No. It shows interest. A booking is the record your scheduler creates when a slot is accepted, and only that record, or the visit after it, should bid.

Free · 30 min

Find out what your booking conversions really count

Free30 minutesNo obligation