← Back to Help Center

Analytics & Tracking

Connect GA4, Google Tag Manager, and Facebook Pixel to your booking widget. QuoteLab automatically fires events at each step so you can track leads, quote calculations, and completed bookings — with no custom code required.

How it works

When a visitor interacts with your booking widget, QuoteLab fires events to any analytics tools you have connected. Scripts are injected into your page by the embed loader — not inside the widget itself — so they work with your existing GA4 or GTM setup without conflicts.

If you already have GA4 or GTM installed on your site, QuoteLab will use your existing gtag or dataLayer — no double-loading of scripts.

Setting up tracking

  1. Go to Settings → Tracking in your dashboard.
  2. Paste your Measurement ID, Container ID, and/or Pixel ID into the appropriate fields.
  3. Toggle which events you want to track (steps, quotes, bookings are all on by default).
  4. Click Save. Changes take effect within about 5 minutes due to caching.

Google Analytics 4

Your Measurement ID starts with G-. Find it in GA4 under Admin → Data Streams → your stream → Measurement ID.

Events that appear in GA4 Explore / Realtime:

EventWhen it fires
bookkit_step_viewedEach widget step transition
bookkit_quote_calculatedQuote total is calculated
purchaseBooking confirmed (standard GA4 ecommerce event)
bookkit_booking_completedBooking confirmed (with booking ID and service name)
generate_leadCustomer info submitted (booking/order mode) or lead submitted (quote mode)

To verify, open GA4 and go to Reports → Realtime while stepping through your widget. Events should appear within seconds. You can also append ?gtag_debug=1 to your page URL and open the browser console to see detailed gtag logs.

Google Tag Manager

Your Container ID starts with GTM-. Find it in GTM at the top of your workspace.

QuoteLab pushes all events to window.dataLayer. To create a GTM trigger for a booking confirmation:

  1. In GTM, go to Triggers → New and choose Custom Event.
  2. Set the event name to bookkit_booking_completed.
  3. Use this trigger to fire any tag (GA4 event, ad conversion, etc.).

dataLayer event shape:

// Booking confirmed
{
  event: 'bookkit_booking_completed',
  transaction_id: 'bkg_abc123',
  value: 149.00,
  currency: 'usd',
  service: 'Full Detail'
}

// Step viewed
{ event: 'bookkit_step_viewed', step: 'date-picker' }

// Quote calculated
{ event: 'bookkit_quote_calculated', value: 149.00, currency: 'usd' }

// Lead submitted (quote-mode) or customer info submitted (booking/order mode)
{ event: 'generate_lead' }

To debug, click Preview in GTM and open your page. The Tag Assistant panel will show every dataLayer push in real time.

Facebook / Meta Pixel

Your Pixel ID is a 15–16 digit number. Find it in Meta Business Manager under Events Manager → your pixel → Settings.

Widget eventFB Standard Event
Step viewedViewContent
Quote calculatedAddToCart
Booking confirmedPurchase (with value)
Lead submittedLead

The Purchase event includes the booking total as the value parameter, which Meta uses for return on ad spend (ROAS) calculation in your ad campaigns. To verify, install the Meta Pixel Helper Chrome extension and step through your widget.

Troubleshooting

No events appearing

Make sure you saved your tracking IDs in Settings → Tracking and waited 5 minutes for the cache to refresh. Check the browser console for errors starting with [QuoteLab].

GA4 shows events but they look wrong

Use GA4 DebugView (Admin → DebugView) to inspect event parameters in real time. Enable it by appending ?gtag_debug=1 to your URL.

I already have GA4/GTM on my site

QuoteLab detects whether gtag or dataLayer are already present and uses them directly — it will not load a second copy of the script. Your existing GA4 property will receive all widget events alongside your normal page analytics.

Facebook Pixel Helper shows no events

Make sure the Pixel Helper extension is installed and the page was loaded after you saved your Pixel ID. The base code and PageView fire on load; subsequent events fire as you interact with the widget.