Solved: SynXis & Google Tag Manager Tracking Issues For Hotels

If you are using the SynXis booking engine and Google Tag Manager (GTM) to track your conversions you may have noticed a drop in room bookings on Google Analytics from the 7th of December 2018. Here at 80 DAYS we discovered an issue with GTM where a trigger that’s configured to track ecommerce data, does not appear to work as intended.

The issue is explained in some technical detail further below. If you think your hotel might be affected, we would recommend sharing this article with the person responsible for analytics and tracking, or your digital agency. Alternatively, if you need our support with analytics or in resolving any tracking issues, please get in touch.


Firstly, we could only find instances of this issue happening on the subdomain. Also, it only applies where your tracking is using ‘DOM Ready’ triggers to fire tags on the booking engine.

There are three ‘events’ that GTM records when a page loads, a ‘Page View’, ‘DOM Ready’, and ‘Window Loaded’. These should technically always happen when a website visitor loads a page.

DOM stands for ‘Document Object Model’ and in the context of loading an HTML page, it represents when the browser has seen (parsed) the backbone of the page i.e. the HTML and CSS. When investigating our client’s SynXis booking engine pages we noticed that in many cases GTM was inconsistently recording ‘DOM Ready’, causing some bookings not to be tracked.

One of the reasons we may want to use the ‘DOM Ready’ event is to ensure that all ‘data layer’ variables such as ecommerce values, have been loaded and are accessible to GTM. Hence, we use ‘DOM Ready’ to fire the ecommerce tag in GTM to make sure that all ecommerce variables have been loaded and are available to send to Google Analytics.

With the ‘DOM Ready’ step being inconsistently tracked, we trialled creating a custom tag in GTM that would send a one second delayed event after the ‘Page View’ step was recorded. This in effect ‘fakes’ the ‘DOM Ready’ step and allows the firing of the ecommerce tag (and any other tag) on that delayed event.

We could of course fire the ecommerce tag on the ‘Page View’ step, but as mentioned previously, the ecommerce variables may not be accessible at that point. The process of adding a delayed event fixes that issue.

Below are the steps to create the delayed event to use it to fire an ecommerce tag on Google Tag Manager:

Step 1 – create a custom HTML tag with the below script, using a ‘Page View’ trigger to fire on ‘Hostname’ containing ‘’.


window.setTimeout(function() {


event: ‘delayedPageView’


}, 1000);


Step 2 – create a ‘Custom Event’ trigger. Set the Event Name to ‘delayedPageView’ and set the trigger to fire on the confirmation page of the booking engine. In the example below ‘Booking Engine PageView’ is the virtual page path variable for the booking engine.

Trigger Confirmation

Step 3 – Set all the ecommerce tags to fire on the ‘Custom Event’ trigger you created. This may include the ecommerce tag, Google Ads, Facebook conversion pixel, etc.

Having trouble with your tracking? Cross-domain playing up again? Speak to us.

Contact Us