BACK TO ALL BLOG POSTS

Hotel Marketing Attribution in 2026: Why Your Channel Reports Don’t Add Up

Three friends on a hotel pool terrace smiling at a phone while planning a trip, laptop and drinks on the table
Published on 15 OCT 2026

Hotel marketing attribution breaks down for three reasons. The path to a booking is long (Expedia’s 2023 research tracked 141 pages of travel content over 45 days), travelers cross social platforms again and again to discover and then validate a property without social ever getting the last click, and the shares that close the deal travel through group texts and WhatsApp threads that GA4 files under Direct. Stack several ad platforms on top, each with its own attribution window, and every channel claims credit for many of the same bookings, so the platform totals add up to far more than the revenue in your PMS. Phrasing handles this with Inverse Protocol, which assigns affected bookings to each channel based on what our experiments show changes when a channel is added, cut or adjusted, and with one overall efficiency grade that keeps total spend paced to total revenue.

Here’s a scene most hotel marketers know by heart. The monthly reports land. Meta says paid social drove a healthy chunk of revenue. Google Ads says search drove even more. The email platform has its own number, the metasearch partner has another, and GA4 insists a third of everything came from “Direct,” whatever that means this month. Add them up and, apparently, you sold twice the rooms you own. Congratulations on your new phantom wing.

Our take is simple: no single report is the truth, and arguing over who got the last click is a waste of a good Tuesday. The better question is what happens to total bookings when you change the mix. That’s how we measure, and it’s how we keep budgets paced.

  1. The hotel booking path is long, social and mostly invisible
  2. Why Direct in GA4 is a black hole
  3. Dark social: the group chat where the trip gets booked
  4. Why your channel reports add up to more than your revenue
  5. How Inverse Protocol assigns bookings, and why the math won’t add up perfectly

The hotel booking path is long, social and mostly invisible

How long does a traveler research before booking a hotel?

About six weeks, across dozens of sessions: Expedia Group’s path-to-purchase study found travelers viewed 141 pages of travel content over the 45 days before booking and spent 303 minutes doing it (2023 data, fielded with Luth Research across seven countries). Page views climbed from about 2.5 a day early in planning to 25 on the day of purchase. More than half of travelers (59%) started without a firm destination or with several in mind.

Those 45 days don’t happen in one place. In the same study, 80% of travelers used an online travel agency, 61% used search engines, 58% used social media, 54% used airline sites and 51% used metasearch. That’s five different measurement systems, owned by five different companies, each seeing a slice of one trip.

The 45-day path to a travel booking: travelers viewed 141 pages over 45 days and spent 303 minutes; 80% used an OTA, 61% search engines, 58% social media, 54% airline sites and 51% metasearch. THE 45-DAY PATH TO A TRAVEL BOOKING PHRASING 141 pages of travel content viewed 45 DAYS of research before booking 303 MIN spent with travel content SHARE OF TRAVELERS WHO USED EACH SOURCE IN THOSE 45 DAYS OTAs 80% Search engines 61% Social media 58% Airline sites 54% Metasearch 51% Five platforms, five measurement systems, one trip. Source: Expedia Group Path to Purchase study with Luth Research, 2023 (seven countries).
Figure 1: A single trip touches OTAs, search, social, airline sites and metasearch before anyone books, and each keeps its own scorecard.

How much travel research happens on social media?

A lot, and more of it turns into decisions than most reports admit: Phocuswright’s 2024 study of U.S. social-using travelers found that 65% of those who used social media to plan a trip made a purchase or visit decision based on content they saw. Facebook (69%), Instagram (68%) and YouTube (65%) led for planning, with TikTok at 47%.

Now the honest counterweight. When Omio and YouGov asked 7,567 travelers in April 2026 why they chose a destination, only 6% of U.S. travelers pointed to social trends or influencers; personal interests and budget led by a mile. And SiteMinder’s traveler survey shows more than a third of people still start an accommodation search on a search engine, with only about one in ten starting on social.

We don’t think those findings cancel each other out. Plenty of travelers don’t start on social. But they keep coming back to it, and that’s the part attribution misses.

Is social media used for travel discovery or validation?

Both, and the validation job is the one reports miss most: in Phocuswright’s study, 39% of travelers who converted from social content used it to compare specific options and prices. That’s shopping behavior, not daydreaming. Social plants the property name early on, then it’s where travelers go to check that the place is what the listing promised.

