utm.new
ChatGPT logo
ChatGPT
ai

ChatGPT UTM parameters

ChatGPT is increasingly a discovery surface: it browses the web, cites sources, and sends real referral clicks. But you can't configure UTMs inside ChatGPT — there's no advertiser console, no click-ID macro. What you can do is tag the links you control that ChatGPT may surface, and understand how its referrer behaves so the traffic doesn't vanish into (direct)/(none). The convention: utm_source=chatgpt, utm_medium=ai-assistant on links you seed into AI-readable content.

Published
Recommended UTM template
Open in builder →
utm_sourcechatgpt
utm_mediumai-assistant
utm_campaign(set per campaign)
utm_id(set per campaign)
utm_term(set per campaign)
utm_content(set per campaign)

ChatGPT is no longer just a chatbot — it’s a discovery surface. It browses the web, cites sources, and sends real people to real pages. For marketers that means a new traffic source showed up uninvited, and unlike Google Ads or Meta it comes with no dashboard, no campaign settings, and no place to attach tracking. This page is about working with that constraint rather than against it.

ChatGPT as a traffic source

When ChatGPT answers a question that benefits from current information, it can browse and surface links — citations, recommended reading, the page it pulled a fact from. A user who clicks one of those links becomes a visitor on your site. That’s the click you want to measure.

The critical thing to internalize: the link ChatGPT shows is your link. ChatGPT doesn’t mint a tracking URL or wrap it in a redirect you can configure. It surfaces the canonical URL it found. So whatever UTMs are on that URL when ChatGPT reads it are the UTMs the visitor arrives with. If the page had none, the visit arrives untagged.

How its traffic appears in analytics

Here’s where it gets frustrating. AI-assistant clicks frequently arrive with no referrer or an opaque one. Client-side analytics has nothing to attribute the visit to, so GA4 files it under (direct)/(none) — the same bucket as someone typing your URL by hand. Your ChatGPT traffic is real, but it’s hiding in plain sight inside Direct.

When a referrer is present, it’s commonly chatgpt.com (historically chat.openai.com). But you can’t build a strategy on a signal that’s missing more often than not. The durable signal is the UTM you put in the URL yourself — it lives in the query string and survives even when the referrer is stripped.

The UTM convention to apply

You can’t tag inside ChatGPT, so you tag the links you control that may end up in front of it: URLs you publish in content ChatGPT browses, links in resources you expose to AI crawlers, links you hand out in answer-style contexts you own.

ParameterValueWhy
utm_sourcechatgptIdentifies the assistant. Lowercase — ChatGPT and chatgpt split into separate rows.
utm_mediumai-assistantGroups all AI-assistant traffic under one medium. GA4’s native AI Assistants channel recognizes this value, so it classifies automatically — no custom channel group needed.
utm_campaign(optional)Use it if the link belongs to a specific initiative; otherwise leave it off.

For how the receiving end classifies all this — how GA4’s native AI Assistants channel picks up utm_medium=ai-assistant, and why the literal ai still falls into Unassigned — see Google Analytics .

Limitations and gotchas

  • No macros, no click ID. There’s no gclid/fbclid equivalent and no click-time substitution. Everything rests on the UTMs you pre-place on your own URLs.
  • You can’t tag a link the model writes itself. If ChatGPT composes a URL from memory rather than citing your tagged canonical, your parameters won’t be on it. You can only influence the links you actually control.
  • Casing splits reports. utm_source=ChatGPT and utm_source=chatgpt are two different sources to GA4. Pick lowercase and enforce it everywhere.
  • Use ai-assistant, not ai. GA4’s native AI Assistants channel recognizes utm_medium=ai-assistant out of the box — no custom channel group needed. The literal utm_medium=ai is not recognized and still sits in Unassigned, so the exact value matters.
  • Referrer is unreliable. Don’t lean on chatgpt.com showing up — it often won’t. Treat the UTM as primary and the referrer as a bonus confirmation.

Verification

  1. Inspect a tagged link end to end. Open one of your tagged canonical URLs and confirm utm_source=chatgpt&utm_medium=ai-assistant is intact in the address bar after any redirects.
  2. Confirm the AI Assistants channel. With ai-assistant the session should classify under GA4’s native AI Assistants channel — check there to confirm your tags are arriving and being recognized, rather than waiting for traffic to surface in Unassigned.
  3. Cross-check the referrer. Where chatgpt.com does appear as a referrer, confirm it lines up with your UTM-tagged sessions so you know the convention is holding.

ChatGPT won’t hand you a tracking parameter, but you can still measure the traffic — by tagging the links you own and giving AI its own lane in analytics. For the bigger picture, read how to track AI traffic across ChatGPT, Perplexity, and Gemini, the UTM convention for the AI search era, and whether AI referral traffic should get its own GA4 channel.

Frequently asked questions

Last reviewed
Can I set UTM parameters inside ChatGPT?

No. ChatGPT has no advertiser console, no campaign settings, and no place to attach tracking parameters to the links it shows. The only UTMs that exist on a ChatGPT-surfaced link are the ones you already put on the canonical URL of the page ChatGPT cites. You tag the source page; ChatGPT passes the link through as-is.

What utm_source and utm_medium should I use for ChatGPT?

Use utm_source=chatgpt and utm_medium=ai-assistant on links you control that may surface in ChatGPT — for example a URL you place in content ChatGPT browses, or a link you share in a prompt-and-answer context you own. GA4's native AI Assistants channel recognizes the ai-assistant medium, so tagged links classify there automatically. Keep the values lowercase; GA4 treats ChatGPT and chatgpt as two separate rows.

Why does my ChatGPT traffic show up as Direct / None in GA4?

When ChatGPT browses or links out, the click frequently arrives with no referrer or a stripped one, so GA4 has nothing to classify and files it under (direct)/(none). The fix is to put UTMs on the links themselves before they ever reach ChatGPT — UTMs travel in the URL and survive even when the referrer doesn't.

What referrer hostname does ChatGPT traffic come from?

When a referrer is present, it's commonly chatgpt.com (and historically chat.openai.com). But a referrer is often absent entirely on AI-assistant clicks, which is exactly why you can't rely on it and should tag links instead.

Does ChatGPT give me a click ID like GCLID or fbclid?

No. There's no ChatGPT equivalent of gclid or fbclid, and no macro substitution at click time. Attribution for ChatGPT traffic rests entirely on the UTMs you place on your own links, plus server-side capture of whatever referrer does arrive.

Will utm_medium=ai-assistant work in GA4 out of the box?

Yes. GA4 now has a native AI Assistants default channel that recognizes utm_medium=ai-assistant, so traffic tagged that way classifies there automatically — no custom channel group required. Note the literal value matters: utm_medium=ai is not recognized and still lands in Unassigned, which is exactly why you use ai-assistant rather than ai.