Full Answer
GA4 determines traffic source primarily from the HTTP referrer header — the string the browser sends telling the destination server where the visitor came from. When someone clicks a link in ChatGPT or Claude, the AI platform either strips that header, sets it to a generic value, or opens the link in a way that bypasses standard referrer passing altogether. GA4 receives a visit with no source data and files it under Direct, alongside bookmarks and typed URLs.
This is not a minor reporting nuance. AI-referred visitors convert at [4–23x the rate of organic search visitors](https://www.signalbridgedata.com/blog/server-side-tracking-benchmark-report-2026) because they arrive with high intent — they asked a specific question and received a specific recommendation. Misclassifying that traffic as Direct means you cannot measure its value, cannot attribute revenue to it, and cannot invest in producing the content that earns it.
The fix sits at the server level. Your web server sees every incoming request header, including the user agent string, before GA4's JavaScript even loads. AI platforms send identifiable user agents — ChatGPT-User, ClaudeBot, PerplexityBot — that a server-side tracking layer can read and tag as AI traffic. GA4's client-side JavaScript cannot see these headers, which is why the [gap persists for any store relying on browser-only tracking](https://seresa.io/blog/data-loss/912-million-ad-blockers-are-hiding-a-third-of-your-woocommerce-traffic).