Ad platforms
Google Ads conversions for Microsoft Bookings
If your ads send people to a Microsoft Bookings link, Google Ads sees the click but never the booking, so Smart Bidding optimises for clicks. BookingsXP fires a Google Ads conversion on your page the moment Microsoft confirms the appointment, through the Google tag you already run.
- Plan
- Plan: ProNeeds Pro ($19 a month) or Business ($49 a month).
- In short
- A conversion per confirmed booking, with the booking reference as transaction ID and optional enhanced conversions.
- Microsoft Bookings
- Stays your system of record. Bookings land in Outlook and Teams and Microsoft sends the invites and reminders.
How it works
What happens with Google Ads
- You enter a conversion ID (AW-123456789) and conversion label in the widget's Tracking tab. The loader adds the AW- prefix if you leave it off.
- On booking_completed, if window.gtag exists, the loader calls gtag('event', 'conversion', { send_to: 'AW-ID/LABEL', transaction_id: 'BXP-…' }).
- The transaction ID is the booking reference, so a reload or a second tag cannot count the same booking twice.
- With enhanced conversions on, the widget hashes the visitor's email with SHA-256 in the browser and adds user_data.sha256_email_address. The plain email never leaves the widget for Google.
- The gclid, gbraid and wbraid of the visit are kept for 90 days and written into the booking notes in Microsoft Bookings with the BXP reference.
Setup
Set up Google Ads
Step 1: Create a conversion action
In Google Ads: Goals → Conversions → New conversion action → Website. Set it up manually with code, choose the category "Book appointment", and set counting to "One" per click if a lead is a lead.
Step 2: Copy the ID and label
Google shows an event snippet. The part after send_to is your conversion ID and label, separated by a slash.
From Google's event snippet gtag('event', 'conversion', { 'send_to': 'AW-123456789/AbCdEfGhIjKlMn' // ^ conversion ID ^ conversion label });Step 3: Paste them into the widget
Dashboard → widget → Tracking → Ad conversions → "Google Ads conversion ID" and "Conversion label". Save. These fields need Pro.
Step 4: Turn on enhanced conversions (optional)
Switch on "Enhanced conversions" in the same section, and enable enhanced conversions for the conversion action in Google Ads. Update your privacy notice first: a hash of the visitor's email is sent to Google.
Step 5: Make sure the Google tag loads your AW- ID
The conversion goes through the global gtag function, so the Google tag must be on the page and configured for your Ads account. Then use Tag Assistant to confirm the conversion hit on a test booking.
HTML <script async src="https://www.googletagmanager.com/gtag/js?id=AW-123456789"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'AW-123456789'); </script>
Outcomes and caveats
What you get
The result
- Real booked appointments as conversions, so bidding optimises for bookings rather than clicks.
- One conversion per booking, de-duplicated by the BXP reference.
- Better match rates with enhanced conversions, without sending a plain email address.
- The ad click ID in the appointment notes, visible to whoever opens the booking in Outlook or Teams.
Good to know
Limits and caveats
- Pro plan. On Free you can still build this yourself in GTM: a Google Ads Conversion Tracking tag on the bookingsxp.booking_completed trigger, with bookingsxp.booking.id as the transaction ID.
- The loader only calls gtag if it already exists. With a GTM-only setup, use the GTM tag above instead of the widget fields.
- Enhanced conversions are sent through the Google tag's user_data field; it does not upload offline conversions from Microsoft Bookings.
- Bookings that staff enter by hand in Bookings or Outlook never pass through the widget and are not counted.
FAQ
Google Ads questions
Start free, no card
Start on Free with the widget and GA4 events, then move to Pro when you want ad conversions, webhooks and chat alerts.