Skip to main content
GEO

How to Track ChatGPT Traffic in GA4 for a Shopify Store

Check GA4's AI Assistant channel, build a custom channel group, read Shopify's AI reports and see why some ChatGPT visits land in Direct or Unassigned.

November 1, 2026 17 min read Talha Butt.
Share

How to Track ChatGPT Traffic in GA4 for a Shopify Store

Quick answer: As at 30 October 2026, Google Analytics has a built-in “AI Assistant” channel (added 13 May 2026), so start by looking for it in Reports > Acquisition > Traffic acquisition. Then build a custom channel group that matches AI assistant sources, so you can check what the built-in channel misses, and compare both with Shopify’s Sales channels > Agentic reports and Sessions by referrer report. Treat every number as a minimum: some AI visits may arrive with no referrer and land in Direct, and visits with partial tagging may land in Unassigned.

If you set up AI tracking from a guide that told you to build a channel from scratch, check what Google now provides. Google’s documentation lists a built-in AI Assistant channel, and it also still documents the do-it-yourself route for the cases the built-in channel does not cover.

This guide is for a Shopify founder who wants a real baseline this week: how many visits ChatGPT and other AI assistants send, what they do on your store, and how far to trust the number. You do not need a developer. You need Editor access to your GA4 property and about an hour.

I will not give you a share-of-traffic figure for AI referrals, because a number that is true for someone else’s store tells you nothing about yours. For what influences whether an assistant names your store at all, see our guide on how to rank in ChatGPT.

What Google’s documentation says as at 30 October 2026

There are three things in Google’s Analytics Help that change how you should approach this.

GA4 now has an AI Assistant channel. Google’s “What’s new in Google Analytics” page has an entry dated 13 May 2026 titled “New AI Assistant traffic measurement”. It says you can now see how people reach your site through chatbots such as ChatGPT, Gemini and Claude, through a new AI Assistant channel in your Default Channel Group reports. It lists three changes: the medium gets a new value, “ai-assistant”, when the referrer matches a recognised AI assistant; those visits are categorised under the “AI Assistant” channel; and the campaign name is “(ai-assistant)”.

The channel has a definition and an exclusion. The Default channel group page describes it as the channel for visits from sources like ChatGPT, Gemini, Deepseek, Copilot or Grok, and says it excludes Google’s AI Overviews and AI Mode. The same page describes Organic Search as including them. That matters: you cannot split AI Overviews or AI Mode clicks out of Google organic traffic with the default channel groups. The rule itself is that the medium exactly matches “ai-assistant”, or that the medium is set to “ai-assistant” and the campaign to “(ai-assistant)” when the referrer matches a list of AI assistants. The page does not print that list. It links to a downloadable sources-and-categories spreadsheet, which I did not open.

The default channel group cannot be edited. Google says so directly. If you want your own rules, you build a custom channel group, and Google’s custom channel groups page even includes a worked example titled “AI assistants”. That is the route we will use alongside the built-in channel.

Two gaps in the documentation, so you do not assume more than Google says:

  • The What’s new entry does not say whether the AI Assistant channel applies to data from before 13 May 2026. Look at a date range that spans the date in your own property before you rely on a before-and-after comparison.
  • The documentation does not say how the channel treats a visit that already carries utm_source=chatgpt.com but no medium. Google’s wording is that classification depends on the referrer matching. That is why the custom channel group below is worth building: it matches on the source value, whichever way the visit was tagged.

Step 1: Look at what GA4 already shows you (10 minutes)

Do this before you build anything; you may already have a baseline in your reports.

  1. In GA4, open Reports > Acquisition > Traffic acquisition.
  2. Set the date range to the last 90 days, or the longest period you have since you started tracking properly.
  3. Look at the Session default channel group rows. Is there an AI Assistant row? If yes, note sessions, engaged sessions, key events and revenue for it.
  4. Change the primary dimension to Session source / medium (the dropdown above the first column of the table). Use the search box above the table to filter for chatgpt, then repeat for openai, perplexity, gemini, copilot and claude.
  5. Note what you find, row by row, in a spreadsheet. A screenshot is not a baseline; a table you can update next month is.

What the rows mean:

