crawlwithai
← Back to blog
UTM parametersChatGPT trafficAI attribution

Why UTM Parameters Break When Traffic Comes From ChatGPT

ChatGPT strips the UTM parameters and referrer data your analytics relies on, so AI orders land as Direct. Here is why UTM tracking breaks and how to fix it.

CrawlWithAI Team·

You set up UTM parameters years ago and they have worked fine ever since. Every email campaign, every paid ad, every affiliate link carries its little string of tags, and your analytics sorts the traffic into neat buckets. Then ChatGPT started sending you buyers, and the neat buckets stopped telling the truth. Your fastest growing source of customers shows up as a flat line called Direct, and the channel that actually introduced those shoppers to your brand gets no credit at all.

This is not a tagging mistake you can fix by being more careful. UTM parameters were built on one assumption: that you own the link the customer clicks. When the link lives inside a ChatGPT answer, you do not own it, you did not build it, and you cannot tag it. That single broken assumption is why a growing share of your revenue is now invisible, and why the problem gets worse every quarter that AI traffic grows.

What UTM Parameters Actually Track

A UTM parameter is a label you bolt onto the end of a URL. The five tags are utm_source, utm_medium, utm_campaign, utm_term and utm_content. A tagged link looks like store.com/?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale. When a visitor clicks it, Google Analytics 4 reads those tags and files the session under the exact source, medium and campaign you specified.

The whole system rests on one thing being true: you are the person who built the link. You write the email, so you tag the button. You buy the Meta ad, so you tag the destination. The UTM string is your handwriting on the envelope, and analytics reads what you wrote. That works for channels you control, and falls apart the moment a customer arrives through a link you never touched.

Why ChatGPT Breaks the UTM Model

Picture how a customer now meets your store. They open ChatGPT and ask for the best running shoes for flat feet. ChatGPT names three brands, explains why, and links to them. You did not write that answer. You did not build that link. A model on the other side of the conversation generated the URL in real time.

There is no step in that journey where you could have added utm_source=chatgpt to the link, because the link did not exist until the model wrote it. The UTM parameters you depend on for email and ads simply never get attached. This is the core reason UTM tracking breaks for AI traffic: the tagging assumption that holds for every other channel does not hold when an AI owns the link.

It gets worse. Even when you publish a perfectly tagged link on your own site, an AI that reads your page and recommends you usually surfaces your clean root domain, not your tagged campaign URL. The AI normalises the link, and your tags get sanded off before the customer ever sees the recommendation.

The Referrer Problem Sitting Underneath UTM

When UTM tags are missing, GA4 has a backup plan. It reads the referrer header, the small piece of data a browser sends that says "this visitor came from chatgpt.com." In theory that lets analytics catch AI traffic even without UTM tags. In practice, AI traffic strips the referrer too.

There are three reasons the referrer disappears. Many AI platforms attach rel="noreferrer" to outbound links, which tells the browser to send no referrer data at all. The ChatGPT iOS and Android apps open links inside an in-app browser that drops the referrer before the request reaches your server. And a large share of people copy the URL out of an AI answer and paste it into a fresh tab, which carries no referrer by definition.

An analysis by Averi AI of just under 450,000 AI-adjacent visits found that 70.6% arrived with no referrer header at all and landed in GA4 as Direct. So the failure is double. No UTM tag, because you did not build the link, and no referrer, because the AI or the device stripped it. The session shows up looking exactly like someone who typed your domain from memory.

ChatGPT Now Adds utm_source=chatgpt.com, And It Still Does Not Fix This

OpenAI did start appending utm_source=chatgpt.com to many outbound links on the web version of ChatGPT. If you have seen that tag in your reports, that is why. It is a real improvement, and it is the reason a slice of your AI traffic is finally visible.

Do not build your reporting on it, though. The tag shows up reliably on desktop web sessions, where a real browser follows the link. It is inconsistent inside the native mobile apps, which is where a large share of ChatGPT usage happens, and reports suggest free-tier sessions do not always generate the parameter the way logged-in paid sessions do. So the one platform that does tag its links only tags some of them, on some devices, for some users.

And it only covers ChatGPT. Perplexity, Gemini and Grok each handle outbound links their own way. Building your attribution around a single vendor's voluntary tagging convention means rebuilding it every time a platform changes behaviour, which they do without warning. The difference between AI-referred sessions and genuine direct traffic is a problem we covered in organic search traffic versus AI-referred traffic, and a vendor tag patches only the easiest corner of it.

GA4's AI Assistant Channel Helps, Until It Does Not

On 13 May 2026, Google added an AI Assistant channel to the GA4 Default Channel Group. It needs no setup. Qualifying sessions from ChatGPT, Gemini, Deepseek, Copilot and Grok get recognised automatically and slotted into their own channel, instead of being smeared across Direct and Referral. If you run GA4, this is worth turning your attention to, because it is the first native attempt to name AI traffic as its own thing.

