How to set up Marketing & Analytics in Resos
This guide shows you how to activate the Marketing & Analytics add-on and connect your booking page to Google Analytics 4, Meta Pixel, Google Ads, and Google Tag Manager.
What it does
The Marketing & Analytics add-on tracks each step of the booking flow on your Resos booking page. This lets you measure ad performance, build retargeting audiences, and understand how visitors move through your booking funnel.
How to activate
- Go to Settings > Add-ons in your Resos dashboard
- Find Marketing & Analytics and activate it
- You’ll be taken to the settings page where you can enter your tracking IDs

Tracked events
These events fire automatically as visitors use the booking widget:
| Event | When it fires | Data included |
|---|---|---|
ResosPageView | Each page navigation within the widget | page path |
ResosBookingStart | Booking widget opens | (basic envelope) |
ResosSelectExperience | Guest picks an experience on the experience step | experienceName |
ResosSelectRegularBooking | Guest picks the regular (“A la carte”) booking option | (basic envelope) |
ResosSelectGuests | Guest count selected | numGuests |
ResosSelectDate | Date selected | numGuests, bookingDate |
ResosSelectTime | Time slot selected | numGuests, bookingDate, bookingTime |
ResosAddPaymentInfo | Booking requires prepayment (status pending) | booking details |
ResosPayment | Prepayment captured (status settled or authorized) | booking details + value |
ResosBookingComplete | Booking confirmed | numGuests, bookingDate, bookingTime, bookingId, value (if configured) |
ResosBookingCancel | Guest cancelled the booking | bookingId |
ResosSendMessage | Guest sent an activity / chat message | bookingId |
Events are sent to all configured services simultaneously: GA4, Meta Pixel, Google Ads, and the dataLayer (for GTM).
Meta specifics:
ResosPageViewis forwarded to Meta as the standardPageViewevent so it shows up in Meta Events Manager alongside ads data. Every event is sent twice (browser Pixel and the server-side Conversions API) and deduplicated by event ID, which improves match quality without inflating counts. Personal fields (email, phone, name) are hashed client-side before transmission and are only sent when marketing consent is granted.
Cookie consent
A cookie consent banner is automatically shown to visitors in regulated regions (EU, UK, Brazil, etc.). Visitors can accept or reject marketing cookies, and tracking respects their choice - personal data (like email and phone) is only sent to ad platforms when marketing consent is granted.
The Consent section in the settings page lets you enable Google’s ads_data_redaction flag, which further anonymises Google Ads conversion hits when consent is denied.
Note: When embedding the booking widget on your own website, consent is managed by your website’s own cookie banner instead.
Verify it worked
To verify your tracking setup is working, open the browser console on your booking page, run resos.debug() and reload the page. Each tracking event is then logged with a color-coded label per service:
| Label | Service |
|---|---|
[gtag] | Unified Google Tag (gtag.js) |
[GA4] | Google Analytics 4 page views and events |
[Google Ads] | Google Ads conversions |
[Meta Pixel] | Meta Pixel events and Conversions API |
[postMessage] | Events forwarded to a parent window (when the widget is embedded in an iframe) |
Run resos.debug(false) to turn it back off. The setting is stored in localStorage, so it persists until you disable it.