Tracking and Analytics for the Booking Widget

The Buzzshot booking widget can send e-commerce tracking events (such as "add to cart" and "purchase") to the analytics tools running on the website where the widget is embedded. This lets you measure conversion, track marketing campaigns, and build remarketing audiences using the same tools you already use for the rest of your site.

This article gives a general overview of how tracking works. For detailed setup steps and a list of the events and data we send, follow the link for whichever tool you use.

Supported Tools

You can enable any combination of these — turn on the ones that match what's already installed on your website.

  • Google Tag Manager (GTM) — events are pushed to your website's GTM dataLayer, ready for you to forward on to GA4, Google Ads, or any other tag.
  • Google tag (gtag.js) — events are sent directly to the gtag() function on your page. Use this if you have GA4 or Google Ads installed via the standard Google tag snippet, without GTM.
  • Meta (Facebook) Pixel — events are sent to fbq() using Meta's standard event names, so they appear in Meta Events Manager and can be used for Facebook/Instagram ad campaigns.

If you also want to follow a step-by-step setup guide for GA4, see Ecommerce Tracking to GA4.

How It Works

The booking widget runs inside an iframe on your website. It can't see your analytics tags directly, but when something interesting happens (a customer adds a slot to their cart, completes a purchase, etc.) the widget sends a message up to the page that's hosting it. The embed script we provide listens for these messages and forwards them to whichever tracking tool you've enabled.

This means:

  • The tracking tags must already be installed on your website. Buzzshot does not install GTM, gtag, or the Meta Pixel for you — we just feed events into whatever you already have.
  • Events are attributed to your website's GA4 property, GTM container, or Pixel — not to Buzzshot's. This is what you want, because the customer is using your site.
  • Tracking only fires when the widget is embedded on your website. If you open the widget via its Direct URL (from the Embed tab), there is no host page with tags installed, so no events fire. Always test from your real website.

Enabling Tracking

You can turn each tracking option on or off independently in the widget settings.

  1. In Buzzshot, go to Settings > Booking Widget
  2. Open the widget you want to configure
  3. Click the Tracking tab
  4. Turn on the toggles for the tools you have installed on your website
  5. Click Save

The first three toggles choose which tools receive events:

  • Enable host page Google Tag Manager tracking
  • Enable host page Google tag (gtag.js) tracking
  • Enable host page Meta (Facebook) Pixel tracking

You only need to turn on the ones that match what's installed on your site. It's fine to turn on more than one — for example, you might use GTM to send events to Google Ads and gtag to send events to GA4. Just be careful not to send the same events to the same destination twice. If you use GTM to deploy GA4 and you also turn on gtag tracking, every GA4 event will be counted twice.

A fourth toggle, Include customer email and phone in tracking events, is different: it controls what data is sent rather than which tool receives it. It's off by default. See Including Customer Data for Enhanced Conversions below.

What Events Are Sent

The booking widget sends the same set of e-commerce events to every tool, just in the format each one expects:

Event When it fires
page_view Every time the customer navigates to a new page in the widget
view_item The customer opens a room (or other bookable) details page
add_to_cart The customer adds a slot or product to their cart
remove_from_cart The customer removes something from their cart
view_cart The customer views the cart
begin_checkout The customer starts checkout
purchase The customer completes a booking and payment

remove_from_cart is sent to GTM and gtag but not to the Meta Pixel — Meta has no standard event for it.

For the exact event names, parameter names, and data structure used by each tool, see the dedicated article for that tool linked above.

Including Customer Data for Enhanced Conversions

By default the events Buzzshot sends contain no personal information about the customer — just the booking value, the items, and an order reference. If you advertise on Google or Meta, you can optionally include the customer's email address and phone number on the purchase event. The ad platforms use this to match a completed booking back to the person who clicked your ad, even when cookies are missing or blocked. This improves the accuracy of your conversion reporting and helps the platforms optimise your campaigns. Google calls this enhanced conversions; Meta calls it advanced matching.

To turn it on:

  1. In Buzzshot, go to Settings > Booking Widget
  2. Open the widget you want to configure
  3. Click the Tracking tab
  4. Turn on Include customer email and phone in tracking events
  5. Click Save

A few things to know:

  • It only adds data to the purchase event, and only once the customer has completed their booking and payment. No personal data is sent while the customer is browsing or filling their cart.
  • It works alongside whichever tools you've turned on above. The data is added in the format each tool expects — see the per-tool reference for the exact details: Google Tag Manager, Google tag (gtag.js), Meta (Facebook) Pixel.
  • It's off by default, so nothing changes for your existing setup unless you turn it on.

Privacy and Consent

Sending customer contact details to Google or Meta has privacy implications, so it's worth being deliberate about it:

  • You are responsible for making sure your privacy policy covers sharing customer data with your advertising partners, and that you have the consent you need to do so. Requirements vary by country (for example GDPR in the UK and EU).
  • For the Meta Pixel, the email and phone are turned into a secure, irreversible code (a hash) inside the customer's browser before anything is sent — Meta never receives the raw details.
  • For Google (both GTM and gtag), the details are passed to Google's own tag on your page, which is responsible for hashing them. This is how Google's enhanced conversions are designed to work.
  • Google and Meta both require that you only send data for customers who have given the necessary consent. If you use a consent banner or Google Consent Mode, make sure it's set up correctly.

If you're not sure whether to enable this, check with whoever looks after your website's analytics and privacy compliance.

Testing Your Setup

After enabling tracking, embed the widget on your website (or a staging copy) and walk through a booking. Each tool has its own way to confirm the events are arriving:

  • GTM: Use the Preview mode in your Tag Manager workspace to watch the dataLayer in real time.
  • gtag / GA4: Open the Realtime report or use the GA4 DebugView with the Google Analytics Debugger browser extension.
  • Meta Pixel: Use the Meta Pixel Helper browser extension and watch events appear as you click around.

Common Pitfalls

  • No events firing on the Direct URL. The widget needs a host page with tags installed. Test on your actual website.
  • Custom iframe wrapping the Direct URL. If you've put the Direct URL in your own <iframe> (rather than using the embed code from the Embed tab), tracking won't work — the embed script is what listens for events from the widget and forwards them to your tags. Use the embed code from the Embed tab instead, or contact us for help with a more custom setup.
  • Double-counted events. If you turn on both GTM and gtag tracking, and GTM is configured to forward events to GA4 (and your page also has the GA4 gtag installed), GA4 will see each event twice. Either turn off one of the tracking toggles in Buzzshot, or change your GTM configuration so it doesn't fan out to a destination that the gtag is also reaching.
  • Events not appearing in GA4. GA4 reports take up to 24 hours to update. Use the Realtime or DebugView report to confirm events are arriving while you test.

If you get stuck, get in touch with us at support@buzzshot.com.