What you seeWhat it may meanWhat to do
chatgpt.com / (not set), with a channel of UnassignedA visit carried a source but no medium, and no channel rule matched (my reading, explained below)Count it as ChatGPT. Fix the grouping with the custom channel group in Step 2
chatgpt.com / referralThe visit arrived with a referrer and no UTM tags, and GA4 treated it as a plain referralCount it as ChatGPT, and check that your custom channel in Step 2 catches it
A row with medium ai-assistant and campaign (ai-assistant)Google’s built-in classification matchedUse it as your first number
Nothing at allEither you have no AI visits, or they are arriving as DirectGo to Step 4 and test it yourself before you conclude anything

To see where AI visits land, use Explore > Free form with Session default channel group as the rows and Landing page as a second dimension. It shows which products or collections an assistant sends people to.

Why some AI visits land in Direct or Unassigned

Here are the mechanics. Where I could not verify something, I say so.

Direct means “no clear referral source”, not only “typed the address”

Google’s page on (direct) / (none) traffic says it represents traffic that does not have a clear referral source. Its listed reasons include links that lack UTM parameters, redirects and URL shorteners that remove the tracking details, visitors who type the address or arrive from offline documents such as PDFs, and ad blockers interfering with the cookies used to identify the source. An AI visit can end up in this bucket for the same reasons as any other visit.

The referrer is not always sent

When a visitor clicks a link, the browser can tell your site which page they came from, in the Referer header. Mozilla’s documentation (MDN) says the default policy in browsers is strict-origin-when-cross-origin: for a cross-origin link where both sites use HTTPS, the browser sends the origin only, such as https://chatgpt.com/. A page can change that. MDN documents a no-referrer policy and a noreferrer link relation, both of which omit the header.

So whether an AI visit arrives with a referrer depends on how the assistant’s page or app opens the link. I could not find an official statement from OpenAI, Google or any other assistant on how each of their apps opens links on each device. Do not assume. Test it (Step 4).

A source with no medium becomes (not set), and (not set) may become Unassigned

Google’s tagging documentation says that if any UTM parameter is present on the URL, Google Analytics derives all the traffic-source dimensions from the UTM parameters exclusively, and that missing parameters result in “(not set)” values in reporting. Separately, the Default channel group page defines Unassigned as the value used when no other channel rule matches the event data.

Put those together. A visit to yourstore.com/products/x?utm_source=chatgpt.com has a source and no medium, so the medium is “(not set)”. I could not find a default channel rule on Google’s page that a visit with an unlisted source and a “(not set)” medium would meet, so my reading is that it lands in Unassigned. Google does not state that outcome, and I have not confirmed it in your property. Check your own Unassigned rows.

OpenAI’s Responses API cookbook shows web-search results as url_citation entries whose links end in ?utm_source=chatgpt.com. All 12 examples I counted on that page, on news articles, carry it. That tells you the tag exists in those API examples. I could not open an OpenAI help-centre page that states what ChatGPT adds to links on the consumer product on each device, so I am not claiming one. The practical rule is the one that has always held for tags: a platform chooses to add them and can stop. Check your own data for chatgpt.com and do not assume every visit carries it.

OpenAI’s crawler documentation also says OAI-SearchBot is used to surface websites in ChatGPT’s search features, and that sites opted out of it will not be shown in ChatGPT search answers, though they can still appear as navigational links. If you block that crawler, expect little ChatGPT search traffic to measure.

The result: GA4 undercounts

GA4 can show you the AI visits it was able to identify, not every AI visit. I have no figure for how big the gap is, because I have not seen a study I trust that measures it for stores like yours. Anyone quoting a precise percentage of “hidden” AI traffic is estimating. Report your number as “at least”.

Step 2: Build a custom channel group for AI assistants (20 minutes)

The built-in channel uses Google’s list. A custom channel group is yours: you control the sources it matches, it works on the source value however the visit was tagged, and Google says it can be applied to your reports retroactively.

Google’s custom channel groups page gives the steps. You need the Editor role or above on the property.

  1. In GA4, open Admin. Under Data display, click Channel groups.
  2. Click Create new channel group. Google says this starts with a copy of the default group.
  3. Give it a name, for example “Channels with AI sources”, and an optional description.
  4. Click Add new channel. Name it “AI assistants (source list)”.
  5. Click + Add condition group, choose the dimension Source, and set the condition to matches regex. Google’s example does not name a dimension; matching on Source is my choice, because the regex below is a list of source hostnames.
  6. Enter your regex (below).
  7. Click Save channel.
  8. Click Reorder and drag your new channel above Referral. Google’s example also says you can place it above other channels, such as Organic Search, if needed. Google’s reason: traffic goes into the first channel whose definition it matches, in the current order.
  9. Click Apply, then Save group.

