ChatGPT Traffic Showing as Direct in GA4 and How to Track It

ChatGPT icon for tracking ChatGPT traffic in GA4

ChatGPT traffic showing as Direct in GA4 is usually a missing signal rather than a broken tag. Google Analytics can only name the source of a visit when it arrives with a referrer or a campaign tag. Plenty of clicks from ChatGPT answers arrive with neither. Those sessions are filed under Direct alongside typed addresses and bookmarks, which makes AI search look smaller than it is while Direct looks larger. Measuring that gap is part of LLM performance tracking for B2B marketing teams, because visibility in ChatGPT only matters to the business when it can be tied to visits and enquiries.

Recovering the lost visits is a mix of reading GA4 correctly and estimating what it cannot see. The sections below cover why the source goes missing, where ChatGPT visits end up in the reports, how to group them in one channel and how to judge the share that stays hidden in Direct.

Why ChatGPT Traffic Shows as Direct in GA4

ChatGPT traffic shows as Direct in GA4 when a visit arrives with no referrer and no campaign tag, so Analytics has nothing to record as the source. GA4 does not guess where an unlabelled visit came from. It files the session under Direct, the same channel used for people who type the address or open a bookmark.

A referrer is the address of the page that sent the visitor, passed along by the browser when someone follows a link. A campaign tag is a parameter added to the link itself, such as utm_source=chatgpt.com. The two travel separately, so a visit can lose one while keeping the other.

Referrers go missing for ordinary technical reasons. The W3C Referrer Policy specification defines a no referrer policy, under which no referrer information is sent with requests to any origin. Links opened from a desktop or mobile app, copied into a new browser tab or passed through a page that applies that policy can therefore reach your website with no referrer at all.

How GA4 Decides a Visit Is Direct

GA4 classes a visit as Direct only when the source is recorded as (direct) and the medium as (none) or (not set). Google’s default channel group definitions describe Direct as the channel for people who arrive through a saved link or by entering the URL, but in practice it collects every visit that carries no source information.

Each channel in the default group is a rule that reads the session source and medium. A visit that matches none of the rules is shown as Unassigned rather than Direct. That difference matters for ChatGPT, because a visit with a known source but no medium does not count as Direct.

Session dimensions describe how each visit started, while first user dimensions keep the source of the very first visit. Google’s guide to the scopes of traffic source dimensions explains that new values are assigned to session dimensions each time a user returns, so any check on ChatGPT traffic should use the session versions.

The Three Ways a ChatGPT Visit Can Reach Your Website

A ChatGPT visit reaches your website with a referrer, with a campaign tag only or with no source information at all. Each of those lands in a different part of GA4, so the first job is knowing which rows to read.

The campaign tag comes from ChatGPT itself. OpenAI’s publishers and developers FAQ says ChatGPT automatically includes the parameter utm_source=chatgpt.com in referral URLs from ChatGPT search results. That tag sits in the address rather than in the browser request, so it can survive when the referrer is lost.

What arrives with the visit Where it usually appears in GA4 How to find it
A referrer from chatgpt.com The AI Assistant channel, with the medium set to ai assistant Read the AI Assistant row in the default channel group
The campaign tag only Source chatgpt.com with a medium of (not set), usually in Unassigned Search for chatgpt in the Traffic acquisition report
No referrer and no tag Direct, recorded as (direct) / (none) Estimate from trends, devices and landing pages

The third row is the one that inflates Direct. No setting in GA4 can recover a source that never arrived, so the aim is to read the first two rows correctly and estimate the third rather than try to count it.

What the AI Assistant Channel Changes

The AI Assistant channel gives ChatGPT visits that carry a referrer their own row in the default channel group, instead of mixing them into Referral. Google’s channel definitions say that when the referrer matches its list of AI assistants, GA4 sets the medium to ai-assistant and the campaign to (ai-assistant). The channel then picks the session up from that medium.

The channel covers sources such as ChatGPT, Gemini, Deepseek, Copilot and Grok. It does not cover Google’s AI Overviews or AI Mode, which Google keeps in Organic Search with the rest of its search results.

Our post on Google Analytics adding the AI Assistant channel group covers the release itself. The point for troubleshooting is narrower, since the channel relies on a readable referrer and does nothing for the visits already sitting in Direct.

How to Find ChatGPT Traffic in GA4

