What Measurement to Expect From Your Hotel Marketing Agency
Ask Google Ads, Meta, Google Analytics and your booking engine how many bookings you took last month, and you will get four different answers.
Hotels generate more data than ever. Your booking engine, your property management system (PMS), Google Analytics, Search Console, Google Ads, Meta, your Google Business Profile, review sites. Yet a surprising number of agency reports still stop at traffic and clicks: sessions up, impressions up, a chart pointing the right way, and no sign of what difference any of it made to the bottom line.
A reliable hotel marketing agency should be able to report on direct-booking revenue and acquisition costs, show how marketing spend translates into bookings, and explain how direct bookings compare with OTA business. Not just traffic, impressions or rankings.
Below is the minimum measurement we think a hotel should expect from its agency: what it looks like, why it matters and what to watch for.
At a Glance: What Good Agency Reporting Looks Like
| Basic reporting | What you should expect |
|---|---|
| Traffic, impressions and clicks | Bookings and revenue generated, broken down by channel |
| Booking-engine clicks reported as conversions | Completed bookings, with values verified against booking-engine data |
| Google Analytics revenue taken at face value | Revenue reconciled against booking-engine or PMS records, including cancellations |
| Direct bookings reported in isolation | Direct versus OTA booking and revenue share |
| Ad spend and cost per click | Cost per booking and ROAS, with OTA commission costs as a reference |
| Brand and non-brand campaigns reported separately without context | Combined performance, with an explanation of how the campaigns influence each other |
| AI rankings or visibility scores | AI visibility, identifiable referral traffic and attributable bookings, with measurement limitations explained |
| Month-on-month performance comparisons | Year-on-year comparisons that account for seasonality |
| Performance changes explained without evidence | A dated record of changes, supported explanations and acknowledged unknowns |
| Agency-controlled accounts and reporting access | Hotel-owned accounts, data and historical reporting |
1. Your accounts and data are in your name
The expectation: Google Analytics, Google Ads and Meta Ads accounts belong to the hotel, and the agency is given access, never the other way around.
Everything else in this post depends on it. Your booking history, the conversion data Google Ads has learned from, your audiences and every year-on-year comparison live in those accounts. If the agency owns them and the relationship ends, you start building some of your own baselines again from scratch.
What to watch for:
- If your hotel is setting up new ad accounts, make sure they are created under accounts or business portfolios controlled by the hotel, with hotel staff retaining full administrative access. The agency should be granted access to manage them, not control their ownership.
- If in doubt, ask who controls each account, not simply whether you “have access”. Agency access should be removable without affecting the hotel’s ability to manage its accounts or retain its data.
- All ad accounts should invoice advertising costs direct to the hotel from the provider (Google, Meta, etc).
- When an agency leaves, its access is removed and nothing is deleted.
2. Revenue in your reports, not just traffic
The expectation: Google Analytics can and should record completed bookings with values, passed through from your booking engine, and your reports should show it.
Traffic is a means, not a result. A month with fewer visits and more bookings is a good month; a report built on traffic would call it a bad one. Getting bookings and values into Google Analytics sounds routine. In practice it is often not.
Booking engines can track poorly. Some booking engines send a booking without its value, in the wrong currency, or only some of the steps. Ask your agency to audit what yours sends and confirm no data is lost.
Booking engine on another domain. On most hotel websites the guest leaves your domain to book on the booking engine’s. Unless the journey is properly joined up across the two, the booking is credited to your own website and the original source (the ad, the search, the AI answer that brought the guest in) is lost. The standard to ask for is tracking that connects the guest’s journey across your website and booking engine, preserving the original traffic source through to the completed booking wherever possible.
Pixels that double-count. When the engine’s built-in tracking and the agency’s tags both fire on the same confirmation, one booking becomes two; the same happens with a Meta pixel installed in two places. A simple check: compare a week of Google Analytics bookings with the booking engine’s own count. Google Analytics will typically record fewer bookings because of consent and tracking limitations. If it records more, investigate possible duplicate conversions, but discrepancies in either direction should be explained.
Revenue by geographic market. Your reports should show which countries, regions or cities generate bookings and revenue, not just website visits. This helps identify valuable source markets, understand shifts in demand and assess whether marketing spend is reaching the right audiences.
One reporting currency. If properties or ad accounts run in different currencies, everything should be converted to one currency at a stated rate, and the report should say which rate. A total that adds euros to dollars is wrong if nothing on the page says so.

