Skip to main content

How to track traffic and sales from ChatGPT, Perplexity and Gemini in GA4

6 min read By DYODE

Traffic from ChatGPT, Perplexity, Gemini and other assistants is now measurable in GA4 without custom setup, but the default view lumps every assistant together and misses some visits entirely. This guide shows where the numbers live, how to split them by assistant, how to tie them to orders, and where the data undercounts.

If you're still deciding whether AI shopping is worth the work, start with Is your store ready for ChatGPT and AI shopping agents?. This post assumes you've decided it is and want a number for it.

Does GA4 track ChatGPT traffic automatically?

Yes, since May 2026. Google added an AI Assistant channel to GA4's Default Channel Group on May 13, 2026. When a visit's referrer matches Google's list of recognized assistants, GA4 sets the medium to ai-assistant, the campaign to (ai-assistant), and files the session under that channel. No configuration needed.

That's from Google's own What's new in Google Analytics log, which names ChatGPT, Gemini and Claude as examples. The Default channel group definition adds Deepseek, Copilot and Grok, and says the channel "excludes Google's AI Overviews and AI Mode."

Two gaps follow from that. Google hasn't published the full list of recognized assistants, so you can't assume every one you care about is on it. And before this change, assistant visits sat in Referral, so a lot of older guidance (and older dashboards) still point there.

Where do you find AI assistant traffic in GA4?

Open Reports, then Acquisition, then Traffic acquisition. With the primary dimension set to Session default channel group, AI Assistant appears as its own row. Change the dimension to Session source / medium to see which assistants sent the sessions and what medium GA4 gave each one.

Do the second step. The channel row tells you the total; the source rows tell you who sent it. Look for these hostnames:

  • ChatGPT: chatgpt.com
  • Perplexity: perplexity.ai
  • Gemini: gemini.google.com
  • Microsoft Copilot: copilot.microsoft.com
  • Claude: claude.ai

Then search the same report for any of those names sitting under referral or another medium. Anything the AI Assistant channel didn't catch shows up there, and that tells you whether you need the custom group below.

ChatGPT also tags its own links. OpenAI's publisher FAQ says ChatGPT automatically adds utm_source=chatgpt.com to referral URLs, so ChatGPT clicks can arrive with that source even when a referrer is stripped along the way. We haven't found the other assistants documenting a tagging convention of their own, so for them the referrer is all you get.

How do you build a custom channel group for AI assistants?

Copy the default channel group, add one channel per assistant with a Source rule, and move those channels above Referral and AI Assistant. GA4 puts each session in the first channel it matches, so order decides everything. The group applies to past data too, which means you can read history the day you save it.

Google's Custom channel groups article covers the mechanics. Standard properties get two custom groups (360 properties get five), with up to 50 channels in each. The steps:

  1. In Admin, under Data display, open Channel groups.
  2. Copy the default channel group and name it something like "Default + AI split."
  3. Add a channel named ChatGPT with the condition Source matches regex chatgpt\.com|chat\.openai\.com
  4. Add Perplexity with Source matches regex (www\.)?perplexity\.ai
  5. Add Gemini with Source matches regex gemini\.google\.com
  6. Add Copilot with Source matches regex copilot\.microsoft\.com
  7. Add Claude with Source matches regex claude\.ai
  8. Click Reorder and drag all five above AI Assistant and Referral. Save the group.

GA4 regex is a full match by default, per Google's regex reference, so chatgpt\.com matches the source chatgpt.com exactly and won't catch an unrelated domain that happens to contain the word. If your Session source report shows a variant (a subdomain, a mobile host), add it to that channel's pattern rather than loosening the whole rule.

Why bother when the AI Assistant channel exists? Three reasons. You get one row per assistant in every acquisition report, not one blended row. You control the list, so an assistant missing from Google's set still gets counted. And because the rule keys on Source rather than referrer, ChatGPT sessions that arrive with utm_source=chatgpt.com land in the ChatGPT channel whichever medium GA4 assigns them.