ChatGPT traffic is found in GA4 by searching for the source in the Traffic acquisition report rather than relying on a single channel total. Google’s help page for the Traffic acquisition report explains that it sits under Reports and Acquisition. You can view a single traffic source by searching for it in the bar above the table.

  1. 1

    Open the Report

    Go to Reports, then Acquisition and Traffic acquisition. Choose a date range that covers several weeks so a few visits do not distort the picture.

  2. 2

    Change the Dimension

    Switch the main dimension from Session default channel group to Session source / medium. Each source then appears with the medium GA4 recorded for it.

  3. 3

    Search for ChatGPT

    Type chatgpt in the search bar above the table and press Enter. The rows that appear show whether those visits arrived with a referrer, a tag or both.

  4. 4

    Add the Channel

    Add Session default channel group as a secondary dimension. That shows which channel each ChatGPT row was counted in.

An empty result does not prove that ChatGPT sent nobody. It only shows that no session in the period arrived with a ChatGPT referrer or tag, which is exactly the case the Direct channel hides.

Key events are worth adding to the same view, because sessions alone say little about value. A small number of ChatGPT sessions that lead to enquiries tells a different story from a larger number that leave after one page.

Why ChatGPT Visits Can Appear as Unassigned

ChatGPT visits can appear as Unassigned when they arrive with the campaign tag but no medium, because no default channel rule matches that combination. Google’s guide to URL builders and campaign parameters notes that missing UTM parameters result in (not set) values in reporting, so these sessions show chatgpt.com as the source with (not set) as the medium.

Direct needs the source to be (direct), Referral needs a medium such as referral or link and the AI Assistant channel needs its own medium. A session that fits none of them is placed in Unassigned, which Google’s guidance on tagging describes as the row that appears when Analytics cannot categorise the source of traffic.

Checking Unassigned for chatgpt.com rows is therefore part of any ChatGPT audit. The same check is worth repeating for other assistants, since any tool that adds a source tag without a medium will produce the same pattern.

Setting Up a Custom Channel Group for AI Traffic

Reporting icon for a custom AI channel group in GA4

A custom channel group brings every AI visit GA4 can identify into one channel, including the tagged visits that would otherwise sit in Unassigned. Google’s help page on custom channel groups includes a worked example for AI assistants and notes that custom groups can be applied to reports retroactively.

The group is created in Admin under Data display and Channel groups, by copying the default group and adding a new channel. The AI channel uses a Source condition set to matches regex, listing the AI domains you want to include. It has to sit above Referral, because traffic is counted in the first channel whose rule it matches.

A pattern that names domains is easier to audit than a broad one. A rule such as chatgpt\.com|chat\.openai\.com|perplexity\.ai|claude\.ai|gemini\.google\.com|copilot\.microsoft\.com catches the main assistants without matching unrelated sources that happen to contain the letters ai.

Tip

Leave the medium out of the AI channel condition. OpenAI documents only a source parameter for ChatGPT links, so a rule that also requires a medium will miss the tagged visits it was built to catch.

Standard properties are limited to two custom channel groups and creating one needs Editor access or above. Any custom group can also be set as the primary channel group for the property, which makes it the editable default for reporting from that point forward.

Test the new channel against the source list before relying on it. Run the same Traffic acquisition search with the custom group as the dimension and confirm that every chatgpt.com row now lands in the AI channel rather than in Referral or Unassigned.

Keeping the ChatGPT Tag Through Redirects

The ChatGPT tag only helps if it survives every redirect between the link and the page that loads the GA4 tag. Google’s explanation of (direct) / (none) traffic lists redirects among the things that can strip UTM parameters from the URL, along with URL shorteners that remove referral details.

Common redirects on WordPress websites include moves from HTTP to HTTPS, from the bare domain to the www version and from an address without a trailing slash to one with it. Each of them should pass the query string through unchanged, or a tagged ChatGPT visit turns into an untagged one before GA4 sees it.

Checking this takes a few minutes. Open a page address with ?utm_source=chatgpt.com added, then try the HTTP version, the version without www and the version without the trailing slash. The parameter should still be in the address bar once the final page has loaded.

Old URLs that ChatGPT still cites deserve the same test. A page moved during a redesign may sit behind a redirect rule written before anyone thought about AI referrals. That rule can quietly remove the tag on every visit it handles.

Cutting Other Sources of Direct Traffic

Cutting the other causes of Direct traffic makes any change driven by ChatGPT easier to see. The same Google page on direct traffic lists untagged links, offline documents and ad blockers among the reasons visits lose their source. Each of them can be reduced with some routine housekeeping.

Campaigns

Untagged Links

Email, social and partner links without UTM parameters arrive with no source. Tag every link you control with source, medium and campaign values written in lowercase.