The regex

Google’s example regex for AI assistants is broad. Its first alternative, ^.*ai, matches any source that ends in “ai”. When I tested the pattern as printed in Node.js on 30 October 2026, with whole-string matching, it matched unrelated sources such as shanghai and thai as well as perplexity.ai. Google also tells you to update the regex if the assistants or their URLs change, so a narrower list you maintain yourself is easier to defend.

Here is a tighter starting list:

^(.*\.)?(chatgpt\.com|openai\.com|perplexity\.ai|claude\.ai|gemini\.google\.com|copilot\.microsoft\.com)$

I tested it against a set of sample values. It matches chatgpt.com, chat.openai.com, www.perplexity.ai, claude.ai, gemini.google.com and copilot.microsoft.com, and it does not match mail.google.com, notchatgpt.com or m.facebook.com. Google’s documentation says that by default GA4 regular expressions are full regex and case sensitive, which is why the pattern is anchored at both ends (you can drop the anchors without changing the result) and why it is written in lower case. Match the case of the values you see in your own reports.

These hostnames are my starting list, not an official list from the assistants. Compare them with the values you saw in Step 1, add any AI source you see that is missing, and look up any source you cannot identify before you add it.

What you get, and what you do not

  • Where to see it: open Reports > Acquisition > Traffic acquisition or User acquisition and choose your new channel group as the primary dimension, as Google’s page describes. It is also available as a dimension in custom reports, explorations and audience conditions.
  • Retroactive for reports. Google says custom channel groups can be applied to your reports retroactively. An audience built on one changes eligibility going forward only.
  • Limits. Standard properties can have two custom groups, in addition to the default, with up to 50 channels in each, per Google’s page.- Not everywhere. Google lists two gaps: custom channel groups are not available in the Key events paths report and not in the BigQuery export schema. If you analyse in BigQuery, you will need the regex there as well.
  • Editing and deleting. Editing a group changes how existing reports classify the data immediately. Deleting one is irreversible.

Should you make it your primary channel group? Google says that after you do, data populates using the new criteria from that point forward. I would leave the default alone and compare the two views for a month first.

Step 3: Read Shopify’s side of the story

GA4 only sees visits where its tag fired. Shopify records sessions and orders on its own, so it gives you a second view. It has three places to look.

1. Sales channels > Agentic

Shopify’s help page on managing agentic storefronts says you can see reports for each individual AI channel you sell on, covering sales, orders, online store sessions and online store conversion. The default range is the last 30 days, and you can set your own. There is also a report across all the AI channels you sell on. Two details to keep in mind:

  • Sales in this view are an aggregate of referral-based sales and sales that happen through direct checkout. Some of those orders may never have been visits that GA4 could see.
  • The page says these reports are not yet available for headless stores.

Shopify’s ChatGPT page says that customers who buy after discovering you in ChatGPT complete their purchase in your own online store checkout, either in a ChatGPT in-app browser or, on ChatGPT web, in a new tab. So for ChatGPT, the purchase is on your checkout; the open question is whether the session before it was labelled correctly. Our post on Shopify Agentic Storefronts explains the channel set-up.

2. Analytics > Reports > Sessions by referrer

Shopify’s help for acquisition reports says that to open it you go to Analytics > Reports, click the Category filter and choose Acquisition. The report shows whether visitors came directly, from search or from a referral. It counts sessions only, not sales, and it applies to the Online Store sales channel. Shopify’s field reference lists the dimensions you can add to a report, including Referrer domain and UTM source. Its note on UTM source says it requires UTM tagging. For orders, the field reference also lists Order referrer domain and Order UTM source, so you can see sales as well as sessions.

Three dated cautions from Shopify’s own help pages, as at 30 October 2026:

  • Shopify says its session measurement rollout ran from 21 to 23 September 2026, and tells you to treat it as a measurement change for sessions and conversion rate when you compare across that period.
  • Referring channel, Referring medium and Traffic type use updated values from 18 October 2026, so a date range that spans that date can list the same traffic under different names.
  • Visits where the referrer is your own online store are listed as direct traffic. Shopify’s marketing reports page also says that for direct sources the referrer name is “N/A” when the referrer cannot be determined, for example when Do Not Track is on, when the referrer is blocked by a proxy or firewall, or when a shortened URL was used. Those are the same kinds of reasons GA4 gives for Direct.

