
- GA4's default channel grouping has no rule for chatgpt.com, perplexity.ai, or Gemini referrers, so that traffic lands in Direct or unclassified Referral by default.
- Direct traffic climbing while paid and organic hold flat is the tell. Check Referral before you credit it to brand awareness.
- Build a custom channel group in Admin > Data Display > Channel Groups with explicit rules for known AI referrer domains, then backfill a Looker Studio view since GA4 won't reclassify historical sessions.
- Answer-engine visibility only shows up in your reporting if you build the report yourself. It's easy to miss this data unless you go looking for it.
A client asked me last month why Direct traffic was up on a quarter where they'd barely touched brand campaigns. No new billboard, no podcast sponsorship, nothing that explains people typing the URL straight into the address bar.
If you're trying to track AI search traffic in GA4, this is usually where it's hiding. I pulled the GA4 Referral report and started scrolling. Buried under the usual noise, chatgpt.com showed up with a session count nobody on the team had ever looked at. It wasn't huge. But it wasn't zero either, and it had been growing every month since the prior fall.
Nobody had seen it because nobody was looking. GA4's channel grouping doesn't know what to do with an LLM referrer, so it either shrugs and calls it Direct, or it dumps it into an unclassified Referral bucket that nobody opens because it's not in any of the default dashboards. GA4's own classification behavior for AI referrers appears to be shifting over time, so it's worth checking your current referral numbers against what you're seeing before you build a custom fix on top of it.
Why GA4 loses this traffic in the first place
GA4's default channel grouping is a set of rules based on source, medium, and campaign parameters. Google built those rules for a world of search engines, social platforms, and email tools. ChatGPT, Perplexity, and AI Overviews didn't exist when the rule set was written, so they don't match any category.
Here's what actually happens to a session that starts from a link inside a ChatGPT answer:
- If the referrer header comes through cleanly as
chatgpt.com, GA4's default grouping doesn't recognize it as a search or social source. It usually lands in "Unassigned" or gets grouped into generic Referral. - If the click happens inside the ChatGPT iOS or Android app, there's often no referrer at all. The browser opens a new tab with no
document.referrervalue. GA4 has nothing to key off, so the session gets counted as Direct. - Perplexity behaves similarly in my experience. Some traffic passes a referrer, some doesn't, depending on whether the click happens in-app or in a mobile browser wrapper.
- Google's AI Overviews are the messiest case. In my checks, sessions from an AI Overview citation can look identical to normal Google organic sessions in the referrer string, so they get folded into
google / organicwith no reliable way to separate them without server log data or a UTM-based workaround on your side.
None of this is a bug. GA4 is doing exactly what it was told to do. Nobody told it what an AI answer engine looks like. This is the same category of problem as cross-domain sessions collapsing into Direct: the classification logic breaks down anywhere the referrer chain doesn't match GA4's assumptions.
Direct traffic increasing doesn't trigger anyone's attention the way a paid campaign tanking does. A number going up quietly, with no alert and no dashboard flag, just sits there. In my experience, this is usually how AI-sourced traffic gets discovered, by accident, while debugging something unrelated.

The fix: build a custom channel group
GA4 lets you define your own channel grouping logic without touching the default one. Go to Admin > Data display > Channel groups, then create a new custom channel group. You're writing rules that evaluate before the default grouping kicks in, so you can carve AI referrers out of Direct and Referral before they get lost.
Start with the referrer domains you can actually confirm are sending traffic. Check your existing Referral report first (Reports > Acquisition > Traffic acquisition, filtered to Session source / medium) and look for these patterns:
chatgpt.comperplexity.aiwww.bing.comcombined with acopilotor Bing Chat referrer path (I've seen Copilot traffic show through Bing's domain this way, though it varies by how the click was initiated)gemini.google.comclaude.ai
Set up a rule like this in the channel group builder:
Channel name: AI Search / LLM Referral Condition: Session source contains "chatgpt.com" OR Session source contains "perplexity.ai" OR Session source contains "gemini.google.com" OR Session source contains "claude.ai"
You can stack these as OR conditions within one channel, or split them into separate channels (ChatGPT, Perplexity, Gemini) if you want visibility into which model is sending the most traffic. I'd start split. Aggregating them too early makes it hard to tell if growth is broad or concentrated in one source.
Custom channel groups in GA4 only apply going forward from when you save them. They don't reclassify past sessions. If you want a historical view of AI-sourced traffic before today, you'll need to query the BigQuery export (if you have it linked) or rebuild the picture manually from the raw Referral report, filtering by source string for each past period.
What to do about the Direct traffic that has no referrer
The custom channel group solves the sessions that pass a referrer. It does nothing for sessions with no referrer at all, which tends to be most of the app-based AI traffic.
Two options here, and neither is perfect:
UTM tagging on any content you control. If you publish content specifically for LLM citation (help docs, comparison pages, structured reference content), you can't force ChatGPT to append UTMs when it links out. But you can control what you put in your own answer-ready summaries and structured data if there's ever a chance a platform preserves query parameters on outbound links. Don't count on this working consistently. It's a partial mitigation, not a fix.
Segment Direct traffic by landing page and behavior. Pull a segment of Direct sessions and look at landing page distribution. If a disproportionate share is landing on a specific documentation page, a pricing comparison page, or a niche technical doc rather than the homepage, that's a strong behavioral signal of AI-referred traffic even without a referrer string to prove it. Homepage-heavy Direct traffic is more likely to be actual brand recall. Deep-page Direct traffic that spikes alongside your Referral-based AI numbers is probably the same phenomenon, just missing its receipt.
This won't give you a clean number. It gives you a defensible estimate, which in my experience beats not measuring it at all. It's the same tradeoff you run into with reconciling BI dashboard numbers against GA4 and CRM data: the rollup number is an opinion, and you need to know which opinion you're looking at.
Set up the dashboard so you actually check it
Building the channel group and never looking at it is the same as not building it. Add an explicit "AI Search / LLM Referral" line to whatever acquisition dashboard your team actually opens every week, not a secondary report three clicks deep.
In Looker Studio, this means a scorecard or trend line filtered to your new channel group, sitting next to Organic Search and Paid, not below the fold. If it's not in the same view as the metrics people already check, it gets ignored the same way the raw Referral report was getting ignored before.
Set a monthly cadence to revisit the referrer list too. New AI products and app wrappers show up faster than GA4's own classification will ever catch up to. A referrer pattern that didn't exist six months ago might be worth a meaningful share of your traffic today.
What this actually tells you
Once the channel group is live, watch it for a full quarter before drawing conclusions. A single month of data is noise. What you're looking for is direction: is this a rounding error, or is it a channel that deserves its own line in the acquisition report going forward.
Either way, you now know instead of guessing. The traffic was always there. It just didn't have anywhere to go.