Nicolas Sitter
September 2026Attribution · GA4

ChatGPT keeps your tracking tag.Then Google takes the credit.

TL;DR: ChatGPT’s map widget links to a hotel using the website URL stored in its Google Business Profile, query string and all. It rewrites utm_source to chatgpt.com and leaves utm_medium exactly as the hotel set it. GA4 assigns the Organic Search channel on the medium alone, so a listing tagged utm_medium=organic sends its ChatGPT clicks into Organic Search and never into AI Assistant. 716 hotel domains are tagged that way, Hyatt and Kempinski among them. Google gets credited for demand ChatGPT created, and the hotel did it to itself.

NS
Nicolas Sitter
Published 4 September 2026

Summarize with AI

ChatGPTPerplexityClaudeGeminiGrok

Executive summary

80,412
map-widget URLs carrying a UTM
of 230,863 entities
716
domains tagged utm_medium=organic
29,867 entities
2,883
already caught rewritten
across 289 domains
2023
Google's source list vintage
819 sources, 0 AI

I found this while trying to disprove something else. I had a hotel where GA4 reported far more Google organic sessions than Search Console reported Google clicks, and I wanted to know whether AI traffic was hiding in the difference. It was not. But one row in that report (a single session labelled chatgpt.com / organic) turned out not to be the rounding error I took it for.

It is a mechanism, it runs across hundreds of hotel brands, and it points the opposite way to every other AI-attribution problem I have written about. Those are all about AI traffic being invisible. This one is about AI traffic being visibly filed under the wrong name, with a paper trail, because of a tracking tag the hotel added itself for perfectly sensible reasons.

1. Google classifies your traffic with a list written before ChatGPT

Start with the thing underneath everything else. GA4 decides whether a visit counts as Organic Search partly by checking the source against a published list of known search sites. That list is a downloadable file linked from Google’s default channel group documentation. It holds 819 sources, and its Last-Modified header reads 9 February 2023.

Google's published source-category file, 819 rows total, as served in September 2026.
CategorySources listed
SOURCE_CATEGORY_SOCIAL592
SOURCE_CATEGORY_SEARCH129
SOURCE_CATEGORY_SHOPPING52
SOURCE_CATEGORY_VIDEO46

Searching all 819 rows for chatgpt, openai, perplexity, claude, gemini, copilot, deepseek, grok and bard returns 0 matches. The file Google publishes for classifying where your traffic comes from was last touched in 9 February 2023, before ChatGPT had a browsing mode, before any of this existed.

To be fair to Google, this is the published artifact and not necessarily the list running in production, and there is now a separate AI Assistant channel that works off a different list. That other list is not published at all. Either way, the public documentation of how your traffic gets classified is three and a half years behind the thing it needs to classify.

2. ChatGPT rewrites the source and keeps the rest

When ChatGPT shows a place card or a map, the link on it is not something ChatGPT invented. It is the website URL stored in that business’s Google Business Profile, carried through with whatever query string the owner put there. Across 230,863 captured map entities, 112,572 of those URLs carry a query string and 80,412 carry a UTM.

What ChatGPT does to them is specific and, once you see it, obvious: it overwrites utm_source with chatgpt.com and touches nothing else. The proof is domains that appear under two different sources with an identical medium, and the mediums are plainly the hotel’s own vocabulary rather than ChatGPT’s.

Same domain, same utm_medium, two different utm_source values. Counts are captured map entities.
Domainutm_mediumas the hotel tagged itas ChatGPT serves it
fourseasons.comorganicsearchgoogle (4,149)chatgpt.com (480)
hyatt.comorganicgoogle (3,465)chatgpt.com (244)
sofitel.accor.comseo+mapsgoogle+maps (1,570)chatgpt.com (94)
anantara.comorganic_searchgoogle_gmb (742)chatgpt.com (103)
oneandonlyresorts.comorganic-searchgbp (527)chatgpt.com (105)
all.accor.comseo+mapsgoogle+maps (330)chatgpt.com (198)

Nobody at Accor chose seo+maps to describe ChatGPT. They chose it to label their Google Maps listing, years ago, and ChatGPT is now handing that label out with its own name stapled over the source field. If your Business Profile URL is untagged, you simply get ?utm_source=chatgpt.com appended and everything works properly. The damage is done only to hotels that were already trying to measure carefully.

3. Where that click lands in GA4

GA4’s default channel group documentation states the Organic Search rule as three separate lines:

Source matches a list of search sites listed under “SOURCE_CATEGORY_SEARCH”
OR
Medium exactly matches organic

That middle line is an OR. The deliberateness shows in the rest of the table, which joins Direct and every paid channel with AND and reserves OR for Organic Search, Organic Social, Organic Video, Email and SMS. The medium alone is enough. So chatgpt.com / organic satisfies Organic Search without the source mattering at all, which is just as well for Google, since chatgpt.com is not on the list it would have checked.

And it cannot land in the AI Assistant channel instead, because that rule requires the medium to match ai-assistant exactly. With organic sitting in the medium field, the AI Assistant rule fails no matter what order the rules are evaluated in. That matters, because Google documents that ordering for custom channel groups and never for the default one. The outcome here does not depend on it.

One honest note on evidence. Google documents that a manual UTM outranks the referrer (the referrer “may set dimensions when no other campaign or traffic source fields have been set”) and separately that the ai-assistant medium is assigned “if the referrer matches a list of AI Assistants”. It never says in one sentence that a manual medium suppresses that automatic assignment. That step is composed from two documented facts rather than quoted from one, and I would rather flag it than let it pass as Google’s own wording.

