How to debug Google Analytics & Tag Manager tracking
If bookings made through the checkout widget aren’t showing up in Google Analytics, the widget’s built-in debug logging helps you find out where they stop.
1. First, know how your widget sends events
In your widget settings, under Analytics, the Send events via option decides how tracking works. The two options behave very differently, and that changes what you should expect to see when debugging.
Google Analytics 4 — the widget sends each booking event straight to your Analytics property. With Use existing tag (the default) it uses the Google Analytics tag already on your page; with Use custom tag it loads its own using the Measurement ID you enter. Either way the widget is the thing talking to Google, so you can see the booking data going out in your browser’s Network tab.
Google Tag Manager — the widget does not send anything to Google Analytics. It hands each event to your Tag Manager container, and your container decides what to do with it. With Use existing container (the default) it uses the container already on your page; with Use custom container it loads the container ID you enter. Either way, nothing reaches Google Analytics unless you have set up a tag inside Tag Manager to send it. This is the most common reason bookings are missing: the widget is doing its job perfectly, but no tag is picking the events up. See section 5.
There is also a master switch, Enable Google Analytics, at the top of the same section. It turns tracking on or off for both options — if it is off, nothing is tracked even when Tag Manager is enabled.
2. Turn on debug logging
- In your TicketingHub dashboard, open the settings of the checkout widget you want to test.
- In the Analytics section, turn on Enable analytics debug logging and save.
While enabled, the widget writes a line to the browser console on your site for every event. With Google Analytics 4 selected, this also enables Google’s debug mode for the tag. With Google Tag Manager, use Preview or enable debug mode in your GA4 tag to see events in DebugView. Console logging is only the widget’s side of the story — it cannot see what Google does next, so it doesn’t replace GA4 DebugView or GTM Preview.
3. Open the browser console on your site
- Open the page on your website where the widget is embedded (not the TicketingHub dashboard).
- Open your browser’s developer tools (F12, or right-click → Inspect) and switch to the Console tab.
- If your browser shows a frame selector in the console, make sure the top frame is selected — the widget reports events to your page, not inside its own frame.
- Enable Preserve log in the console settings — if your widget redirects to another page after a booking, the messages about the final purchase event are written just before the redirect and would otherwise be cleared before you can read them.
- Go through a test booking. Make sure the console is open before the page loads (or reload with it open), so you also see messages from while the page starts up.
4. What the console messages mean
| Message | Meaning |
|---|---|
Triggering GA event … / Triggering GTM event … | The widget sent the event to Google Analytics, or handed it to your Tag Manager container. |
… event … processed | The event was received and handled, and the message usually names the tag or container that handled it. With Tag Manager this means your container received the event — not that anything was sent to Google. See section 5. |
… event … was not confirmed within …ms | Nothing told the widget it handled the event within a few seconds. This does not necessarily mean the event was lost — check GA4 DebugView to see whether it arrived. Common causes are in section 6. |
… event … was still waiting for confirmation when the page navigated away | Your widget redirected to another page before the check finished, which is normal if you use a post-purchase redirect. It does not mean the event failed — confirm it in GA4 DebugView. |
… failed to load … | Google’s script could not be loaded — usually blocked by an ad blocker or a network filter. |
… event … dropped … | The event could not be sent at all. The message says why: no Google Analytics or Tag Manager is available on the page yet, or Tag Manager is turned off in the widget settings. |
The widget deliberately reports only what it can be sure of. It knows whether Google’s script loaded and whether your tag confirmed handling an event — it cannot know whether Google accepted the data, so it points you to DebugView rather than guessing.
5. If you use Google Tag Manager, set up your tags
Tag Manager is a container, not a tracker. When the widget hands it a booking event, your container checks its triggers and runs whichever tags match. If no tag matches, the event simply stops there — the console will still say processed, because your container did receive it.
A brand-new container will not pick these events up on its own. Most Analytics tags are set to fire on “Initialization” or “All Pages”, which do not match the widget’s booking events.
To send widget bookings to Google Analytics, in your Tag Manager container you need:
- A Google tag (or GA4 Configuration tag) holding your Measurement ID (
G-…). - A GA4 Event tag for each booking event you care about, using a Custom Event trigger whose event name matches one of the widget’s events.
The widget sends these event names:
| Event | When it happens |
|---|---|
page_view | The visitor moves to another step of the widget |
select_item | A product or package is selected from the product/event list |
add_to_cart | Items are added to the basket |
view_cart | The order summary is shown |
begin_checkout | The customer details step is displayed |
add_payment_info | The payment step is displayed, before details are submitted |
purchase | Payment succeeds or an order with nothing left to pay is confirmed |
For the shopping events, set your tag to send ecommerce data from the Data Layer. The widget sends the standard Google Analytics ecommerce fields — such as currency, value, items and transaction ID — in the format Google expects, so no custom mapping is needed.
Use GTM Preview (Tag Assistant) to check your work: it shows each event arriving from the widget and exactly which tags did or did not fire. If an event arrives but no tag fires, your trigger doesn’t match; if a tag fires but nothing reaches Analytics, check the Measurement ID on the tag.
One thing to expect: with Tag Manager, you will not see booking data going to Google Analytics in the Network tab from the widget itself. The widget may load the Tag Manager container script, but the requests carrying your booking data come from your own tags, once they fire.
6. Common causes and fixes
- Ad blockers and privacy extensions — these block Google’s tracking scripts on virtually every blocklist. Test in a private/incognito window with extensions disabled, or in a clean browser profile. Keep in mind visitors using ad blockers won’t be tracked either, so some missing bookings are normal.
- Events are processed but nothing appears in Analytics — with Tag Manager, this almost always means no tag is set to fire on the widget’s events. See section 5.
- Nothing in the console at all — tracking may be switched off entirely. Check that Enable Google Analytics is on, and remember it controls Tag Manager too. Also make sure the page loaded with the console already open.
- Every event says it was dropped because Tag Manager is turned off — switch on Enable Google Tag Manager in the widget settings. Both this and Enable Google Analytics need to be on for the Tag Manager option to work.
- No Tag Manager messages, only Google Analytics ones — your widget is set to send events via Google Analytics 4, so the Tag Manager settings are ignored. Change Send events via to Google Tag Manager. The widget uses one method or the other, never both.
- Wrong Measurement ID or Container ID — check the ID in the widget settings matches your Analytics property (
G-…) or Tag Manager container (GTM-…). - Consent banners — if the visitor hasn’t accepted analytics cookies, Google Consent Mode may hold events back on purpose. Accept analytics consent on the test page before drawing conclusions.
- Caching or optimization plugins — some WordPress caching or optimization plugins interfere with analytics scripts. Try disabling them temporarily, or add the scripts to their exclusion list.
7. Confirm in Google’s tools
The console tells you the widget did its part. To confirm the data arrived:
- GA4 DebugView (Analytics → Admin → DebugView) shows events reaching your property in real time.
- GTM Preview (Tag Assistant) shows which tags fire for each event the widget sends.