GA4 fix

ChatGPT traffic is showing as Direct in GA4

You saw ChatGPT in your referral report once, then it vanished into Direct. This is expected behaviour, not a tracking bug — and there is a reliable way to pull most of that traffic back out.

The short answer

  • ChatGPT strips the referrer on most outbound clicks, so GA4 has no source to attribute and drops the session into Direct.
  • The web app (chatgpt.com) sometimes passes a referrer; the mobile and desktop apps almost never do.
  • Fix it with a GA4 custom channel group that matches chatgpt.com and chat.openai.com, plus UTM tags on any links you publish into ChatGPT-visible content.
  • App-based clicks that carry no referrer at all only show up in server logs — GA4 alone cannot recover them.

Why it happens

GA4 attributes a session by reading the document referrer and any UTM parameters on the landing URL. ChatGPT outbound links frequently have neither: the assistant opens links from a native app, routes them through a redirect, or applies a no-referrer policy. With nothing to go on, GA4 assigns the session to Direct — the bucket for typed URLs, bookmarks and untagged links.

This is not specific to ChatGPT. Perplexity, Gemini, Copilot and Claude all lose referrer data in the same situations. ChatGPT is simply the one most people notice first because it drives the most volume.

What you can and cannot recover

The web version of ChatGPT does pass a chatgpt.com referrer on a meaningful share of clicks. Those are recoverable in GA4 with a rule that re-classifies the hostname. The app versions send no referrer, so no amount of GA4 configuration will label them — those require logging the raw landing request on your server and matching known patterns.

  • Recoverable in GA4: web clicks carrying a chatgpt.com or chat.openai.com referrer.
  • Recoverable with UTMs: any link you place in content ChatGPT reads — docs, llms.txt, syndicated posts.
  • Server logs only: app clicks with no referrer, and verified GPTBot / OAI-SearchBot crawler hits.

After the fix: measure what matters

Re-classifying the channel is step one. The number that matters to your leadership is whether ChatGPT-sourced visits convert. Push the AI source into your CRM as a hidden field so it survives from first touch to closed-won, and report AI-sourced conversion rate next to your other channels every month.

ChatGPT surfaces and how they attribute

Not every ChatGPT click behaves the same way.

ChatGPT surfaceReferrer sentLands in GA4 asRecovery method
Web app (chatgpt.com)OftenDirect or ReferralCustom channel group on hostname
iOS / Android appNoDirectServer-side request logging
Desktop appNoDirectServer-side request logging
Link you published (UTM-tagged)n/a — UTM presentYour defined channelWorks automatically
GPTBot / OAI-SearchBot crawln/a — not a userNot in GA4Server logs, verify by reverse DNS

The fix, step by step

1

Confirm the pattern

In GA4, open Reports → Acquisition → Traffic acquisition and check whether Direct spiked as your AI visibility grew. That correlation is the signal.

2

Create a custom channel group

Admin → Data display → Channel groups → Create new. Clone the default so you keep every existing channel.

3

Add the AI Assistants channel

Place it above Direct. Condition: Session source matches regex chatgpt|chat\.openai|openai\.com.

4

Extend to other assistants

Add perplexity, gemini\.google, copilot\.microsoft, claude\.ai to the same regex so the channel covers all AI referrers, not just ChatGPT.

5

Tag your own links

Apply utm_source=chatgpt&utm_medium=ai_referral to links in docs, llms.txt and syndicated content so those clicks never fall into Direct.

6

Add server-side logging

Log the first request per session and flag verified AI crawler user agents, so app-based visits and bot crawls are visible outside GA4.

Stop guessing what ChatGPT is worth

Targetlytics identifies the companies arriving from ChatGPT and writes them into your CRM, so the channel becomes a revenue line you can report.

See AI revenue attribution

Frequently asked questions

Neither. GA4 is working as designed — it cannot attribute a session that arrives with no referrer and no UTM. The gap is in what ChatGPT sends, not in your configuration.

It reprocesses data within your retention window and applies to all future sessions, but it does not rewrite BigQuery exports or data already past retention. Set it up as early as possible.

Early on, more ChatGPT clicks came from the web app, which passed a chatgpt.com referrer. As app usage grew, the no-referrer share rose and the visible referral traffic shrank even as real ChatGPT traffic increased.

GTM can add logic and enrich the hit, but it still needs a signal to work from. If the browser sends no referrer, GTM sees nothing either. The durable fixes are hostname channel rules, UTMs on owned links, and server logs.

Tie it to outcomes. Once the AI channel is defined, track its lead and opportunity conversion rate. AI-referred B2B visitors frequently convert above the site average because they arrive further along in their research.