And here it is in the wild, in a live GA4 property:

GA4 session source/medium report listing chatgpt.com / ai-assistant at row 3 and chatgpt.com / organic separately at row 8

Two ChatGPT rows in one report. chatgpt.com / ai-assistant at row 3 is the channel working as intended. chatgpt.com / organic at row 8 is the same assistant arriving with a medium it inherited, and it will be counted as Organic Search. Source: Nicolas Sitter, Business Profile UTMs in ChatGPT map widgets, 2026.

4. Who is exposed

organic is not some exotic choice. It is far and away the most common medium on a Business Profile link, and it is the one GA4 treats as a reserved word.

utm_medium values on ChatGPT map-widget website URLs. "Caught rewritten" counts entities already captured with utm_source=chatgpt.com and that medium intact. 63,665 entities across 1082 domains carry some medium.
utm_medium on the listingEntitiesDomainsCaught rewritten
organic29,8677162,883
seo maps4,949120
organicsearch4,7983487
seo+maps4,10515681
local3,81744368
gmb2,07263163

716 domains carry utm_medium=organic on their Business Profile link: 29,867 entities, 46.9% of every tagged listing in the corpus. That is the exposed population. 2,883 entities across 289 of those domains have already been captured with the source rewritten and the medium surviving.

These are not neglected listings. The domains already caught are largely brands with real marketing teams behind them, which is the point: the tag is a sign of somebody trying to measure their listing traffic separately, and that is precisely the effort that backfires here.

Domains most frequently captured with utm_source rewritten to chatgpt.com while utm_medium=organic survived.
DomainEntities caught as chatgpt.com + organic
oetkerhotels.com313
hyatt.com244
kempinski.com99
dylanamsterdam.com81
1hotels.com55

5. What is actually lost, precisely

It would be easy to write that this makes ChatGPT traffic invisible. It does not, and the distinction is worth getting right.

The Session source dimension still says chatgpt.com. The traffic is misfiled, not missing. What breaks is everything that reads the channel rather than the source: the AI Assistant channel count, every channel-grouped report and comparison, and any attribution model built on the default channel group. Meanwhile the Organic Search number is inflated by clicks Google did not send.

So the hotel that did the most work to measure its listing carefully ends up with two wrong numbers instead of one missing number, and no indication that anything is off. You would only find it by opening the source/medium report and noticing that ChatGPT appears twice, on two different rows, for no obvious reason.

There may be a partial rescue. Google introduced a Source Group dimension in June 2026 with, in its words, “built-in grouping for emerging traffic sources like ChatGPT (OpenAI) and Perplexity”, populated retroactively. Being derived from the source, it ought to bucket these clicks correctly even with the medium hijacked. Google documents neither how it is derived nor how it interacts with manual UTMs, so I am flagging it as a thing to test rather than a thing to rely on.

6. The fix takes one minute

Open your Google Business Profile, look at the website field, and read the query string. If it contains utm_medium=organic, that is the whole problem.

The instinct behind the tag was right: you wanted listing traffic separated from ordinary search traffic. The error is which field it went in. Medium is the field GA4 uses to assign channels, and organic is a reserved word inside it. A source-only tag gives you the same separation without touching the channel logic:

Hijacks the channel
?utm_source=google&utm_medium=organic
Separates without hijacking
?utm_source=gbp

Two warnings before you go and edit it. Any change to the Business Profile URL takes time to propagate into ChatGPT, since the widget reflects what Google holds rather than what you just typed. And I have seen community reports of UTMs being stripped from that field, and one of a listing suspension after adding them. Those are user-generated forum posts rather than anything Google has stated, so treat them as an unverified risk rather than guidance.

Methodology

The corpus. ChatGPT responses to hotel prompts captured at scale and flattened to one row per map or place entity, retaining the website_url field verbatim so the query string survives. 230,863 entities. utm_source and utm_medium are extracted by regular expression; values are compared lower-cased, and URL-encoded variants such as seo%20maps and seo+maps are left distinct rather than merged, since they are separate strings as far as GA4 is concerned.

How the overwrite is established. Not by watching ChatGPT rewrite a URL, which we cannot observe directly, but by finding domains that appear with an identical utm_medium under two different utm_source values, one of which is chatgpt.com and the other of which is the business’s own convention. A medium like seo+maps or organic_search is not plausibly ChatGPT’s invention, and it appears on the same domain under both sources.

The GA4 rules are quoted from Google’s default channel group documentation as rendered in September 2026. The source-category file is the artifact linked from that page; its 819 rows were extracted and searched, and the 9 February 2023 date is the HTTP Last-Modified header on the file itself rather than a claim on the page.

Limits. One vertical: these are hotel prompts, so the domain counts describe hotels rather than businesses in general. The corpus records what ChatGPT served rather than what visitors clicked, so this measures exposure and never traffic volume. Whether other assistants with place widgets rewrite utm_source the same way is untested. And the final step of the argument, that a manual medium suppresses Google’s automatic ai-assistant assignment, is composed from two documented facts rather than quoted from one.

Frequently asked questions

Partly. In its map and place widget it links to a business using the website URL stored in that business’s Google Business Profile, including whatever query string is already there. It overwrites utm_source with chatgpt.com and leaves the rest, utm_medium included, untouched. Four Seasons appears with utm_medium=organicsearch under both google and chatgpt.com; Accor with utm_medium=seo+maps under both google+maps and chatgpt.com.

Related research