Documents

Offline Files

Links inside PDFs and Word documents are counted as Direct. Tagged links in brochures, proposals and downloadable guides move those visits into their own rows.

Privacy

Ad Blockers

Ad blockers can interfere with the cookies GA4 uses to identify where traffic came from. Those visits are classed as Direct whatever link the visitor followed.

Quality

Bot Visits

Spam and automated visits can land in Direct and hide real changes. Our guide to excluding bot traffic in GA4 covers the filters and segments that remove them.

Once those causes are under control, Direct becomes a smaller and steadier baseline. A rise in that baseline after a period of better visibility in AI answers is then much easier to attribute.

Requests that never reach GA4 can still be counted on the server. Routing measurement through a tagging server you control gives more say over what each platform receives, while raw server logs record each request whether or not the browser ran the GA4 tag.

Estimating the ChatGPT Share of Direct Traffic

The ChatGPT share of Direct traffic cannot be measured exactly, but it can be estimated by looking for patterns that typed visits and bookmarks do not produce. No single report gives the answer, so the estimate comes from several signals read over the same period.

Landing pages are the clearest signal. People rarely type the full address of a long article or a deep service page, so a rise in Direct sessions landing on those pages points to links followed from somewhere that passed no referrer.

  • Direct sessions as a share of all sessions, split by device
  • Sessions in the AI Assistant channel or your custom AI channel
  • Direct sessions that land on deep pages rather than the homepage
  • Impressions for your brand name in Google Search Console

When these rise together, AI answers are a likely part of the change in Direct. When only Direct rises, the cause is more likely a campaign that lost its tags, a broken redirect or a wave of bot traffic.

Search Console adds the other half of the picture, because people who see a brand named in an AI answer may search for it by name later. The gaps in Google’s own reporting are covered in what Google’s AI search reporting cannot yet measure, which is useful context before treating any of these numbers as proof.

Reporting AI Traffic Alongside AI Visibility

Performance insights icon for reporting AI traffic and visibility

AI traffic should be reported alongside AI visibility, because GA4 only sees the visits that reach the website. A brand can appear in many ChatGPT answers that never produce a click, so traffic figures on their own understate how often it is being recommended.

Priority Pixels tracks brand presence across ChatGPT, Gemini, Copilot and Perplexity using systematic prompt testing and response analysis. That visibility data sits next to GA4 rather than replacing it, since one shows where the brand appears and the other shows what those appearances are worth in visits and enquiries.

A monthly view that puts the AI Assistant channel, the custom AI channel, Direct and branded search side by side shows whether work on AI visibility is turning into traffic. Reading those figures together is more reliable than any single number, because the part of ChatGPT traffic that arrives with no signal stays hidden whatever settings are used.

Visibility comes first, since there is nothing to measure until ChatGPT cites the website. Our guide to ChatGPT optimisation covers how content earns those mentions, which then gives the tracking above something to count.

FAQs

Why is direct traffic suddenly increasing in GA4?

A sudden rise in Direct usually means visits have started arriving without a referrer or a campaign tag. Common causes include untagged campaign links, redirects that strip UTM parameters, bot traffic and visitors following links from AI assistant apps. Check the landing pages and devices behind the extra sessions before deciding which cause applies.

What does unassigned traffic mean in GA4?

Unassigned is the row GA4 uses when the source and medium of a session match none of the channel rules. Tagged ChatGPT visits can end up there because they carry chatgpt.com as the source with no medium attached.

Does traffic from Google AI Overviews count in the AI Assistant channel?

Google’s channel definitions place AI Overviews and AI Mode in Organic Search rather than the AI Assistant channel. Clicks from those features are reported with the rest of your organic traffic from Google.

Avatar for Paul Clapp Paul Clapp
Co-Founder at Priority Pixels

Paul leads on development and technical SEO at Priority Pixels, bringing over 20 years of experience in web and IT. He specialises in building fast, scalable WordPress websites and shaping SEO strategies that deliver long-term results. He’s also a driving force behind the agency’s push into accessibility and AI-driven optimisation.

Related AI SEO Insights

AI is rewriting the rules of search visibility. This section covers generative engine optimisation, answer engine optimisation, entity mapping and structured data, and the practical steps UK businesses can take to remain visible as ChatGPT, Claude, Perplexity, Copilot and Gemini rewire the discovery journey.

Why Your Website Is Not Appearing in Google AI Overviews
B2B Marketing Agency
Have a project in mind?

Every project starts with a conversation. Ready to have yours?

Get in Touch
Web Design Agency