Three things have to line up
- The visit has to identify itself. ChatGPT sends chatgpt.com as the referrer from the web app, and OpenAI says it adds utm_source=chatgpt.com to the links it hands out. A visit with neither is a Direct visit to every tool, ours included.
- The same person has to be recognised at checkout. That takes a first-party id that survives from the landing page to the order: a cookie on your own domain, not a guess from IP address and browser.
- The order has to carry that id. On a hosted checkout, the id has to travel with the cart; on your own thank-you page, the page that reports the sale reads it from the cookie.
The first condition is where most setups lose ChatGPT without noticing. On promvia.app, most ChatGPT visits arrived with no referrer at all, and only the link tag said where they came from. A report that reads referrers alone would have credited ChatGPT with 2 of the 24.
ChatGPT automatically includes the UTM parameter utm_source=chatgpt.com in referral URLs, enabling clear tracking and analysis of inbound traffic from ChatGPT search results.
How Promvia does it, step by step
- Install the snippet: one script tag, or the theme app embed on Shopify. Each page load sends one pageview with the page URL, the referrer and a visitor id kept in a first-party cookie for a year. The server reads the utm_source tag from the query string and then drops the query string.
- Each visit is classified on arrival: referrer first (chatgpt.com, chat.openai.com and their subdomains), then the tag (utm_source=chatgpt.com or utm_source=chatgpt). Promvia records which of the two identified it.
- Shopify orders arrive through the store's order webhook. The visitor id travels with the cart into the order, the webhook's signature is checked, test orders are skipped, and the order's own processing time is used, not the time the webhook arrived. Refunds come through the refunds webhook and are subtracted, so the figure is net.
- On any other store, call window.aita.conversion('purchase', { value: 49.99, eventId: 'order-1001' }) on the thank-you page. The eventId makes a refreshed page count once and two orders of the same amount count twice. Other goals work the same way, for example window.aita.conversion('signup').
- Each sale is then credited to the newest AI visit by the same visitor in the 30 days before it. A later visit from search or email does not take the credit away; a visit after the sale cannot take it at all.
- The Attributed revenue figure counts verified Shopify orders. A sale reported from the browser is shown beside it as unverified and is not added in, because any page can make that call. Orders in a currency other than the site's reporting currency are listed separately rather than converted.
- This is on every plan, the free one included. More detail on the setup is in Help.
Without a tracking snippet: GA4 and Shopify's own reports
Google Analytics 4 already records the source of each session, and it can show purchase revenue next to it. Read the ChatGPT rows by Session source, not only by channel, because tagged visits with no referrer are not reliably filed under GA4's AI Assistant channel; how to see AI traffic in Google Analytics 4 has the settings. GA4 credits revenue with its own attribution model, so its figure and a 30-day last-AI-touch figure can disagree on the same store and both be correct by their own rules.
If you would rather not install a snippet, Promvia can read those rows from your GA4 property with read-only access: sessions, key events and purchase revenue per day for each AI source it knows. That is GA4's total per source. It does not join one visit to one order the way the snippet does.
On Shopify, the admin shows orders from AI channels with channel or referrer attribution, and Shopify's ChatGPT channel sends the buyer to your own checkout. More on the store side is in AI visibility for Shopify stores.
What the number leaves out
- Visits with no signal. An assistant that strips the referrer and adds no tag leaves a Direct visit, and a sale after it is never credited to AI. In our August test, Claude on desktop and the Claude and Gemini iPhone apps sent nothing; see why AI traffic shows up as Direct.
- Visitors who refused tracking. With consent mode on, the snippet keeps no visitor id until the page grants consent, so a sale by someone who declined has nothing to join to.
- A different device. Someone who reads the answer on a phone and buys later on a laptop has two visitor ids, and the sale is credited to whatever the laptop's history holds.
- Sales that never touch your site. OpenAI says some purchases can be completed inside ChatGPT; a sale with no visit has no visit to credit.
- Cause. The credit says an AI visit came first. It does not say the visit decided the purchase, which is why the dashboard calls it AI-influenced revenue.
Our own site has nothing to report yet: no conversion has been recorded on promvia.app, so there is no ChatGPT revenue figure for us to show. What the 24 visits do show is where people landed, which is where a revenue question starts:
- /pricing: 9 visits (38%)
- The home page: 3
- /blog/best-ai-visibility-tools: 3
- /methodology: 2
- /blog/otterly-vs-peec-ai: 2
- One each: /geo, /blog/ai-visibility-tools-free-plan, /blog/otterly-alternatives, /blog/server-logs-vs-ai-citations, /blog/why-ai-traffic-shows-as-direct
Frequently asked questions
Does Google Analytics 4 show revenue from ChatGPT?
Yes, by session source: GA4 can put purchase revenue next to the chatgpt.com rows. Read them by Session source rather than by the AI Assistant channel alone, because a visit that carries only the utm_source tag is not reliably filed there, and remember that GA4 applies its own attribution model.
What attribution window should I use for ChatGPT revenue?
Promvia uses 30 days, last AI touch, and says so next to the figure. We have not measured which window is right for any particular store; a shorter one credits fewer sales, and a longer one credits sales further from the visit. Pick one, state it, and keep it fixed so the trend means something.
Why is Promvia's ChatGPT revenue different from GA4's?
They count different things. Promvia joins one visitor's ChatGPT visit to that visitor's order inside 30 days and counts verified Shopify orders; GA4 credits revenue by its own attribution model and only sees ChatGPT where the session carries a referrer or a tag it files under that source.
Can I prove that ChatGPT caused a sale?
No. Attribution shows that an AI visit came before the sale. There is no control group for the people who would have bought anyway, so read the figure as AI-influenced revenue, not revenue AI closed.