In practice, a traveler crosses the social path several times before booking, and each crossing does a different job:

  • Discovery: a creator’s Reel or a friend’s story puts your resort on the radar. They save it and move on.
  • Consideration: after shortlisting three properties on Google or an OTA, they search each one on Instagram or TikTok to see real rooms, real guests and the pool at 4 p.m. instead of the drone shot.
  • Validation: right before booking, they check your profile, recent Stories and tagged posts for reassurance. Is it busy? Is it current? Does it look like the photos?

Millennials and Gen Z do this the most. In the iSeatz survey, 45% of Gen Z said they prefer social over search engines for researching trips, and 53% of millennials and 52% of Gen Z said they’d book directly from social if it were secure and easy. Yet scrolling your profile, watching your Reels and reading comments doesn’t create a single session on your website. Social can do the discovery and the validation and still show up as zero in a last-click report. (We’ve written about which social metrics actually predict that kind of influence.)

Why does a long booking window break attribution?

Because the booking often happens after the ad platform has stopped counting. SiteMinder put the global average hotel booking window at 32.15 days in 2025, and Cloudbeds’ data on 10,000+ independent properties put North America at 40 days (2023). Compare that with the default windows platforms use to claim a conversion:

Picture the guest who saves a resort Reel on day one, searches the property name on day 30 and books on day 34. Meta’s window closed weeks ago. Google’s brand campaign gets the click. The Reel that started the whole thing reads as zero. Multiply that by every guest with a long lead time and you can see why social budgets get cut by people reading the wrong report. Booking windows are also one reason a hotel website conversion rate is a poor grade for marketing on its own.

Why Direct in GA4 is a black hole

What actually counts as Direct traffic in GA4?

Direct is GA4’s label for “no idea”: Google’s default channel definition puts a session in Direct when the source is (direct) and the medium is (none) or (not set). In plain English, the visitor arrived with no referrer and no campaign tags. Some of those people typed your URL. Many of them didn’t. Here’s what lands in the same bucket:

  • Links shared in messaging apps: a link pasted into iMessage, WhatsApp or a Slack thread usually arrives with no referrer.
  • In-app browsers: links opened inside Instagram or TikTok’s built-in browsers often don’t pass a referrer, so a creator-driven visit can look like someone typed your address by hand. UTMs survive; referrers often don’t.
  • Your booking engine: most hotels book on a separate domain. Without cross-domain measurement, Google says each domain creates new cookies with new IDs, and Cloudbeds tells its own customers to enable cross-domain tracking for exactly that reason. Skip it and the booking gets split from the visit that earned it.
  • Untagged email, PDFs and QR codes: the group-sales proposal, the wedding PDF, the lobby QR code. No UTMs, no source.
  • Privacy controls: Safari’s tracking prevention deletes cookies set by JavaScript after 7 days without a return visit, and caps them at 24 hours when the visitor lands from a tracking link. When a visitor declines cookies, Google notes their events aren’t tied to a persistent identifier, and the modeling that fills gaps only switches on above traffic thresholds many independent hotels never reach.

How big is the mislabeled share? The best-known test is old but telling: in 2014, Groupon briefly de-indexed itself from search and found that up to 60% of its “direct” traffic was actually organic search. That’s one site, before HTTPS was universal, so treat it as a warning shot rather than a benchmark. The point stands: Direct is a symptom, not a source.

What GA4 files under Direct: group-chat shares, in-app browsers, booking engines without cross-domain setup, untagged email and PDF links, and expired cookies all land in the same bucket as true direct visits from typed URLs and returning guests. WHAT GA4 FILES UNDER DIRECT PHRASING Group text or WhatsApp share Instagram or TikTok in-app browser Booking engine without cross-domain setup Email, PDF or QR link without UTMs Expired Safari cookie or declined consent Typed URL, bookmark, returning guest DIRECT source (direct) / medium (none) GA4 can’t tell these apart. Grey: arrived without a referrer or tags. Teal: the only truly direct visits. Sources: Google Analytics Help (default channel group, cross-domain measurement, consent mode); WebKit Tracking Prevention.
Figure 2: Direct mixes true brand loyalty with everything GA4 couldn’t trace, which is why it can’t be read as a channel.

Doesn’t GA4 fix this with last non-direct click?

Only partly: GA4 credits a returning visitor’s direct session to the campaign values that user arrived with earlier, so a guest who clicked a paid search ad and came back by bookmark keeps the paid search credit. That helps, but it has two catches. It only works when the same browser on the same device still holds the cookie, which Safari and consent banners make less likely every year. And it can’t help with a new person. When a traveler’s partner opens the shared link on a laptop, GA4 has never met them. Direct it is.

Dark social: the group chat where the trip gets booked

What is dark social?

