TL;DR
A default GA4 install cannot tell you how much traffic AI assistants send you, because most of it lands in Direct or gets mixed into Referral with unrelated sources. Fixing that takes four things: a property and stream configured with the right data retention and internal traffic rules, key events that map to actual business outcomes, a custom channel group that isolates AI assistants by referrer, and the Search Console link so organic queries sit alongside behaviour. The custom channel group is the step that separates a property you can answer questions with from one you cannot.
Audience
In-house marketers and agency analysts configuring GA4 from scratch, or repairing a property where AI referral traffic is buried in Direct.
Cortex
Cortex is modern marketing. Old marketing waited on people. Modern marketing fuses the efficiency of AI with the experience of experts. Meet your optimization engine.
Get CortexEffective
Google documents the GA4 property creation process, including the account and property hierarchy that governs where data lives. [src]
Impact
Google documents data retention controls for GA4, which govern how long user-level and event-level data remains available for exploration. [src]
Action
Google documents custom channel groups, which allow traffic to be reclassified by source and medium rules rather than accepting the default grouping. [src]
Platform
Google documents the Search Console link for GA4, which brings organic query and landing page data into Analytics reporting. [src]
Methodology
Cortex built this post from Google's published GA4 setup and channel group documentation, and from configuring the AI referral channel group across client properties to isolate assistant traffic that GA4 defaults into Direct or Referral.
A default GA4 property cannot answer the question every marketing team is now asking, which is how much traffic AI assistants actually send. The data is in there. It is filed under Direct, mixed into Referral alongside unrelated sources, and effectively invisible.
That is a configuration gap rather than a platform limitation, and closing it takes about an hour. This guide covers the full setup from an empty property through to a channel group that reports ChatGPT, Perplexity, Gemini, and Copilot as their own line, plus the Search Console link that puts query data next to behaviour.
If you already have a working property, skip to the channel group section. That is the part almost nobody has done.
Create the Property and Stream
Start with the hierarchy, because getting it wrong is expensive to undo.
An account holds properties, and a property holds data streams. The rule worth following is one property per business, one stream per platform. A website and an app belong in the same property as separate streams so a user moving between them is one user. Two unrelated brands belong in separate properties.
Google's property creation documentation covers the mechanics. Four decisions matter as you go.
The reporting time zone determines where a day boundary falls, and changing it later does not restate historical data. Pick the one your business reports in.
The currency should match the currency your revenue is recorded in, since GA4 converts at a daily rate and a mismatch introduces drift you will not notice for months.
Industry category is a light-touch setting that affects benchmarking, so accuracy costs nothing.
The data stream gives you a measurement ID. Install it once, through your tag manager or directly, and confirm exactly one instance is firing. Duplicate installs are the single most common cause of session and event inflation, and they are hard to spot after the fact because the numbers look plausible.
The Settings to Fix Immediately
Five defaults are wrong for almost every business, and four of them cannot be fixed retroactively. Do these before you care about the data.
Set data retention to the longest available option. Google's data retention documentation covers the control, and the default is shorter than most teams assume. Data past the retention window is gone for exploration purposes, and raising the setting later does not recover it. This is the single highest-cost default in the product.
Define internal traffic rules so your own team's sessions are identifiable. Add your office and VPN IP ranges. Without this, a small site's numbers are meaningfully polluted by staff, and agency traffic on a client property is worse.
Add unwanted referral exclusions for your own domains and your payment processor. A checkout that redirects through a payment provider and back creates a new session attributed to that provider, which quietly reassigns conversion credit away from the channel that earned it.
Turn on enhanced measurement selectively. Page views, scrolls, and outbound clicks are usually fine. Site search needs your actual search parameter configured to work. Automatic file download tracking is often noise.
Review Google signals against your privacy position. It enables demographic reporting and cross-device measurement, and it has consent implications, so this is a decision to make deliberately rather than by default.
Define Key Events That Mean Something
Key events are GA4's replacement for goals, and the failure mode is marking too many rather than too few.
Every event you mark as a key event appears in conversion reporting. Mark fifteen and the report tells you nothing, because a newsletter signup and a purchase carry equal visual weight while differing by three orders of magnitude in value.
Pick three to five that represent genuine business outcomes. For most B2B sites that is a demo request, a qualified contact form, and a pricing page visit with meaningful engagement. For ecommerce it is purchase, add to cart, and begin checkout. For a media business it is a subscription start and a newsletter signup.
Two implementation notes that matter more than the list.
Send a value with the event where one exists. A key event with no value cannot appear in revenue reporting or feed value-based bidding, which removes most of its usefulness downstream.
Name events consistently and document the naming scheme. GA4 event names are case sensitive, so Sign_Up and sign_up are two different events, and discovering that after six months means six months of split data.
Our guide to SEO reporting covers which of these numbers are worth putting in front of a client.
Why AI Traffic Hides in Direct
This is the part that makes an otherwise correct GA4 setup unable to answer the question you most want answered.
Traffic from an AI assistant arrives in one of three states, and only one of them is classified usefully by default.
Some assistants pass a referrer. A click from ChatGPT can arrive with chatgpt.com as the referrer, and GA4 files it under Referral alongside every other referring site. It is present but buried among unrelated sources.
Some pass a referrer with a UTM parameter. Our post on reading ChatGPT referral traffic in GA4 covers this pattern in detail.
Much of it passes nothing at all. A user reading an answer in a desktop app, copying a URL, or navigating from a context where the referrer is stripped arrives as Direct. That traffic is genuinely unattributable at the session level.
The practical consequence is that your AI referral number is always an undercount, and the honest way to report it is as a floor rather than a total. What the channel group below does is surface the portion that is attributable, which is enough to establish a trend even though the absolute number is understated.
Build the AI Channel Group
A custom channel group reclassifies traffic by rules you define. Google's custom channel group documentation covers the mechanics, and this is the highest-value configuration change in the whole setup.
Create a new channel group, add a channel named AI Assistants, and order it above Referral and Organic Search so it captures matching traffic first. Channel rules are evaluated in order, and a channel placed below Referral never sees the traffic Referral already claimed.
Match on source containing any of the following.
chatgpt.comandopenai.comfor ChatGPTperplexity.aifor Perplexitygemini.google.comfor Geminicopilot.microsoft.comandbing.com/chatfor Microsoft Copilotclaude.aifor Claudeyou.comandsearch.brave.comfor the smaller engines
Three refinements worth adding.
Split the channel in two if the volume justifies it, separating AI Search from AI Chat, since a click from an assistant answering a question behaves differently from a click out of a conversational session.
Keep the default channel group untouched alongside your custom one. Custom groups apply going forward and to historical data in most reports, and keeping the default gives you a stable comparison.
Add any new assistant referrer as it appears. This list dates quickly, so review it quarterly rather than treating it as finished.
Once the group exists, the reports that matter are engagement and conversion rate by channel. The interesting finding on most properties is not the volume, which is small, but the conversion rate, which is frequently well above organic because the assistant pre-qualified the visitor.
Link Search Console
Linking Search Console puts query data and on-site behaviour in the same interface, and Google documents the Search Console link process.
The link requires that you are a verified owner of the Search Console property and have edit rights on the GA4 property. Once connected, enable the Search Console reports in your report collection, because the link alone does not surface them.
What the link gives you is the join between a query and what happened next. Organic queries, landing pages, impressions, and clicks sit next to engagement and key events, which answers questions neither tool can answer alone: which queries bring people who convert, and which bring people who leave.
Two limitations to know. The data is aggregated and sampled in ways session-level GA4 data is not, so numbers will not reconcile exactly with the Search Console interface. And the link covers one Search Console property, so a site with separate domain and URL-prefix properties needs the right one chosen deliberately.
Our post on Google Search Console in 2026 covers the query side in more depth.
Verify the Setup
Do not assume it works. Six checks, in this order.
- Realtime report. Load your site and confirm your session appears. If it does not, the tag is not firing.
- Duplicate tag check. Use the Tag Assistant or your browser network tab to confirm exactly one measurement hit per page view. Two means inflated everything.
- Key event firing. Complete each key event yourself and confirm it registers with the right name and value.
- Internal traffic exclusion. Confirm your own sessions are being flagged, which usually means checking that a test session appears as internal rather than assuming the IP rule took.
- Channel group. Click through from an assistant if you can, or check whether any historical traffic reclassifies into the new channel.
- Search Console reports. Confirm the reports populate, which can take a couple of days after linking.
Write down what you configured and when. A property with undocumented custom channel groups and unexplained event names is a property the next analyst distrusts and rebuilds.
Common Mistakes
- Leaving data retention at the default. The most expensive default in GA4, because the loss is permanent.
- Two tags firing. Inflates sessions, users, and events, and the resulting numbers look plausible enough to go unnoticed for months.
- Marking a dozen key events. Conversion reporting becomes unreadable when a newsletter signup ranks alongside a purchase.
- No unwanted referral exclusions. Payment processors and your own subdomains fragment sessions and steal conversion credit.
- Accepting the default channel grouping. AI assistant traffic stays buried in Direct and Referral, which is the whole problem this setup exists to solve.
- Inconsistent event naming. Case-sensitive names split one metric into two, and the fix is not retroactive.
- Reporting AI referrals as a complete total. A meaningful share arrives with no referrer, so the number is a floor.
Frequently Asked Questions
Why does AI traffic show up as Direct in GA4?
Because a significant share of assistant clicks arrive with no referrer. Users copying a URL out of an answer, clicking from a desktop app, or arriving from a context that strips the referrer are all genuinely unattributable, so GA4 files them under Direct.
How do I separate ChatGPT traffic from other referrals?
Build a custom channel group with a channel matching source values such as chatgpt.com, perplexity.ai, and gemini.google.com, and order it above Referral so it claims that traffic first. Channel rules are evaluated in order.
What data retention setting should I use?
The longest available. The default discards data sooner than most teams expect and raising the setting later does not recover what has already aged out, which makes it the highest-cost default in the product.
How many key events should I mark?
Three to five. Every key event carries equal weight in conversion reporting, so marking a dozen makes the report unreadable by putting a newsletter signup next to a purchase.
Does linking Search Console change my GA4 data?
No. It adds reports joining query and landing page data to on-site behaviour. The Search Console figures are aggregated differently from session-level GA4 data, so the two will not reconcile exactly and that is expected.
Key Takeaways
- -Set data retention to 14 months on day one, because the default discards history you cannot recover later.
- -Key events are GA4's conversions, and marking too many makes the report useless.
- -A custom channel group is the only way to separate AI assistant referrals from Direct and Referral.
- -Link Search Console to the property so query data and on-site behaviour sit in one place.
- -Define internal traffic and unwanted referral rules before launch, since they do not apply retroactively.
Ready to optimize for the AI era?
Get a free AEO audit and discover how your brand shows up in AI-powered search.
Get Your Free Audit