3. Cookie consent, done properly
The expectation: a consent banner connected to Google Consent Mode, across your website and your booking engine, so the data you collect is lawful and usable.
In many markets, Europe among them, visitors must give consent before non-essential tracking takes place. A consent setup that is missing or broken costs you twice: Google Analytics under-records, and Google Ads loses the signals it needs to bid well. Privacy requirements vary by market, so it makes sense to get consent management right from the outset.
What Consent Mode keeps, estimates and loses. When a visitor accepts cookies, everything is measured as normal. When a visitor declines and Consent Mode runs in its advanced form, Google’s tags still send a signal without cookies, which Google uses to estimate a share of the conversions you could not see. You keep a sense of the volume and lose the detail of each journey.
In the basic form, Google’s tags are blocked until consent is granted, leaving less information available for conversion modelling. Two further signals cover advertising: whether a visitor’s data can be used for ads at all, and whether it can be used for personalised ads. If those are not passed correctly, features such as remarketing and enhanced conversions stop receiving data.
When consent fails, nobody tells you. In our experience, a consent problem is the most common cause of an unexplained drop in traffic. A banner script breaks, a subscription lapses or a signal stops passing through, and Google Analytics under-records for weeks before anyone notices. Your agency should be watching for it.
Booking engines differ, and this is another break point. Ask your booking engine provider, and have your agency test it with a real booking path:
Does checkout happen on your domain or the engine’s? Consent given on your website does not automatically carry to another domain. The guest may be asked again on the booking engine, and some decline or simply ignore it. Their booking may then go unrecorded in Google Analytics, even though it was completed successfully.
Does the booking engine pass Consent Mode signals to Google Analytics and Google Ads, including the two advertising signals? Or does it fire its tags regardless, or not at all?
If the engine offers more than one way to book (a standalone page, a booking window that opens over your own site), does each one handle tracking and consent the same way? Not always.
Do not take a settings page on trust. Ask your agency to test it.

4. Booking data reconciled with your PMS: the standard, not an extra
The expectation: Your agency should be able to reconcile the bookings and revenue reported in Google Analytics against your booking engine or PMS, using an API connection or another reliable data source.
Even when set up well, Google Analytics only sees part of what happened on your website. Your PMS is the record of what was actually booked. Comparing the two gives you a more complete picture of performance, including information Google Analytics cannot provide.
At Kollective, we connect booking engine and PMS data to our reporting wherever an API is available, and use other reliable data sources where it isn’t. This allows us to compare reported bookings and revenue against actual booking records, identify tracking gaps and give hotels a clearer picture of their direct-booking performance.
Your true direct vs OTA share. Google Analytics never sees an OTA booking. Only your PMS sees the whole mix, and the mix is an important number. Every direct booking that would otherwise have gone through an OTA is a commission value you keep. But this number is not valuable in isolation: rising direct bookings with falling occupancy rates tell a different story and needs different analysis and actions, only your PMS can give this detail.
The gaps Google Analytics leaves. Declined consent, tracking that lapsed for a week, ad blockers, and visits with no source at all, including many that started with an AI assistant and land as “direct”. The PMS records those bookings whatever happened to the tracking.
Net as well as gross. Google Analytics records a booking when it is made and never hears about the cancellation. Your PMS does. A report built on gross bookings can look healthy in a month of heavy cancellations.
Your own gap. The difference between the revenue Google Analytics records and the direct revenue in your PMS varies from property to property. In the hotel accounts where we reconcile the two booking by booking, we typically see a gap of around 10 to 15%, largely attributable to consent and other tracking limitations.
We have seen it far larger, for example when a booking engine changed how its booking window loaded and tracking quietly stopped capturing a share of bookings. Only your PMS shows you a true number. Once you know it, it becomes a check: if the gap widens, usually something has broken.
The wider picture in one place. The same applies to everything else: Search Console, Google Business Profile, reviews, Google Ads, Meta and Google Hotel Ads, connected by API and read together in one report. Six dashboards push the joining-up back onto you; that is the work you pay an agency to do.
5. Bookings are the result, not clicks
The expectation: the headline result is bookings and revenue. Clicks, enquiries and other smaller actions are supporting evidence.
A common example: an agency reports cost per click to the booking engine as its main result. It falls every month and looks good. But a click to the booking engine is not a booking; the guest may have checked one date and left. A report that stops there measures interest, not revenue. However, small actions (micro conversions) do earn a place:
In Google Ads, smaller actions such as reaching the booking engine can provide useful supporting signals, particularly for smaller hotels with modest booking volumes. They should be reported separately from completed bookings and never presented as equivalent results. Actual booking revenue remains the primary measure of success. We explain how these signals work in more detail in PMAX for Hotels: Structure, Signals and the ‘Only Brand’ Myth.
In reports, as supporting lines that help more fully describe your website’s guest journey and bookings figures.
Enquiries, calls and WhatsApp. For many properties, especially those selling groups, weddings, villas or longer stays, an enquiry is where the booking begins. Track it properly. A click on a WhatsApp button is not a conversation, and a conversation is not a booking. In one hotel account we reviewed, 164 WhatsApp button clicks resulted in just 22 actual conversations during the same month.
Whenever possible, enquiries should be matched back to the bookings they became and those bookings fed into Google Ads, so the bidding learns from real revenue rather than button clicks.
6. ROAS: reported, and read properly
The expectation: every paid channel reports its return on ad spend, read against what an OTA booking costs you and never in isolation.
An agency that reports no ROAS at all is not up to the job. But ROAS has to be read properly.
The OTA benchmark. An OTA commission of 15 to 20% is the equivalent of a ROAS between 5:1 and nearly 7:1. That gives you a useful commercial reference point for direct acquisition costs, although the additional demand advertising generates and other distribution costs also matter. For established hotels, our minimum working target is 10:1, measured across brand and non-brand campaigns together. A new hotel launch is the exception, where building demand can justify a lower return at first.
Beware the benchmarks. Ask an AI assistant what a good ROAS is for a hotel and you will often hear 4:1 to 8:1. Much of that range costs more than the OTA commission it is meant to replace.
Brand and non-brand, read together. For an independent hotel, generic and prospecting campaigns create brand searches: a guest sees your hotel on a generic search or a social ad, then books days or weeks later by searching your name. Brand return can reflect demand created by non-brand activity. Judge either alone and you risk misreading both: brand looks brilliant, non-brand looks weak, and cutting non-brand can quietly shrink the brand demand it was feeding. Equally, some brand bookings would have happened without advertising, so attributed ROAS should not be confused with incremental revenue.
Impression share and season beside ROAS. Impression share shows how much of the available search demand a campaign captures. A strong ROAS on a small share of the searches it could win may mean budget is holding it back; a strong ROAS on a campaign that already appears almost every time means more budget will buy very little. And ROAS moves with the season, so compare it with the same period last year rather than exclusively with the previous month.
Every paid channel, on the same terms. Google Ads, Meta, Google Hotel Ads, OTA advertising programmes: one report, one set of definitions (spend, bookings, revenue, cost per booking, ROAS), so you can see where budget works hardest.
7. AI visits and AI visibility
The expectation: Identifiable visits from AI assistants are reported separately, paid AI traffic is kept apart from earned, and AI visibility reporting distinguishes measurable bookings from broader visibility indicators.
What Google Analytics can show. ChatGPT adds a source tag to many of the links it shows, so a share of its visits can be identified and grouped into their own channel. In Google Analytics, these visits show up with chatgpt.com as their source. Visits from other assistants, from apps and from copied links often arrive with no source at all and land as direct. Treat the visible AI traffic as a floor, not the total.
Paid is not earned. Some AI platforms carry ads. Visits bought there belong in your paid media reporting, on the same terms as every other paid channel, not in a slide about AI visibility.
Visibility tools, when you buy that service. Monitoring shows whether your hotel appears in AI answers, how it is described and which sources those answers draw on. That is useful if the prompts tracked reflect real demand; we set out which prompts matter for a hotel in Choosing the Right AI Prompts to Monitor for Your Hotel.
The test is whether the reporting tells you something useful: where your hotel appears, how consistently it is recommended, which sources influence those recommendations, and what measurable traffic and bookings follow.
AI visibility is not the same as attributable revenue, and a single score hides how unstable these answers are. In our own Boutique Hotel AI Index, asking the identical question again an hour later produced a different first-named hotel on about four queries in ten.

