Travel & attractions

Know which ads sell your tickets

Third-party booking engines break the link between the ad click and the ticket sale, so direct bookings show up as referrals and ad platforms optimise blind. We fix the tracking through checkout, feed real sales back to Google and Meta, and report on bookings by visit date and channel. We did this for Circle Line and The Beast in New York.

Book a free discovery call See the work

Free 30 minute call with the engineer who would do the work. You keep the first fix whether or not you hire us.

What we get called in for

The problems teams bring to us

Tour operators, attractions, cruises, experiences and ticketing businesses that sell through their own site, a booking engine and OTAs.

01

GA4 shows bookings as referrals from our booking engine

When checkout runs on another domain or inside an iframe, GA4 starts a new session at the booking step. Sales get credited to the booking engine or the payment provider, and the ad that brought the visitor gets nothing. Paid channels look weaker than they are and budgets get cut in the wrong place.

What we do

We set up cross-domain linking where the engine allows it and use postMessage listeners for iframe widgets so the purchase fires on your own page. Unwanted referrals are excluded. Where the engine sends webhooks, we record the sale server-side with the original click details attached.

02

Google Ads and Meta cannot see our ticket sales

Many booking engines only offer a basic pixel, or none at all. Ad platforms then optimise for page views or add-to-cart instead of sold tickets. Spend drifts towards people who browse and never buy.

What we do

We send confirmed bookings to Google Ads with enhanced conversions and to Meta through the Conversions API, including value and ticket count. Duplicates are removed with a shared event ID, so each ticket is counted once.

03

OTA versus direct bookings: what share and what cost

Online travel agencies bring volume and take a commission on every ticket. Their sales sit in separate portals and exports, so the true direct share and the margin by channel are hard to see. Decisions on OTA spend and direct marketing get made on partial numbers.

What we do

We load OTA reports and your booking system into one warehouse model with channel, product and commission. Reporting shows net revenue per ticket by channel and date. You can see when direct marketing pulls sales away from commissioned channels.

04

GA4 revenue does not match the booking system

Refunds, weather cancellations, vouchers, gift cards and reschedules all change revenue after the purchase event fires. Finance trusts the booking system and marketing trusts GA4. Meetings start with a reconciliation.

What we do

We treat the booking system as the source of truth for revenue and join it to web and ad data by order ID. Cancellations and refunds are applied in the warehouse model. Every team reads net revenue from the same table.

05

Sales by booking date hide what happens by visit date

A ticket sold in March for a July visit counts in March in most marketing reports. Capacity, staffing and pricing depend on visit dates, while ad reporting follows purchase dates. The two views rarely sit side by side.

What we do

We model every booking with purchase date, visit date and lead time. Reports show demand building for each date and which channels drive early and late bookings. Operations and marketing plan from the same view.

06

Group, pass and gift card sales disappear from reports

Group bookings by phone or email, city passes and gift cards often skip the website tracking completely. These sales can be a large share of revenue at busy attractions. Marketing gets no credit and the reports understate every channel.

What we do

We bring offline and partner sales into the warehouse from the booking and point-of-sale systems. Where a campaign or code is attached, we tie it back to the source. Reporting covers every ticket sold.

Questions

What people ask us first

How do I track conversions from a third-party booking engine in GA4?

It depends on whether the engine runs on another domain, in an iframe or on your own pages. Cross-domain linking handles separate domains, and iframe widgets usually need a postMessage listener that fires the purchase on your page. Server-side events from the engine's webhooks are the most reliable option where they exist.

Why does GA4 credit sales to our payment provider?

The visitor leaves your site to pay and returns, so GA4 treats the return as a new referral. Adding the payment and booking domains to the unwanted referrals list fixes most of it. Cross-domain linking or server-side purchase events fix the rest.

Can we send ticket sales to Google Ads and Meta?

Yes. Confirmed bookings can go to Google Ads as conversions with enhanced conversions and to Meta through the Conversions API. Sending real value and deduplicating against browser events gives the platforms a clean signal to optimise on.

Can you report OTA sales alongside direct bookings?

Yes. OTA exports and portal reports can be loaded into the same warehouse as your booking system. That gives one view of volume, commission and net revenue by channel and visit date.

Tools we work with here
Google Analytics 4Google Tag ManagerServer-side Google Tag ManagerGoogle Ads enhanced conversionsMeta Conversions APIBigQuerydbtLooker StudioStripeBooking engine webhooks
How we work

How an engagement starts

The work runs in three steps. You see working output within weeks and can stop after any stage.

01

Discovery call

A 30 minute call with the engineer who would do the work. We look at your setup, tell you what we would fix first, and whether you need us for it.

Day 1
02

Blueprint sprint

We map your sources, stakeholders and goals, then give you an architecture and a prioritised roadmap. You keep it whether or not we do the build.

2 to 4 weeks
03

Build in sprints

We ship working tracking, models, dashboards and agents every two weeks. You can stop after any sprint, and everything built stays yours.

Every 2 weeks

What happens on the call

Book your call
  • 30 minutes with the engineer who would do the work
  • No slides or sales pitch
  • A clear answer on whether we can help, and a referral if we can’t
  • The first fix we would make, which you can use either way
Next step

Get your first fix in 30 minutes

Bring the question your team can’t answer fast enough. The engineer who would do the work looks at your setup with you and tells you the first thing we would fix, plus a straight answer on whether you need us at all. It costs you half an hour, and you keep the fix either way.

Book a free discovery call