Then you read the fine print. Perplexity still lands in Referral, not the new channel. Google's own AI Overviews count as Organic Search, so the AI answers sitting on top of Google results are filed as if they were ordinary search clicks. And the channel can only classify a session if the referrer survived the trip. The same in-app and pasted traffic that strips the referrer still arrives as Direct, invisible to the new channel just as it was invisible before. Google built a better label, but it can only label the sessions that arrive with their source intact, and most AI sessions do not.

What Broken UTM Tracking Actually Costs You

This would be a minor reporting quirk if AI traffic were small. It is not. Adobe Analytics found that traffic to US retail sites from generative AI sources jumped 1,200% between July 2024 and February 2025, and kept climbing through the 2025 holiday season. By that holiday period Adobe reported AI-referred visits were converting 31% better than other traffic sources, because the AI had already done the comparison shopping before the customer ever reached your store.

So the channel growing fastest, converting best, and bringing the most pre-qualified buyers is the exact channel your UTM setup cannot see. When that revenue piles up inside Direct, you make three expensive mistakes. You under-invest in the AI content and product data that earned those recommendations, because the dashboard says AI drives nothing. You over-credit branded search and email, which often just catch a customer who was already sold by an AI days earlier. And you treat a swelling Direct bucket as loyal repeat buyers, when much of it is fresh AI-driven demand wearing a disguise. This is the same misread that makes last-click attribution miss most AI-driven revenue, and broken UTM tracking is the mechanism underneath it.

How To Patch UTM Tracking For AI Traffic

You can claw some of it back inside GA4. Build a custom channel group with a regex rule that catches known AI domains and utm_source values like chatgpt.com, perplexity.ai and gemini.google.com, so the sessions that do carry a source get grouped correctly. Add server-side tagging where you can, since a server sometimes captures signal a client-side script loses. And watch branded search and direct together, because a spike in branded search after an AI mention is a soft signal that AI sent buyers who then searched your name.

Each of these helps. None is complete. The core gap is the session that arrives with neither a UTM tag nor a referrer, and it is invisible by definition. No regex rule can find it, because there is nothing in the request to match on. You cannot tag your way out of a problem caused by not owning the link.

How CrawlWithAI Closes the Attribution Gap

CrawlWithAI works the problem from the other end. Instead of waiting for a session to arrive and reverse-engineering its source from a referrer that is no longer there, it monitors when ChatGPT, Perplexity, Gemini and other assistants mention and recommend your store. It tracks which mentions and recommendations drive clicks, then ties that activity to the orders in your Shopify store.

The shift is in the timing. Identification happens at the point the AI references you, not at the point a browser hands over a referrer the app already deleted. So the sessions that vanish into Direct under UTM tracking still get counted, because the signal comes from the AI side of the conversation. You get a revenue layer showing how much of your income is genuinely AI-influenced, alongside whatever GA4 reports.

If you have read our posts on why last-click attribution misses AI-driven revenue and how multi-touch attribution models handle AI referrals, this is the layer underneath both. A model can only credit the touchpoints it can see, and broken UTM parameters are why it cannot see AI. Fix the seeing, and the models finally have something true to work with.

FAQ

Does ChatGPT pass UTM parameters to my store? Sometimes. ChatGPT appends utm_source=chatgpt.com to many outbound links on its web version, so a share of desktop clicks arrive tagged. It is inconsistent inside the native mobile apps and is not guaranteed for free-tier users, so a large portion of ChatGPT traffic still arrives with no usable source data.

Why does my ChatGPT traffic show up as Direct in GA4? Because the session carries neither a UTM tag nor a referrer. You did not build the link, so there is no UTM tag, and the AI platform or the in-app browser stripped the referrer, so GA4 has nothing to read. With both signals missing, GA4 defaults the session to Direct, the same bucket as someone who typed your domain from memory.

Can I add my own UTM parameters to links inside ChatGPT answers? No. The link is generated by the model when it writes the answer, so there is no point where you can insert your own tags. You can tag links on your own website, but an AI that recommends you will usually surface your clean root domain and drop any campaign tags before the customer sees the recommendation.

Does GA4's new AI Assistant channel fix the UTM problem? Partly. The channel that launched in May 2026 recognises ChatGPT, Gemini, Deepseek, Copilot and Grok automatically, which is a real step forward. But it still relies on the referrer surviving the trip, so the in-app and pasted sessions that strip the referrer continue to land as Direct. Perplexity still falls into Referral and Google's AI Overviews count as Organic Search.

How much AI revenue am I likely missing? It depends on how much of your traffic comes through mobile apps and pasted links, but the gap is large. With analysis showing more than 70% of AI-adjacent visits arriving as Direct, a store that does not track AI separately can easily undercount its AI-influenced orders by half or more.


Sources

Get your store into AI answers

CrawlWithAi gets your catalog discovered across every AI assistant and shows you the orders AI drives.

See how it works