I have a confession that probably disqualifies me from polite agency conversation: I find rate-shopping behavior more interesting than almost anything else in hotel marketing. Not the rates themselves. The shopping. The clicking. The eleven open browser tabs a guest has going at 11pm before they finally book your boutique property in a city they have never visited.
Because here is the thing nobody measures properly: by the time someone books you direct, they have already comparison-shopped you several times, across several surfaces, often across several days. And almost every hotelier I talk to treats that booking as if it appeared out of thin air on the last click. It did not. There was a whole invisible journey underneath it, and that journey is where the OTAs either help you or quietly eat your lunch.
So I built myself a tracking method to count it. This is the report I wish someone had handed me three years ago.
Why “where did the booking come from” is the wrong question
Standard analytics will tell you a booking came from “direct” or “organic” or “google / cpc.” That is the last touch. It is true, and it is also almost useless on its own.
Real shopping looks more like this. A guest sees your hotel on an OTA while browsing the destination. Two days later they search your name on Google to “check you out.” They land on your site, look at photos, maybe price a date. They leave. They go back to the OTA to compare. They check a metasearch tab. They come back to your site a day later and book direct.
Last-click says: direct booking, well done. Reality says: that booking touched an OTA, organic search, your brand SERP, and your own site at least twice. If you do not know that, you will under-invest in the exact surfaces that did the heavy lifting.
The booking is the last domino. The interesting question is how many dominoes were standing first, and who set them up.
This is the billboard effect in plain terms: guests who discover you on an OTA frequently come back and book direct. The OTA acted like a billboard. The problem is that “frequently” is not a number, and you cannot manage what you cannot size. My whole tracking method exists to turn “frequently” into an actual figure for your property.
The three data sources I stitch together
You do not need an enterprise data warehouse. You need three things you mostly already have access to.
1. Your booking engine and site analytics. This gives you sessions-to-booking and the days-to-conversion window. Most booking engines and GA4 will show you how many sessions preceded a transaction and how many days elapsed from first visit to booking. That is your touchpoint floor.
2. A rate-shopper tool. Rate shoppers (the ones revenue managers use to watch comp-set pricing) also tell you how often your own rates are being pulled and compared across channels. Read sideways, that is a proxy for how visible your price is in the shopping environment.
3. A one-question pre-booking survey. The cheapest, most underrated source. A single dropdown on the confirmation page: “Where did you first hear about us?” with options like an OTA, Google, social, a friend, or ChatGPT/AI assistant. That last option matters more every quarter, and most hotels are not even asking.
Stitch those three and you can estimate two numbers that actually run a hotel: average price-checks before a direct booking, and the share of direct bookers who saw an OTA listing first.
The frequency report, built step by step
Here is the structure I use. I am going to walk it as if we are sitting at your front desk with a laptop.
Step 1: Establish your touchpoint baseline
Pull your last 90 days of direct bookings. In GA4 or your booking engine, look at two dimensions: sessions before conversion, and days to conversion. Write down the median, not the average, because a handful of 30-tab obsessives will skew your mean into nonsense.
Step 2: Tag the OTA-influenced segment
This is the clever bit. Guests who saw you on an OTA almost always do a branded search next. They type your hotel name into Google to verify you are real. So branded organic and branded direct traffic is your best free proxy for OTA-influenced demand. Segment those sessions out. If your brand search volume spikes in lockstep with your OTA exposure, you are watching the billboard effect happen in real time.
Step 3: Layer in the survey answers
Now cross-check. If 40 percent of your survey respondents say they first found you on an OTA, but your last-click attribution credits OTAs with far less of your direct revenue, the gap between those two numbers is the billboard effect made visible. That gap is the number you have been missing.
Step 4: Build the frequency table
Here is a worked, illustrative example of what the finished report looks like. These are hypothetical figures to show the shape of the output, not real results from any property.
| Shopping stage | Share of direct bookers who passed through it | Avg price-checks at this stage |
|---|---|---|
| Saw hotel on an OTA first | 38% | 1.4 |
| Did a branded Google search | 71% | 1.1 |
| Visited site, left without booking | 64% | 2.0 |
| Returned and booked direct | 100% | 1.3 |
Read the bottom-up story: most direct bookers checked your price five-ish times across the journey, the majority bounced off your own site at least once before committing, and well over a third had an OTA as their first impression. Your “direct” channel is not a clean origin point. It is the finish line of a relay race the OTAs partly ran for you.
If you only remember one thing: a direct booking is not the start of the relationship, it is the end of a multi-day comparison process. Measure the process, not just the finish line, or you will keep mis-crediting the channels that actually fill your rooms.
What the numbers tell you to actually do
Sizing the billboard effect is not trivia. It changes decisions.
It tells you whether your OTA listings are feeding or cannibalizing. If a large share of direct bookers saw you on an OTA first, those listings are a paid acquisition channel that you happen to convert for free on the back end. That is not a reason to fire the OTAs (you cannot, and you should not want to), but it is a reason to make sure your own site converts the returning shopper better than the OTA does. That is the entire job of a tuned book-direct conversion path.
It tells you where guests defect. If 64 percent of bookers leave your site once before returning, your booking engine, your photos, or your rate clarity is leaking demand into the comparison tab. Plug that leak and you keep more of the shoppers you already paid an OTA to attract.
It exposes rate-parity problems instantly. The whole reason a guest price-checks five times is that they are looking for the gap. If your OTA rate is ever lower than your direct rate, your frequency report will show it as a defection spike at the worst possible moment. I dug into the actual arithmetic of that in the book-direct math on OTA commission cost — when OTA commissions run roughly 15 to 25 percent, every parity slip you do not catch is margin you are handing away.
The shopping surface nobody is counting yet
Here is what makes 2026 different from 2019. The comparison journey no longer happens only on Google and OTAs. A meaningful slice of guests now open an AI assistant and ask “what is a good boutique hotel near [neighborhood]” before they ever touch a search box.
That is a rate-shopping touchpoint too, and it is invisible to every tool I just described unless you add it to the survey. The demand for this is not small — “aeo” pulls around 27,100 US searches a month, “ai seo” about 8,100, and “generative engine optimization” roughly 5,400, which tells you how fast the industry is reorganizing around it. If an AI assistant is recommending your comp set and not you, that is a price-check you lost before it started, and you would never see it in GA4.
I wrote a full breakdown of how to even tell whether the models know you exist in is your hotel invisible to ChatGPT, and the structural fix lives in our AEO and GEO work. For the frequency report, the practical move is simpler: add “an AI assistant” as a survey option today, and start counting.
A few honest caveats
I am not going to pretend this is laboratory-grade. It is not. Survey self-reporting is noisy — guests misremember where they first saw you. Branded search as an OTA proxy will catch some people who found you on Instagram instead. Cross-device journeys (phone browsing, desktop booking) break some of the session counting.
So treat the report as directional, not precise. The goal is not a number you can take to three decimal places. The goal is to stop pretending direct bookings are immaculate conceptions, and to get a defensible estimate of how much shopping precedes them. Even a rough version of this report will change how you spend money, because it makes the invisible journey visible enough to argue about.
And one thing it will absolutely clarify: how badly the OTAs are positioned against you in your own branded search results. If a guest searches your name to verify you and the first three results are OTA listings, you are paying commission on a booking you had already won. That specific failure is common enough that I gave it its own teardown in why your hotel ranks below the OTAs for your own name, and the deeper mechanics of how that traffic gets intercepted are in how OTAs steal search.
Where to start this week
You do not need to build the whole thing at once. Do this in order:
- Add the one-question survey to your confirmation page. Free, ten minutes, starts collecting tonight.
- Pull 90 days of sessions-to-conversion from your booking engine or GA4 and write down the median.
- Segment branded search so you can watch OTA-influenced demand as a proxy.
- Compare survey-reported OTA discovery against last-click OTA revenue. The gap is your billboard effect.
That is enough to have a real conversation about whether your channel mix is healthy or whether you are over-paying for demand you would have captured anyway. From there, the work is reducing OTA dependence the boring, durable way: better direct conversion, tighter parity, and showing up in the AI and search surfaces where the shopping now starts.
If you want this frequency report built properly for your property — stitched from your actual booking engine, rate-shopper, and survey data instead of a hypothetical table — that is exactly the kind of measurement we set up before touching any campaign. Come tell me about your hotel over at the booking page, or start with our conversion and book-direct work if you already know the leak is on your own site. I would genuinely rather show you the shape of your invisible journey than sell you a number you cannot trust.