3. ShopifyQL, if you are comfortable with it

Shopify’s ShopifyQL reference for the sessions table lists a field called agentic_referring_channel (“the AI agent or assistant that referred the session to your online store”, with values ChatGPT, Google AI Mode and Gemini, Microsoft Copilot, and Shop), plus referrer_domain, utm_source and human_or_bot_session. A starting query, built from those field names:

FROM sessions
  SHOW sessions, sessions_that_completed_checkout, conversion_rate
  WHERE human_or_bot_session = 'human'
  GROUP BY agentic_referring_channel
  DURING this_month
  ORDER BY sessions DESC

I have built this from Shopify’s published field names and have not run it against your store, so check that it runs in your ShopifyQL editor and adjust the date range. Run it a second time grouped by referrer_domain and a third time by utm_source and look for chatgpt.com.

Some gap between the two systems is normal; our guide to why GA4 and Shopify Analytics don’t match explains why. For orders and revenue, treat Shopify as the source of truth. Use GA4 for how visitors behave.

Step 4: Test it yourself (15 minutes)

Trust your own store over any guide, including this one. Run a small test.

  1. Ask ChatGPT a question that should name your store or one of your products (or use a link from an answer that already does). Do this on three paths: desktop web, the mobile app and a mobile browser, if you have access to each.
  2. Click through to your site from the answer. Note the time of each visit.
  3. In GA4’s Realtime report, look for the visit and its source. Later, in Traffic acquisition, find the same visits by source / medium and channel group.
  4. In Shopify, look at the same time in your Sessions by referrer report or live view.
  5. Record, for each path: did it arrive with a source of chatgpt.com? Which channel did GA4 give it: AI Assistant, Referral, Unassigned or Direct? Did Shopify label it?

If the desktop visit shows up as AI Assistant and the mobile app visit as Direct, you have just measured one of the main limitations of this whole exercise on your own store. Keep a note of the times, so you can exclude your own test visits when you read the report.

You cannot add parameters to the links an AI assistant generates. You can tag every link you control that points at your store: social profiles, email footers, partner mentions, any ad you or someone else runs. It is how you stop traffic you caused showing up as Direct. We do not run ads or email, but whoever does should tag them.

Google’s tagging documentation says that if you set one UTM parameter you should set all the relevant ones, especially utm_source, utm_medium and utm_campaign. A link with only a source is exactly how you create the “(not set)” rows described earlier. Pick a naming scheme (lower case, no spaces) and keep it consistent.

What this setup cannot see

  • Mentions without a click. If ChatGPT names your brand and the shopper types your name into Google later, that visit arrives as Direct or branded search. No analytics tool links it back. Visibility checks (asking the same buyer questions in each assistant on a schedule and recording who is named) are a separate job, and our guide to GEO myths grades one of the common claims about AI rank trackers.
  • Google AI Overviews and AI Mode. Google’s channel documentation puts these in Organic Search. Google’s Search Central page on AI features says they are reported in the Performance report in Search Console, within the Web search type, so Search Console is where to look for Google-side visibility, not GA4’s AI Assistant channel.
  • Direct checkout inside an assistant. Shopify’s help page for Google AI Mode and Gemini says Google Analytics and custom pixels will not fire in that channel’s direct checkout, which fires only server-to-server pixels for started and completed checkouts. For orders from that channel, trust Shopify’s reports, not GA4. Other channels may work differently, so read Shopify’s help page for each channel you sell on and check Sales channels > Agentic in your own admin. Our guide to AI shopping features in Australia covers which assistants have confirmed Australian availability.
  • Attribution beyond the last click. A shopper may see an AI answer, search your brand and buy a week later. Each tool will credit a different channel. Our post on why platform attribution can’t be taken at face value is the right context.

A worked example (illustrative numbers)

These numbers are invented to show how to read the baseline. They are not from a real store.

A store pulls the last 30 days:

SourceSessionsPurchases
GA4, AI Assistant channel361
GA4, custom channel (source list)482
Shopify, AI channels in Sales channels > Agentic612

How to read it:

  • The custom channel found 12 more sessions than the built-in one (48 minus 36). Those are probably visits where the source was an AI assistant but the built-in rule did not classify them.
  • Shopify shows 13 more sessions than the custom channel (61 minus 48), about 27% more than GA4’s custom figure (13 divided by 48). The two tools count different things (Shopify only reports the AI channels you sell on), so a gap like this is why you report a range.
  • The honest line for a founder is: “At least 48 AI-assistant sessions and 2 purchases last month, up to about 61 sessions by Shopify’s count.”
  • Do not quote a conversion rate. 2 purchases from 48 sessions is 4.2%, and one extra order makes it 6.3%. With this few orders, one order moves the rate by about two percentage points.

