Some AI assistant visits are visible as referrers, some land under generic referral or direct, and some never arrive with a usable referrer at all. The goal is not perfect attribution; it is a cleaner post-click AI referral bucket in GA4 so you can see more of what is already there.
What you will learn
- Why AI assistant traffic can hide across direct, referral, and scattered sources.
- What referrer matching can clean up, and what it still cannot reveal.
- How to use a starter regex, custom channel group, and exploration to surface AI sessions.
- Where Consent Mode, privacy settings, and BigQuery matter for cleaner measurement.
What “dark AI traffic” means in GA4
Dark AI traffic is the part of assistant-driven traffic that is hard to isolate cleanly in standard reports. Some visits preserve a recognizable referrer, some lose that referrer in app or browser flows, and some arrive in ways GA4 cannot fully explain after the fact.
That is why this setup should be treated as a reporting improvement, not a full attribution system.
Why AI assistant traffic can be hard to classify
The same assistant can send traffic through different surfaces: browser tabs, app webviews, copied links, handoffs through search engines, and privacy-stripped visits. That means source and medium values may be more fragmented than teams expect.
Web vs app referrers
Web visits often preserve clearer referrer strings than app-driven visits. Private browsing, redirect layers, and app handoffs can reduce what GA4 receives.
Direct vs referral caveat
A visit showing as direct does not prove there was no assistant influence before the click. It only tells you GA4 did not receive enough post-click referrer context to classify the source more precisely.
What referrer matching can and cannot solve
Referrer matching is useful for post-click cleanup. It can help isolate sessions that arrive with recognizable assistant domains or patterns.
It cannot prove which prompt created the visit, which answer mentioned the brand, or how much hidden assistant influence remains outside your reports.
The AI referrer list to start with
Use the table below as a candidate list to validate, not as a final canonical list. Confidence depends on whether the pattern is supported by current platform behavior or first-party observations in your own property.
| Assistant or platform | Candidate referrer pattern | Confidence level | What to check in GA4 | Maintenance note |
|---|---|---|---|---|
| ChatGPT | `chatgpt.com` | Higher-confidence candidate | Source, session source, landing pages, events | Review monthly |
| ChatGPT legacy web | `chat.openai.com` | Legacy candidate to test | Source and landing pages | Keep only if observed |
| OpenAI generic domain | `openai.com` | Candidate to test | Referrer detail and landing pages | Remove if it creates noise |
| Perplexity | `perplexity.ai` | Higher-confidence candidate | Source and referral detail | Review monthly |
| Gemini | `gemini.google.com` | Higher-confidence candidate | Source and landing pages | Review monthly |
| Bard legacy | `bard.google.com` | Legacy candidate to test | Historical or residual source values | Keep only if observed |
| Copilot | `copilot.microsoft.com` | Candidate to test | Source and medium combinations | Review monthly |
| Claude | `claude.ai` | Candidate to test | Source and landing pages | Review monthly |
| Poe | `poe.com` | Candidate to test | Source and landing pages | Review monthly |
| You.com | `you.com` | Candidate to test | Source and landing pages | Review monthly |
The regex to test in GA4
Starter regex — validate in your own GA4 property before relying on it.
(chatgpt.com|chat.openai.com|openai.com|perplexity.ai|gemini.google.com|bard.google.com|copilot.microsoft.com|claude.ai|poe.com|you.com)
This pattern is not exhaustive. It will not catch every assistant visit, every app flow, or every privacy-stripped session. Treat it as a starter filter that should be tested against your own source and landing-page data.
Want the full picture including what AI mentions before the click? Book a measurement audit and close the attribution gap properly.
How to build a custom AI Traffic channel group
Use a custom channel group when you want the AI bucket to appear in standard reporting instead of only in ad hoc explorations.
Custom channel group rule order
Rule order matters. Put the AI Traffic rule before broad referral buckets, or the broader rule may absorb the session before the regex is evaluated.
Source / medium review before configuration
Before publishing the channel group, review source, session source, medium, and landing page combinations in a test exploration. That keeps noisy domains or false positives out of the rule.
How to create an exploration for AI sessions
Build a free-form exploration around session source, session medium, landing page, default channel group, key events, and conversions. That view is useful for QA even if the custom channel group is already live.
Landing page review
Check whether the pages receiving assistant traffic align with the topics and prompts you expected. If they do not, your referrer rule may be too broad, or your content map may need review.
Events and conversions review
After sessions appear in the AI bucket, compare event and conversion behavior against other referral sources. Do not jump from visibility to value without checking the post-click path.
GA4 setup checklist
| Step | Where to configure | What to set | QA check | Risk if skipped |
|---|---|---|---|---|
| Review source/medium | Traffic acquisition and exploration | Inspect current assistant-like source values | Confirm candidate referrers are real or plausible | Regex gets built on assumptions |
| Test regex | Exploration filter or custom channel draft | Apply the starter regex to session source or page referrer fields | Inspect landing pages and source detail | False positives stay hidden |
| Create or update custom channel group | GA4 channel group settings | Add AI Traffic rule ahead of broad referral logic | Verify sessions route into the expected bucket | Standard reports stay messy |
| Build exploration | Explore > Free form | Add source, medium, landing page, events, conversions | Confirm the bucket is useful after setup | No QA surface for the rule |
| Check landing pages | Exploration or landing page report | Review which URLs the AI bucket hits | Make sure the pages make sense | Noise looks like signal |
| Check events/conversions | Explore or conversion reports | Compare key events and conversions by AI bucket | Validate post-click quality | The setup stays cosmetic |
| Add maintenance note | Internal measurement doc | Record last review date and candidate domains | Schedule monthly review | The list goes stale quietly |
How to QA the setup after launch
First check whether known candidate domains produce sensible landing pages. Then compare sessions, engaged sessions, key events, and conversions over a stable date range.
An expected diagnostic pattern is simple: some traffic that used to look generic or scattered may now appear in a cleaner AI Traffic bucket. That is a reporting change, not proof that total traffic changed.
What GA4 still cannot see
GA4 cannot show which prompt produced the click. It cannot show every pre-click AI mention, every app visit without usable referrer data, or every private browsing flow that strips source information.
| Question | GA4 can help with | GA4 cannot prove | Better evidence source |
|---|---|---|---|
| Which assistant domains send some post-click visits? | Referrer-based session grouping | Total assistant influence | Prompt logs and page reviews |
| Which landing pages receive recognizable assistant traffic? | Landing page and session source analysis | Why the page was cited or mentioned | Prompt testing and citation review |
| Which prompts created the visit? | Nothing directly | Exact prompt or answer path | First-party prompt research notes |
| How much hidden AI influence remains in direct traffic? | Partial post-click patterns | Full dark-social or dark-AI share | Cross-source diagnostics and stakeholder context |
When BigQuery helps
If your GA4 property exports to BigQuery, you can audit raw events more flexibly than the GA4 interface allows. That is useful when you want to inspect source patterns, landing-page behavior, or custom reporting logic over time.
Use BigQuery for deeper analysis, not as proof that every AI-influenced visit is now measurable.
Common mistakes to avoid
- Treating a starter regex as a complete canonical referrer list.
- Forgetting that custom channel group rule order affects classification.
- Assuming direct traffic without a referrer means there was no assistant involvement.
- Claiming GA4 can show prompts, pre-click mentions, or total AI influence.
- Using made-up screenshots, traffic shares, or conversion lifts to sell the setup.
- Ignoring Consent Mode, privacy, and tagging issues that can blur the result.
Final recommendation
Build the AI bucket as a cleaner post-click reporting layer, not as a promise of full attribution. Start with a starter regex, validate it against your own source values, review landing pages and events, and keep the referrer list under maintenance.
For broader measurement context, connect this setup with the GEO KPI stack, the Consent Mode measurement checklist, the Search Console generative AI report guide, and the GEO pillar.
Want the full picture including what AI mentions before the click? Book a measurement audit and close the attribution gap properly.
FAQ
Why does ChatGPT traffic show as direct in GA4?
Because some visits lose usable referrer data in app, browser, redirect, or privacy flows. Direct in GA4 does not prove the assistant had no influence.
Does this regex work retroactively?
It can help you filter historical data in explorations if the source values already exist, but a new custom channel group does not create referrer data that GA4 never received.
Should AI traffic be organic or referral?
In GA4 it is usually cleaner to treat recognizable assistant visits as their own custom bucket or as referral-like post-click traffic, not as classic organic search.
How often should the regex be updated?
Review it monthly or before publication cycles where platform domains or app flows may have changed.
Can I see which prompts sent the visit?
No. GA4 cannot show the exact prompt or the pre-click answer context that caused the session.
Can GA4 measure AI Overview visibility?
Not directly. Use Search Console for Google Search visibility signals and GA4 for on-site behavior after the click.
Should I use BigQuery for AI traffic tracking?
Use BigQuery when you need more flexible raw-event analysis or custom reporting logic than the GA4 interface provides.
Source notes
- Google Analytics traffic dimensions and sessions
- Google Analytics reports and dimensions
- Google Analytics data freshness and reporting basics
- GA4 collection documentation
- GA4 BigQuery export overview
- Google consent mode setup
- Consent Mode overview
- Google Search AI features
- Search generative AI performance reports
- Search Console