Dark social is sharing through private channels that analytics can’t see, a term journalist Alexis Madrigal coined in The Atlantic in 2012 after noticing how much of his site’s social traffic arrived with no referrer at all. Think text messages, WhatsApp, Messenger and Instagram DMs, Slack, and plain email. The scale is enormous: WhatsApp alone passed 3 billion monthly users in 2025, according to Meta.

Hard numbers on how much sharing goes dark are dated, and we’d rather tell you that than dress up an old stat. The most cited figures are a 2019 GWI and We Are Social survey, where 63% of people said they prefer private channels for sharing content and recommendations, and a 2014 RadiumOne study that put dark social at 69% of sharing globally. Nobody has published a credible 2026 replacement. Given what happened to messaging apps since, it’s hard to argue the share went down.

How does dark social affect travel decisions?

Travel is a group decision, and groups decide in chats: in the iSeatz survey, 43% of travelers said they’re inspired by loved ones, and Phocuswright’s 2025 Europe research found friends and family are still used more than any other single resource for planning. Here’s how that plays out for a resort:

  • Day 1: a guest sees your sponsored Reel and sends it to the “Girls Trip 2027” chat.
  • Day 9: a friend screenshots your rooftop pool and drops it in the same thread.
  • Day 22: the organizer pastes your booking link into the chat and says “this one?”
  • Day 26: someone else opens that link on their laptop and books two rooms.

In GA4, that booking is Direct. In Meta, it’s nothing (the window closed). The sponsored Reel did the heavy lifting and the shares did the closing, and neither shows up. That’s why we track shares and DMs as leading signals, and why we tell clients that a rising Direct line during a social push is usually the social push. (It’s also why influencer programs judged on one-off link clicks almost always look worse than they are.)

Why your channel reports add up to more than your revenue

Why does 1+1+1+1 = 8?

Because every platform counts the same booking within its own window and none of them checks with the others. A guest who saw a Meta ad, clicked a Google ad, opened your email and came through a metasearch link can be claimed by all four. Each report is “right” by its own rules. Add them together and you’re counting one booking four times.

  • Overlapping windows: Google’s 30-day click window and Meta’s 7-day click / 1-day view window can both cover the same booking.
  • View-through credit: a platform can claim a booking from someone who scrolled past an ad and never clicked.
  • No deduplication: Google’s data-driven attribution only sees Google touchpoints. Meta’s model only sees Meta’s. Neither sees the group chat.

How big is the gap in practice? Independent, peer-reviewed numbers don’t exist, and anyone quoting a precise “industry average” is guessing. One analytics vendor reviewing ecommerce accounts reported platforms collectively claiming 30% to 50% more conversions than actually occurred (vendor data, no published methodology). In hospitality mixes with five or six active channels, the platform totals routinely land well above what the PMS shows. The chart below is an illustration of the pattern, not a client’s numbers.

Illustrative example: paid social claims $220K, paid search $260K, email $180K and metasearch $140K, for a combined $800K in claimed revenue, while actual booked revenue in the PMS is $400K. 1+1+1+1 = 8: WHAT EACH PLATFORM CLAIMS PHRASING REVENUE EACH PLATFORM REPORTS $220K Paid social $260K Paid search $180K Email $140K Metasearch $800K claimed Sum of reports $400K booked Actual (PMS) Illustrative example. Each platform counts within its own attribution window, and none deduplicates against the others.
Figure 3: Four honest reports, one booking ledger, and twice the revenue on paper.

Do platform-reported conversions reflect incremental bookings?

Often not: when researchers compared Facebook’s randomized experiments with standard observational measurement across 15 large campaigns, the observational methods were off by a factor of three or more in half the studies (Gordon et al., published in Marketing Science, 2019). In one test, the true lift from the experiment was 73%; the simple exposed-versus-unexposed comparison said 316%.

Search has its own famous case. Economists at eBay and Berkeley found that eBay’s brand-keyword ads had no measurable short-term benefit, because those shoppers clicked the organic listing instead (NBER, 2014). In fairness to Google, its own pause studies found that 89% of paid search clicks were incremental on average across 400+ advertisers (2011). Both can be true. A household-name brand bidding on its own name is a different animal from an independent resort fighting OTAs for its own brand term. The only way to know which one you are is to test.

Didn’t Google’s data-driven attribution solve this?

It narrowed the options more than it solved the problem: in 2023 Google removed first-click, linear, time-decay and position-based models from Google Ads and GA4, leaving data-driven and last click. Data-driven attribution is a real improvement inside Google’s walls. It still can’t see a Reel, a group chat or a TV spot, so it divides credit among the touchpoints it can see. That’s attribution, not incrementality.

