Track AI assistant traffic in Customer Journey Analytics
Many AI assistant visits arrive without a referrer but still carry a UTM tag. Customer Journey Analytics (CJA) can only count them if your data keeps that tag. So start there, then build derived fields that read both signals. These steps reflect our tests as of October 2026; the scorecard shows the current state.
Using Adobe Analytics? See Track AI assistant traffic in Adobe Analytics.
1. Capture the UTM tag
The referrer field only ever holds the referrer. When an assistant's app sends a tag and no referrer, the visit's only trace is utm_source in the landing page URL. If your data drops the query string, the visit lands in Direct, and no derived field can bring it back.
Check that one of these is true:
- The page URL keeps its query string. With the Web SDK, check that
web.webPageDetails.URLisn't overwritten with a cleaned URL. utm_sourcehas its own field in your schema, filled from the landing URL.- Your data comes from the Analytics source connector. Then your Adobe Analytics implementation decides. See Capture the UTM tag on the Adobe Analytics page.
To test it, open any page on your site with ?utm_source=attribution-test appended, then look for that value in a freeform table on the page URL.
ChatGPT, Perplexity's apps and part of Copilot rely on the tag. Without it, those visits count as Direct. See Estimate your hidden AI traffic for how much each assistant sends this way.
2. Build the derived fields
Adobe documents a full setup in Report on LLM and AI-generated traffic: derived fields for the referrer, the query parameter and the user agent, plus a segment and a Workspace project. Start from it, and extend its value lists with the ones below. Its query parameter examples cover ChatGPT and Perplexity only.
- Create a derived field AI assistant (tag): URL Parse on the page URL to get the query parameter
utm_source, then Lowercase, then Classify into assistant names. The UTM Parameters template does the parsing for you. - Create a derived field AI assistant (referrer): URL Parse on the referrer URL to get the host, then Classify.
- Combine them with Case When. First, keep ChatGPT ad clicks out: a page URL with
oppreforolrefin its query string is a paid click, whatever UTM tags it carries. Then the referrer, then the tag. Apply the Google exception here: a visit taggedutm_source=chatgpt.comwith a Google referrer came from search. - Use the combined field as the AI assistants channel in your marketing channel derived field, below your paid channels and above search and referral. To report everything ChatGPT sends you, show ad clicks as their own line next to it, not inside it.
Derived fields apply to all reporting, including past data, so you can compare the result with last month straight away.
3. The values to match
Referrer hosts. Match the host or the host ending, so www. variants count:
chatgpt.com, and com.openai.chatgpt from the Android app, which sends android-app://com.openai.chatgpt/gemini.google.comclaude.aicopilot.com, copilot.microsoft.com, copilot.cloud.microsoft, m365copilotapp.svc.cloud.microsoftperplexity.aiutm_source values:
chatgpt.comgemini, geminiforbusinesscopilot.comcopilot.com: some arrive as copilot.com?form=MG0AUO.perplexityCompared with Adobe's guide, add the three newer Copilot hosts, the ChatGPT Android app, the Gemini and Copilot tags, and the Google exception. Adobe also lists m365.cloud.microsoft and meta.ai. Keep them.
4. Check it works
- Ask an assistant to link to a page on your site, open the link, and find the visit in your AI assistants channel.
- Repeat from a phone app, where the tag is often the only signal.
- Recheck now and then. Assistants change their links without notice, and our changelog records each change we see.