Keep the stock group too. Comparing the two tells you how much traffic Google's list catches on its own.

How do you tie AI traffic to sales in GA4?

Build a free-form exploration with Session source and Landing page as rows, and sessions, purchases and purchase revenue as values, filtered to your AI sources. That shows which product pages assistants send people to and whether those visits buy. It only works if your GA4 purchase event fires with revenue.

The landing page column is the useful one. It's the closest thing you have to a list of what assistants recommend: the PDPs and collection pages they link to by name. Two patterns worth acting on:

Keep the attribution model in mind. Traffic acquisition credits a purchase to the session it happened in. A shopper who found you in Perplexity on Monday and came back through a branded Google search on Thursday shows up as Organic Search revenue there. Treat AI revenue in these reports as a floor, not a total.

How do you see AI referrals in Shopify analytics?

Use two reports in your Shopify admin under Analytics, then Reports. Sessions by referrer (Acquisition category) shows visits by referring source, and Total sales by referrer (Sales category) shows orders by the site the customer came from. Filter both by the assistant hostnames above.

Shopify describes Sessions by referrer as showing "whether your visitors are coming to your store directly, from search, or by a referral," with UTM dimensions available for the ChatGPT tag. Total sales by referrer uses the last interaction referrer before the purchase, so its numbers won't match GA4's session-based view exactly. Use the two to check each other, not to argue about which is right.

Orders placed through Shopify's AI channels are a separate path. Shopify says orders from AI channels show up in your admin "with channel or referrer attribution so that you know where the order originated from" (Shopify Help Center). Those may never touch your GA4 property at all if the shopper didn't load your storefront, so count them from Shopify.

What won't GA4 show you about AI traffic?

GA4 only sees clicks that carry a recognizable referrer or tag. Visits with neither land in Direct. Clicks from Google's AI Overviews and AI Mode count as Organic Search. And an assistant that mentions your brand without linking sends nothing measurable at all, even when it shapes the purchase.

The specifics:

  • Missing referrers. GA4 files a session as Direct when the source is (direct) and the medium is (none) or (not set). A link copied out of a chat and pasted into a browser, or a referrer dropped by the sending page's Referrer-Policy, ends up there. ChatGPT's UTM tag survives a copy and paste; a bare referrer doesn't.
  • Google's AI features. Google says sites shown in AI Overviews and AI Mode are counted in Search Console's Performance report under the Web search type (Google Search Central). Search Console doesn't break them out, and GA4's default definition puts them in Organic Search.
  • Unlinked mentions. When an assistant names your product and the shopper later searches for it, the sale shows up as branded search or Direct. A rise in branded search with no campaign behind it is the closest proxy you get.

Where to start

Check the AI Assistant row in Traffic acquisition today; it takes two minutes. If the source breakdown shows assistants hiding in Referral, build the custom group. Then put the landing-page exploration next to your top PDPs and fix the pages assistants already send people to.

If those numbers are near zero, the problem is usually upstream of analytics. The free DYODE store scan reads your home, collection and product pages the way a non-JavaScript crawler does and reports whether robots.txt lets GPTBot, PerplexityBot, ClaudeBot and Google-Extended in, whether Product and Organization schema are present, and whether product titles and prices are in the raw HTML. It doesn't measure traffic; it tells you whether assistants can read the pages you want them to recommend.

DYODE's AEO and GEO optimization work covers the fixes, and our E-Commerce audits include analytics setup when the tracking itself is the gap. To talk through what your reports show, contact us.

About DYODE. Founded in 2016 by former heads of E-Commerce at PacSun and Tilly’s. Shopify Premier Partner.

Add DYODE as a preferred source on Google Google shows you more from the sources you pick.

Rather talk it through?

A strategist replies within 1–2 business days, and your written estimate usually follows in 1–2 weeks.

Get my scope estimate

Most projects are scoped within 1–2 weeks.