Analytics and tracking
Phobs and GA4: one booking, one purchase
Phobs runs on its own domain. Without cross-domain measurement GA4 loses the guest's source, and the purchase is easily counted twice. On 15 of 21 Phobs booking pages we found neither GA4 nor GTM.
Short answer
Phobs runs on its own domain, so without cross-domain measurement GA4 starts a new session when the guest moves from the hotel website to the engine. The source is lost and Google Ads and Meta never get the booking back. If the purchase arrives twice, a 400 EUR booking shows as 800 EUR.
- On 15 of 21 Phobs booking pages in our check there is no GA4 or GTM code.
- Without cross-domain measurement the campaign never sees the booking it brought.
- The purchase arrives once, with the Phobs booking number as transaction_id.

AI illustration
Phobs runs on its own domain, not on the hotel's. The guest clicks Book now on the website and lands on another address. If GA4 is not set up for both domains, the trail breaks there. GA4 doesn't know which campaign brought the guest, and Google Ads and Meta never get the booking back.
How common this is
In October 2026 we checked the public pages of 84 Croatian 4 and 5 star hotels. Phobs is the most common booking engine, 40 of the 68 we could identify. For 56 of 59 hotels the booking engine sits on a different domain from the website.
On 15 of 21 Phobs booking pages we found neither GA4 nor GTM. We looked before cookie consent, so this is a lower bound. The method is in the direct booking study.
Where the session breaks
The browser treats the jump from the hotel website to Phobs as leaving for another site. Without cross-domain measurement GA4 opens a new session. The booking is credited to the hotel website as a referral or ends up with no source. The campaign that paid for the click sees nothing.
The fix:
- the same GA4 property on the website and on the Phobs page, easiest through the same GTM container
- both domains listed in GA4: Admin, Data streams, web stream, Configure tag settings, Configure your domains
- test: after clicking Book now, the engine address must carry the _gl parameter
The five events I set up on Phobs
- book_now_click - click on Book now on the hotel website
- view_item_list - available rooms for the chosen dates
- add_to_cart - chosen room and rate
- begin_checkout - guest details
- purchase - confirmed booking, with transaction_id, value and currency
I track phone and email clicks separately, as micro-conversions, not as bookings. Otherwise the report mixes enquiries and sales.
When one booking becomes two
A guest books two nights for 400 EUR. In Phobs that is one booking. In GA4 it shows as 800 EUR and two purchases.
| What reaches GA4 | Purchases | Revenue |
|---|---|---|
| Purchase once | 1 | 400 EUR |
| Purchase twice | 2 | 800 EUR |
The two most common causes:
- both Phobs and old code on the hotel website send the purchase
- the guest reloads the confirmation page and the purchase fires again
Google Analytics removes the duplicate only when both events carry the same transaction_id. So the purchase always carries the Phobs booking number. Without it Google Ads learns from double revenue and bids up the wrong searches.
A 15 minute check
- Open the hotel website in Tag Assistant and turn on GA4 DebugView.
- Click Book now. The Phobs address must contain _gl, and DebugView must show the same visitor.
- Go to the last step before payment. view_item_list, add_to_cart and begin_checkout must arrive in that order.
- For last week, compare bookings in Phobs with purchases in GA4. Fewer in GA4 is normal, some guests refuse cookies. More in GA4 means a duplicate purchase.
From practice
At Hotel Meneghetti we took over the channels in March 2026. The first job was not ads, it was measurement: cross-domain between the website and Phobs and these five events. Only then could Google Ads optimise for real bookings. What happened next is in the case study.
Sources
- Google Analytics: set up cross-domain measurement.
- Google Analytics: duplicate purchases and transaction IDs.
- Nikton Hospitality: direct bookings in Croatian hotels 2026.
Next step
Continue with the booking engine checklist and the article on what a hotel tracks in GA4. If you want someone to look at your Phobs and GA4 setup, ask for a hotel audit.
Related: case study Meneghetti Wine Hotel & Winery. Campaigns, the booking engine and direct booking results, June 2026 vs June 2025, source GA4.
Frequently asked questions
Why doesn't GA4 see bookings from Phobs?
Most often because the Phobs page has no GA4 or GTM code. In our check of 84 Croatian hotels that was 15 of 21 Phobs booking pages. The second reason is cross-domain: without it the guest on the engine looks like a new visit and the booking loses its real source.
Why does GA4 show double revenue?
Because the purchase arrives twice. For example once from Phobs and once from old code on the hotel website, or again when the guest reloads the confirmation page. A 400 EUR booking then shows as 800 EUR and two purchases. Google Analytics removes the duplicate only when both events carry the same transaction_id.
Which events should be set up on Phobs?
Five: book_now_click on the hotel website, then view_item_list, add_to_cart, begin_checkout and purchase on the engine. I track phone and email clicks separately, as micro-conversions, not as bookings.
How do I check that it works?
Open GA4 DebugView, click Book now on the website and go through the engine to the last step. The same visitor must stay on the Phobs address. Then compare the number of bookings in Phobs and purchases in GA4 for the same week. More purchases in GA4 than bookings in Phobs means a duplicate purchase.
Nikton Hospitality. A digital marketing agency for hotels.
About Nikton Hospitality and how we workRelated articles

Analytics and tracking
GA4 booking engine: what a hotel should track
Four events on the booking engine and the guest's source. From them a manager sees where guests drop off: at the rate, at the details or at payment. 64% of booking pages in our check have no tag at all.

Booking engine
Booking engine, channel manager and Phobs: who sends the rate
The booking engine is where the guest completes a reservation for the hotel. The channel manager sends rates and availability to OTAs. Phobs still needs its role confirmed.

Booking engine
Integrating a booking engine with GA4: practical steps
How to choose a supported GA4 integration for your booking engine, connect domains and agree event validation before using the data for marketing.