Where each channel’s report over-claims. Paid social counts clicks and views inside its window, over-claims through view-through credit and misses late bookings; we watch shares, saves, brand search lift and Direct lift. SEM counts ad clicks in a 30-day window and over-claims brand terms that would have booked anyway; we watch brand versus non-brand and holdout tests. SEO and AIO under-claim because AI answers and copied links land in Direct; we watch non-brand visibility, AI citations and organic bookings. Email takes last-touch credit for decided guests; we watch new versus repeat bookings and revenue per send. Referral and metasearch take final-step credit; we watch net revenue after commissions. Flex media relies on platform-modeled conversions; we watch geo and timing lift. Direct credits nobody and hides other channels’ work; we carve it up using Inverse Protocol experiments. WHERE EACH CHANNEL’S REPORT OVER-CLAIMS PHRASING CHANNEL WHAT ITS REPORT COUNTS WHERE IT OVER-CLAIMS WHAT WE WATCH INSTEAD Paid social Clicks and views inside its window View-through credit; misses bookings after the window closes Shares, saves, branded search, Direct lift during flights SEM Ad clicks in a 30-day default window Brand terms that would have booked anyway Brand vs. non-brand split, holdout tests on brand spend SEO / AIO Organic sessions GA4 can trace Under-claims: AI answers and copied links land in Direct Non-brand visibility, AI citations, organic bookings Email Opens and clicks before booking Last-touch credit for guests already decided New vs. repeat bookings, revenue per send Referral & metasearch Clicks from partner sites Final-step credit for a decision made elsewhere Net revenue after fees, booking-engine share Flex media (CTV, programmatic) Impressions and modeled visits Platform-modeled conversions with loose matching Geo and timing lift in total bookings Direct Everything GA4 couldn’t trace Credits “nobody,” hiding other channels’ work Carved up by experiment results (Inverse Protocol) Sources: Google Ads Help (conversion windows); Google Analytics Help (default channel group); Phrasing methodology.
Figure 4: Every channel’s report is right by its own rules; here’s where those rules over- or under-count, and what we read instead.

How Inverse Protocol assigns bookings (and why the math won’t add up perfectly)

What is Inverse Protocol?

Inverse Protocol is Phrasing’s profit-first approach to paid media: we start with a property’s revenue goal and work backward to the media mix, then review pacing weekly and keep experimenting. (The full method lives on our Inverse Protocol page.) Measurement is where the “inverse” really shows. Instead of asking each platform what it did, we ask what happens to total bookings when that channel changes. That view is built on years of controlled experiments, hundreds of thousands of dollars in media spend, where we’ve added channels, cut them and dialed them up or down, then watched what moved across the whole account, including Direct.

From those results, Inverse Protocol “assigns” affected bookings to each channel in the mix: Social, SEM, SEO/AIO, Referral, Email and Flex Media. Each assignment is our best read of how many bookings that channel actually influences, not how many it managed to tag.

Why don’t the assigned numbers add up to total revenue?

Because channels don’t work alone, and pretending they do is how you get 1+1+1+1 = 8 in the first place. A booking influenced by a Reel and a brand search was affected by both. Inverse Protocol assigns it to both where the evidence says both mattered, so the channel assignments overlap. When you add them up, they won’t land exactly on your PMS total, and we tell clients that up front.

That’s a feature, not a bug. The assignments exist to compare channels and decide where the next dollar goes. They’re not an accounting ledger. Forcing them to sum to 100% would mean inventing a precision nobody has, which is the same mistake the platform reports make in the other direction.

How do you carve up Direct?

We treat Direct as an outcome, not a channel. Across our experiments, Direct rarely sits still when other channels change: it moves when we add or pause social, when search spend shifts, when a CTV flight starts. So we carve up Direct based on those readings, assigning a share of Direct bookings back to the channels whose changes moved it, and leaving the rest as true direct demand from repeat guests, brand loyalty and word of mouth.

We’ve turned those readings into internal benchmarks by brand and property type. A boutique city hotel, a beachfront resort and a branded select-service property don’t book the same way, so each starts from a Direct split that reflects how guests like theirs actually behave, then gets refined with the property’s own results. We don’t publish the ratios, because a number that’s right for one kind of property would mislead the next one.