A 10-minute monthly routine

Once the set-up exists, keep it small. Same day each month:

  1. Open Traffic acquisition with the custom channel group. Record AI sessions, engaged sessions, purchases and revenue (revenue in GA4 is a guide, not an accounting figure).
  2. Open Sales channels > Agentic. Record sessions, orders and sales per AI channel.
  3. Record Direct sessions, so you can see if it moves when AI sessions do.
  4. Check the Source report for new AI-looking sources not in your regex.
  5. Write one line: up, down or flat, and what changed on the site. For a short list of numbers worth keeping in front of you every week, see the three numbers Shopify founders watch.

If you cannot explain a change in two sentences, keep logging.

Key takeaways

  • As at 30 October 2026, Google’s documentation lists a built-in AI Assistant channel (added 13 May 2026). Any guide that says GA4 has no AI channel is out of date.
  • The built-in channel excludes Google’s AI Overviews and AI Mode, which Google’s channel page describes as part of Organic Search.
  • AI visits can land in Direct (no referrer) or, with a source but no medium, probably in Unassigned. Your number is a minimum, and nobody has a trustworthy percentage for the gap.
  • Build a custom channel group with a source regex, place it above Referral, and compare it with the built-in channel. Google says it works on reports retroactively.
  • Use Shopify’s Sales channels > Agentic reports and Sessions by referrer as a second view. For orders, Shopify is the source of truth.
  • Test the paths yourself on desktop and mobile. What happens on your store beats any general claim.
  • Report counts and direction, not conversion rates, until you have enough orders.

FAQs

Does GA4 have a built-in channel for ChatGPT traffic?

As at 30 October 2026, yes. Google’s “What’s new” entry of 13 May 2026 describes an AI Assistant channel for visits from chatbots such as ChatGPT, Gemini and Claude. Check Reports > Acquisition > Traffic acquisition. Google does not print its list of recognised assistants on the channel page, so a custom channel group is a useful cross-check.

Why does my ChatGPT traffic show as Direct?

Google says Direct means traffic without a clear referral source. If a link is opened in a way that sends no referrer and has no UTM tags, GA4 has nothing to classify it with. How each AI app opens links is not something I could verify at an official source, so test your own paths.

What does utm_source=chatgpt.com mean?

It is a tag on a link: it names chatgpt.com as the source. OpenAI’s own cookbook shows search results returned with that tag, but I could not confirm at an OpenAI help page what the consumer ChatGPT apps add on each device, so check in your own data that it is arriving. Google says a UTM source with no medium gives a “(not set)” medium, and my reading is that those visits land in Unassigned.

Will a custom channel group change my historical data?

Google says custom channel groups can be applied to your reports retroactively, so your past reports can show the new grouping. Audiences built on one change eligibility going forward only, and custom channel groups are not available in the BigQuery export schema.

Can I separate Google AI Overviews or AI Mode traffic in GA4?

Not with the default channel groups. Google’s channel documentation says the AI Assistant channel excludes them and describes Organic Search as including them. Use Search Console for Google-side visibility.

How much traffic should I expect from ChatGPT?

I will not give a figure. It depends on your category, whether assistants cite you, and how your visits are tagged. Measure your own baseline first, then compare it with itself month to month.

Do I need a developer to set this up?

No, if you have the Editor role or above on the GA4 property, which Google requires for creating channel groups. On the Shopify side, the help page says the Agentic section is open to the store owner or to staff with the relevant permission.

Want a second pair of eyes on what the numbers mean?

If you would like help reading your AI-traffic baseline alongside the rest of your store’s numbers, our GEO service covers making your store easier for AI assistants to read and cite and monitoring your AI search visibility, and it is delivered alongside our Shopify SEO work. The easiest place to start is to book a free 30-minute diagnostic or tell us about your store. We look at your store, and at what the AI assistants say about your category, before we recommend anything. No pitch.

Free 30-min diagnostic

Seen enough?
Book a free diagnostic.

We'll check whether AI assistants name your store for your category and what to fix first. No pitch. No email gate. 30 minutes.

More from Prism3