8. Numbers in context, and history that survives
The expectation: results are compared with the same period last year, significant movements are investigated and explained where the evidence allows, with unknown causes acknowledged, and your tracking history survives a website change.
Same period last year, not last month. Hotels are seasonal, so comparing a month with the one before mostly tells you what the season did. Compare it with the same month last year, and show the year to date, month by month.
A record of what changed. Your agency should keep a dated log of what changed: campaigns launched or paused, budgets and targets, website changes, a different booking engine, consent changes. With it, significant movements can be investigated against a record of what changed, with an honest “cause unknown” where the evidence is insufficient. Without it, confident explanations are often guesses.
Measurement that survives a relaunch. A relaunched website should keep its tracking, its conversion events, the same Google Analytics property and redirects from every old address. Lose tracking continuity and year-on-year comparisons become unreliable. The same applies when you change agency: the first year’s comparisons cross two setups, and a good agency says so rather than presenting the difference as performance.
Questions to ask your agency
- Show me direct-revenue results for hotels like ours, and how you measured them.
- Can I see a sample monthly report showing spend, completed bookings, revenue, acquisition costs and direct versus OTA performance, with an explanation of what changed and why?
- Who will own the ad accounts, the analytics and the data?
- How will you handle our booking engine’s tracking limits?
- How will you reconcile reported bookings and revenue against our booking engine or PMS?
- How do you distinguish bookings attributed to advertising from bookings that advertising actually generated?
- How do you connect AI visibility to bookings?
If you would like to see what this looks like in practice, we are happy to walk you through a sample report and look at what your current setup can and cannot measure.
