I asked 519 hotel visitors how they found us.Analytics had no idea.
TL;DR: Over 62 days on one Paris hotel, 35 visitors told an on-site survey that an AI assistant sent them. ChatGPT tags its outbound links with utm_source=chatgpt.com, so some of them are traceable even with no referrer — and 11 were. The other 24 of 35 (68.6%) carried nothing at all: 12 arrived bare, and 12 arrived from google.com untagged — the surface Google deliberately excludes from its own AI channel. Over the same window, 96.4% of the hotel’s Google clicks were people typing its name. The AI you can measure is the AI that tags itself.
Executive summary
Every hotelier I speak to asks the same question, and it is a reasonable one: how much business is AI actually sending me? The honest answer is that the tools they own are built to answer a different question — which link did this click come from — and AI mostly does not produce a link.
So I put a survey on my own hotel and asked people directly. From 1 July to 1 September 2026, a popup on hotelranque.com asked arriving visitors how they heard about us, and if they said an AI assistant, which one. It appeared to 519 distinct visitors and 68 answered. At the same moment it stored the raw document.referrer, which means every answer can be checked against how that person actually arrived.
That check is the whole study, and it has a wrinkle I nearly missed. ChatGPT appends utm_source=chatgpt.com to the links it hands out, so a ChatGPT visit can be identified even when the browser sends no referrer — and the survey stores the full landing URL, so I can see those tags. 11 of the 35 carried one. The remaining 24 carried no trace of any assistant whatsoever.
1. Four instruments, one hotel, the same 62 days
A single site is a weak base for a claim about volume. It is a perfectly good base for a claim about detection, because the same visitors can be measured four ways at once and the disagreements are the finding. Everything below covers the identical window, 1 July – 1 September 2026.
Three instruments asked to describe the same traffic. None of the three is wrong; they answer different questions, which is exactly the problem. The bottom bar is the most generous possible reading of arrival data — every visitor whose referrer named an AI or whose URL carried an AI campaign tag — and it still lands at less than half the survey. Bars are scaled to 60%. Source: Nicolas Sitter, AI traffic attribution — Hotel Ranque, July–September 2026.
2. They said AI. Most carried no trace of it.
Here is every response against whether the arrival carried any AI signal at all — a referrer naming an assistant, or an AI campaign tag in the landing URL. No attribution model touches this table. Both columns are raw browser values captured at the moment the visitor answered.
| What they said | Carried an AI signal | Carried nothing | Total |
|---|---|---|---|
| An AI assistant | 11 | 24 | 35 |
| A search engine | 0 | 10 | 10 |
| Something else | 1 | 9 | 10 |
| Friend or family | 1 | 4 | 5 |
| I've stayed before | 1 | 3 | 4 |
| A travel site | 0 | 2 | 2 |
| Social media or an ad | 1 | 1 | 2 |
24 of the 35 people who said an AI sent them (68.6%) arrived carrying nothing an analytics tool could use. 12 had no referrer and no campaign tag; 12 came from google.com with no tag either. The 11 who were traceable are almost entirely ChatGPT link-clicks carrying its UTM — which is the point: measurability here is a property of the assistant, not of the analytics.
Splitting by the assistant they named shows where the blindness actually lives.
| AI they named | Tagged or referred | Arrived bare | From google.com | Total |
|---|---|---|---|---|
| ChatGPT | 11 | 10 | 5 | 26 |
| Google Gemini | 0 | 1 | 4 | 5 |
| Microsoft Copilot | 0 | 0 | 1 | 1 |
| Did not say | 0 | 1 | 2 | 3 |
Every single one of the 12 who arrived from www.google.com was untagged — and none arrived from gemini.google.com, which is a host GA4 does recognise. Four of them named Gemini, one named Copilot, five named ChatGPT. Whatever they actually used, they came out of a Google search result page, which is the one AI surface that neither tags its links nor gets counted as AI. Take it also as a caution on self-report: it is trustworthy for whether it was AI and unreliable for which AI.
The disagreement runs both ways, which is worth saying plainly. 4 visitors arrived on a ChatGPT-tagged link and did not say AI — they answered friend, social, something else, and one said they had stayed before. Attribution would have filed all 4 as ChatGPT. They would disagree. I have no way to adjudicate that, and I would rather show it than quietly drop it.
3. Google is not discovering this hotel
If AI influence is real, it should leave a mark on branded search: people who learn a name somewhere else and then type it. Search Console over the same 62 days recorded 151 queries and 56 clicks.
Branded queries produced 96.4% of all clicks from only 20.1% of impressions. The other 765 impressions — every “boutique hotel bastille”, every “bike friendly hotel paris” — produced 2 clicks between them. bike friendly hotels in paris alone returned 229 impressions at average position 8.4 and earned a single click.
The site launched in November, so I have no year-over-year comparison to offer and will not pretend otherwise. It does not matter for this particular claim: 96.4% is a level, and a level is enough to say that Google Search is not where this hotel gets discovered. It is where people go once they already have the name.
One more detail from that export. Seven of the 151 queries are full sentences — “i am visiting paris on an active city break and need a hotel near cycling and running routes?” at 68 impressions and average position 4.66, plus French variants. Zero clicks between them. That is the shape of an AI surface: it shows you to someone, and it keeps the session.
4. The 117 sessions Search Console never saw
Search Console counted 56 clicks from Google Search. GA4 counted 173 sessions as google / organic. That leaves 117 sessions credited to Google organic that Google’s own search reporting never recorded as a search click.
| Session source / medium | Sessions | Share |
|---|---|---|
| (direct) / (none) | 264 | 50.4% |
| google / organic | 173 | 33.0% |
| chatgpt.com / ai-assistant | 62 | 11.8% |
| (not set) | 13 | 2.5% |
| openai / (not set) | 4 | 0.8% |
I can name three things inside that 117 and I cannot yet size them: Google Maps and the Business Profile, which never appear in Search Console’s web report; last-non-direct carry-forward, which recycles an old Google click onto a later direct visit; and AI Mode, which Google files as Organic Search on purpose. Decomposing it is the next piece of work, and I would rather flag the gap than assign it.
While we are in this table — openai / (not set) at 4 sessions and chatgpt.com / organic at 1 never reached the AI Assistant channel either. Even the assistant GA4 is best at recognising leaks out of its own bucket.
5. Why GA4 structurally cannot see it
None of this is a bug, and I want to be fair to GA4 here: three of the four blind spots are documented by Google, and the fourth is a consequence of how referrers work.
AI Overviews and AI Mode are excluded on purpose. Google’s default channel group documentation describes the AI Assistant channel as covering “sources like ChatGPT, Gemini, Deepseek, Copilot, or Grok” and then says plainly: “It excludes Google’s AI Overviews and AI Mode.” Those clicks carry a google.com referrer and report as Organic Search.
Session source is not the referrer on this visit. Google documents that sessions follow non-direct last-click attribution, with a lookback window that defaults to 90 days. Somebody who clicked from ChatGPT in July and typed the URL in August is still filed under ChatGPT. Between that and the UTM tags, GA4’s 62 AI Assistant sessions are not in conflict with my 11 tagged arrivals — they are counting different things over different windows.
First-user source is stickier still, and Safari resets it. It is assigned at the first-ever session and never updated. But Google also documents that browsers cap first-party cookies at 7 days in Safari for visitors who do not return, so an inactive guest comes back as a brand-new user with a brand-new first source.
And the recognised list is not published. Google names examples, never hostnames. Its own two pages disagree — the May 2026 release note lists Claude, the channel-group doc lists Deepseek, Copilot and Grok and omits it. Perplexity appears on neither. You cannot audit a classifier whose inputs are secret.
The practical shape of it: an AI visit is measurable when the assistant chooses to make it measurable — by tagging its links, as ChatGPT does, or by sending a referrer from a host on Google’s unpublished list. Google’s own AI surfaces do neither, and are excluded from the AI channel by design. In my data that is 12 of 35 AI-influenced visits with nowhere to be counted.
6. GA4 also loses 40% of its own events
This one was an accident. The popup writes every event twice — once to my own endpoint, once to GA4 via gtag — from the same function, on the same page load. That makes GA4 measurable against a control, which is not something you usually get.
| Event | First-party endpoint | GA4 | GA4 captured |
|---|---|---|---|
| impression | 563 | 337 | 59.9% |
| dismissed | 207 | 164 | 79.2% |
| ai_step | 35 | 29 | 82.9% |
| prompt_step | 32 | 26 | 81.3% |
Ad blockers and tracking-prevention explain the general shortfall. They do not explain the gradient: the first event in the flow survives at 59.9% while later ones in the same flow, fired by the same code to the same two destinations, survive above 79%. My best guess is that my own endpoint is called with keepalive: true and therefore survives fast page exits that the tag does not — but I have not tested it, so treat that as a hypothesis and not a result.
Either way, it stacks with everything above. Whatever share of AI traffic GA4 could theoretically classify, it is classifying it from an incomplete stream.
7. What this does not prove
This study does not show that 51.5% of the hotel’s traffic came from AI, and I am not claiming it. 68 of 519 visitors answered — 13.1% — and someone who used an AI to pick a hotel is plainly more likely to answer a survey about how they picked the hotel. If every one of the 451 non-respondents had been non-AI, the share would be 6.7%, which is below GA4’s own 10.7%.
The finding that survives is the conditional one, and it is the one worth having: among visitors who say an AI sent them, 68.6% arrive carrying no AI signal at all. Response bias would have to do something very odd to break that — it would need to selectively change whether AI-influenced people arrive tagged or untagged, rather than simply making them likelier to answer. It is a statement about the detection rate, which is what I actually wanted to test.
Four more things I owe you:
- One hotel, 68 responses, 62 days. This is a case study. A second property would not make it a panel either. And it is one assistant’s tagging behaviour: if Gemini or Perplexity start tagging outbound links, the measurable share moves without anything real changing.
- I cannot yet prove GA4 mislabelled those 24. Carry-forward may have quietly recovered some of them from an earlier tagged click. Proving it needs the survey answer and the GA4 channel on the same user — which is now collecting, and is the follow-up.
- Search Console clicks and GA4 sessions are different units. The 117-session gap is directional and I have not decomposed it.
- The earlier Ranque survey is not comparable. An older “how did you hear about us?” question on the booking form returned 21 of 52 for AI search — but that samples people who booked, not people who arrived, and converters research harder. Different population, different number.
Methodology
Site and window. hotelranque.com, a 28-room hotel near Bastille in Paris. 1 July – 1 September 2026 (62 days) for all four instruments, with no date-range differences between them.
The survey. A JavaScript popup slides in 1.5 seconds after page load and appears at most once per browser, tracked in localStorage. It asks “How did you hear about us?” with seven options; choosing “An AI assistant” opens a second step naming six tools (ChatGPT, Gemini, Perplexity, Copilot, Claude, another) and a third, optional, free-text step asking roughly what they asked it. Each answer is POSTed to a Supabase Edge Function with document.referrer, page URL and a browser-scoped visitor id, and upserted by response id so an abandoned follow-up still keeps the channel.
Counting responses. Choosing an AI writes a partial row immediately and every other channel writes complete at the first tap, so filtering to completed responses would drop only AI respondents. All 68 responses are counted regardless of status, which is the unbiased choice here.
What counts as an “AI signal”. Two things, either of which is enough: a document.referrer whose host names an assistant, or an AI campaign tag in the landing URL. ChatGPT appends utm_source=chatgpt.com to its outbound links, and because the survey stores location.href the tag is recoverable even when the referrer is empty — 15 of the 68 responses carry one. Counting only referrers, as I did in a first pass, overstates the invisible share badly; this is the corrected reading.
Referrer reliability. 25 responses were given on a page deeper than the entry page, but no response carries the hotel’s own domain as a referrer — client-side navigation preserves the original document.referrer, so the field is the entry referrer throughout. As an independent check, the survey’s no-referrer share (54.4%) and GA4’s (direct) / (none) share (54.1%) agree to within a third of a point on two independent samples.
GA4 and Search Console. Official CSV exports for the identical range: the Traffic acquisition (session source/medium) and User acquisition reports, the event report, and the Search Console web performance query export. Branded queries are those containing ranque or la planque (the hotel’s former name), excluding one physics query about the Ranque–Hilsch vortex tube that shares the name and earned no clicks.
What is not in here. AI-bot crawl logs are a fourth signal for this hotel and are not quantified for this window; see the cost of AI crawling for that instrument. Raw survey rows are not published because the free-text field can contain trip details.
Frequently asked questions
On this hotel, about two thirds of it. Of the 35 visitors who said an AI assistant sent them, 11 arrived carrying something an analytics tool could use — almost all of them ChatGPT link-clicks carrying utm_source=chatgpt.com. The other 24 (68.6%) carried nothing: 12 arrived with no referrer and no tag, and 12 came from google.com untagged.
Related research
The same Google surface measured from the other end: 99.96% of its citations became google.com/searchviewer wrappers with no publisher URL at all.
The fourth instrument, from real server logs: on-demand AI fetches as an impression counter that needs no click and no survey response.