Short answer: To see AI assistant traffic in GA4, report sessions by session source and landing page, then filter to the sources that belong to AI assistants such as chatgpt.com, perplexity and claude.ai.
Review the sources that almost match, because new assistants appear faster than any list, and treat the total as a floor. Most AI influence never produces a tagged click, so the number is always at least this much and never the full impact.
What can GA4 actually see from AI assistants?
GA4 records a visit's source and medium when the browser passes a referrer or the link carries a campaign tag. When an AI assistant sends someone to your site with either of those, GA4 can attribute the session. That subset is measurable, and it is worth measuring because it answers a practical question: which of your pages are assistants actually sending people to?
OpenAI's publisher FAQ states that ChatGPT adds utm_source=chatgpt.com to links it sends, and that this depends on the site allowing OAI-SearchBot. We read that through an excerpt, because OpenAI's help pages block automated fetching, so confirm it on the page before quoting it. For other assistants, such as Perplexity, Claude, Gemini and Copilot, we have not verified referrer hostnames or tagging against primary sources. The honest method is to look at what actually appears in your own property rather than trust a list.
AI referral sessions in GA4 are a lower bound on AI influence, not the total. Report them as at least N sessions, never as the size of AI impact. There is no verified multiplier to correct for the gap.
Why is the number always an undercount?
Because the most common way an assistant influences a buyer produces no tagged visit at all. Understanding the gaps is what stops you reporting a number that is smaller than reality as if it were the whole.
- No-click influence: Someone reads an answer that names your business, then searches for you or types the address later. That visit arrives as organic search or direct, with nothing pointing back to the assistant.
- Stripped or missing referrers: Copied links, apps, in-app browsers and some privacy settings can drop the referrer, which sends the visit to direct. One secondary source says this happens for in-app browsers and copied links. OpenAI has not confirmed it.
- Assistants that do not tag: Without a referrer or a campaign tag, nothing in GA4 identifies the assistant.
- Bots and crawlers: A crawler fetching your page is not a visitor. GA4 filters known bots, not all of them, and crawler activity belongs in server logs, not in GA4.
Do not try to correct for any of this with a multiplier. There is no verified one. Do not read growth in direct traffic as AI traffic without other evidence either. State the denominator instead: AI sessions as a share of all sessions, with both counts shown.
How do you find AI traffic in GA4?
At summary level it is five moves. The exact steps, including the Data API call and the channel-group setup, are in the agent skill guide linked below.
Pick the right property
Confirm which GA4 property you are looking at before you read anything. The wrong property returns a confident, wrong answer.
Report sessions by source, then filter
Group sessions by session source and medium over at least 28 days, and keep the long tail of sources in the data. Then filter to the assistant sources you recognise. The GA4 Data API groups the rows and you filter them yourself.
Review the near-misses
List sources that almost match and any unfamiliar source containing ai, gpt, chat or claude, and look at them with a person's eyes. New assistants appear faster than any list, and silently dropping rows is how a report goes stale.
Rank the landing pages
Group by landing page and source, filter to the AI sources, and rank pages by sessions. The mismatches between the pages assistants send people to and the pages you expected are the useful finding.
Compare quality, if the volume allows
Compare engaged sessions and key events per session against organic search. With fewer than about 30 AI sessions, the comparison is too thin to read, and you should say so.
A starting source filter, matched against the session source and anchored so that gemini.google.com does not catch ordinary Google traffic, looks like this. Only chatgpt.com is backed by a primary source. Treat the rest as hostnames to confirm in your own data.
(?i)^(chatgpt\.com|chat\.openai\.com|perplexity(\.ai)?|claude\.ai|gemini\.google\.com|copilot\.microsoft\.com|copilot|edgeservices\.bing\.com)$This procedure is packaged as an agent skill. It can be installed into Claude Code and other coding agents, so the agent follows the same method each time, including the reminder that the total is a floor. The guide has the full steps and the pitfalls.
Read the AI referral analytics skill guideThe skill source is public, and the install instructions for every skill are on one page.
View the skill source on GitHubThe overview lists every available skill and how to add them to Claude Code and other agents.
Install agent skillsHow do you read the result without overclaiming?
Small sites will see tens of sessions, and at that scale a week-to-week move is noise. Charting a trend from a few dozen sessions makes a coin flip look like momentum. If the volume is thin, say so and report the count rather than a line.
| What you see | Likely reading | What to do |
|---|---|---|
| AI sessions present most weeks, concentrated on a few pages | Assistants have a consistent set of pages they send people to | Study those pages and make sure they are your best and most current |
| A one-day spike | A single mention, or crawler or bot activity | Do not chart it as a trend. Look at server logs if you suspect a bot |
| Direct traffic rising, nothing else | Could be many things, including untagged AI visits | Do not claim it as AI traffic without other evidence |
| Tiny AI volume with good engagement | Too little data to compare | Report the count, wait for volume |
Traffic is not visibility
Whether an assistant cites your site is a different question from whether it sends visitors. Measure citation by asking the engines your buyers' questions and recording the answers, as in our guide to measuring AI search visibility. Use GA4 for the visits that do arrive, and keep the two numbers separate.
How to measure AI search visibilityTwo housekeeping points keep the trend honest. Compare periods of the same length and the same weekday mix, and note the date if you change the channel definition partway through a trend, because the series is no longer comparable across that line.
Common questions
How do I see ChatGPT traffic in Google Analytics 4?
Report sessions by session source and landing page over at least 28 days, then filter to sources such as chatgpt.com. OpenAI states ChatGPT adds utm_source=chatgpt.com to links it sends, so that source is the one to look for first. Review near-miss sources too, since the list of assistants keeps changing.
Why is my AI traffic in GA4 so small?
Partly because it genuinely is small, and partly because most AI influence never produces a tagged click. Readers who see your name in an answer often search for you or type your address later, which arrives as organic or direct. Treat the GA4 number as a floor, not the total.
Can I create an AI traffic channel in GA4?
Yes. In GA4 you can create a custom channel group with a channel such as AI assistants, matched on session source with a regex, and place it above Referral so it matches first. Whether a new channel group applies to historical data is a GA4 behaviour we did not verify, so test it on a past date range before promising history.
Is direct traffic in GA4 actually AI traffic?
Sometimes some of it, but you cannot assume that. Direct traffic includes people typing your address, bookmarks, and visits whose referrer was stripped. Without other evidence, do not report growth in direct as AI traffic.
Sources
Related guides
Want it done for you
Want this done and re-checked every month? Our monthly maintenance re-runs your buying questions in ChatGPT, Perplexity and Google, ships the fixes that keep you out of the answers, and reports what moved. Or run the free check on your site first at advancelabs.dev/tools/audit.
See how it works