Inverse Protocol in four steps: platform reports claim overlapping credit; channel experiments add, cut or adjust spend and watch total bookings; affected bookings are assigned to each channel and Direct is carved up; and one efficiency grade of total revenue against total spend sets pacing. INVERSE PROTOCOL: FROM CLAIMED CREDIT TO PACING PHRASING 01 PLATFORM REPORTS Each channel claims bookings inside its own window. Claims overlap. Direct gets the rest. Input, not answer 02 EXPERIMENTS Add, cut or adjust a channel’s spend. Watch total bookings, including Direct. Years of tests 03 ASSIGNED IMPACT Social, SEM, SEO/AIO, Referral, Email and Flex Media each get affected bookings. Direct is carved up. Overlap is expected 04 EFFICIENCY GRADE Total revenue against total spend. No double counting. Sets pacing: scale, hold or trim. The number that adds up Inverse Protocol tells us where. The efficiency grade tells us whether. Source: Phrasing methodology.
Figure 5: Channel assignments guide where money goes; the overall efficiency grade decides how much.

What is the efficiency grade, and why does it drive pacing?

The efficiency grade is one overall number: total booked revenue measured against total marketing spend, across every channel at once. It’s in the same family as what ecommerce teams call MER, or marketing efficiency ratio, which analytics firm Polar describes as total revenue divided by total marketing spend. Because it ignores attribution entirely, it can’t double count. Nobody gets to claim the same booking twice when there’s only one column.

  • It sets the pace: when spend rises and the grade holds, we scale. When it slips, we pull back before the month gets away from us.
  • It catches double counting: if channel reports climb but the grade doesn’t, something is claiming bookings it didn’t create. Inverse Protocol tells us where to look.
  • It keeps everyone honest: the grade comes from your PMS and your invoices, not from a platform that gets paid when you spend more.

One caveat, because it matters for smaller properties. Economists Lewis and Rao showed that ad effects are often small relative to normal swings in sales, so experiments can be too noisy to read cleanly without large volumes (Quarterly Journal of Economics, 2015). A 60-room boutique hotel can’t run a clean two-week test on every channel. That’s why we lean on years of accumulated results across properties, run longer tests where we can, and use the efficiency grade as the check on everything else. The big platforms agree with the principle, too: both Google’s Meridian and Meta’s Robyn marketing mix models calibrate against past experiments rather than trusting modeled credit alone.

Final thoughts

Hotel attribution was never going to be clean. Travelers research for weeks, find you on social, talk it over in a group chat and book on a laptop GA4 has never met. Every platform in the mix sees a slice and reports it as the whole. Fighting that with a better last-click model is a losing game.

What works is the inverse: change the mix on purpose, measure what moves, assign credit where the evidence points, and hold the whole program to one number that has to add up. That’s how we keep spend paced to revenue, and how we stop cutting the channels that quietly start the trip. If you’re also building out the other half of the equation, our guides to hotel SEO and AI search and pairing social with CTV are good next reads.

Tired of channel reports that add up to a hotel you don’t own? Contact Phrasing to see how Inverse Protocol and an efficiency grade would read your mix.

Key Takeaways

Why is marketing attribution so hard for hotels?

Travelers research for weeks across OTAs, search, social and metasearch, and the average hotel booking window runs 30 to 40 days. That’s longer than many platform attribution windows, so the channels that inspire a trip often age out before the booking happens.

What does Direct traffic in GA4 actually mean?

Direct means GA4 found no referrer and no campaign tags. It includes typed URLs and returning guests, but also links shared in texts and WhatsApp, in-app browser visits, untagged emails and PDFs, and bookings split off by a booking engine without cross-domain measurement.

What is dark social and why does it matter for travel?

Dark social is sharing through private channels like texts, WhatsApp and DMs that analytics can’t trace. Trips are planned in group chats, so links shared there often drive bookings that GA4 files under Direct and no ad platform can claim.

Why do channel reports add up to more than total revenue?

Each platform counts conversions within its own attribution window and none deduplicates against the others. One booking touched by social, search, email and metasearch can be claimed four times, so summed reports overshoot actual revenue.

How does Phrasing measure channel performance instead?

Phrasing uses Inverse Protocol, which assigns affected bookings to each channel based on years of experiments adding, cutting and adjusting channels, and carves up GA4’s Direct channel using internal benchmarks built by brand and property type. One overall efficiency grade, total revenue against total spend, sets pacing because it can’t double count.

Live Chat

Have a little chat with Algerbot Krieger and then with our team.

Open our live chat.

Text Us

As a team of Millennials, we are big fans of a good SMS.

+1 (214) 441-6377

Call Us

It's a classic. Feel free to drop us a line if you prefer that.

+1 (214) 441-6337

Email Us

Our inboxes are always ready to hear from new potential friends.

hello@phrasing.agency