Skip to content

Journal

·5 min read

ChatGPT referrals are not Direct

People who click a citation inside an assistant often arrive with a stripped referrer. The rest show up as chatgpt.com, perplexity.ai, or utm_medium=ai_search. Filing either under Direct hides a channel.

human_via_aiAttribution

Hands on a laptop at night, lit only by the screen
A person clicked a citation. The referrer may already be gone.

A growing share of “Direct” is not a bookmark. It is a person who asked ChatGPT, Claude, Perplexity, Gemini, Copilot, Grok, or DeepSeek a question, then followed a link. Some assistants pass a referrer host. Some pass utm_medium=ai_search. Many pass nothing. Privacy-first tools that only group by referrer host put the last group in Direct and the first group next to Reddit.

Vector 5 treats that arrival as its own actor: human_via_ai. It is still a person — counted with the same daily-rotating hash as any other browser visitor — but the channel is named. Every report can filter to it.

How we recognise an assistant click

  • Referrer host: chatgpt.com, perplexity.ai, claude.ai, gemini.google.com, copilot.microsoft.com, grok.com, chat.deepseek.com.
  • UTM: utm_medium=ai_search or ai-assistant, and utm_source values such as chatgpt or perplexity.
  • We never invent a source when the referrer is empty. The true number is likely higher. Guessing would make the dashboard look smarter than the data.

Why the actor is not a source

Sources still exist. ChatGPT and Perplexity remain rows in the source report. The actor field answers a different question: was this a person, a person sent by a model, a crawler, a headless agent, or a generic bot? Conversion rates stay honest because Playwright sessions never sit in the same bucket as Safari.

Direct is what you call a channel when you have given up naming it. Assistant traffic has a name.