What this lets you do
Connect your Shopify store to Traceten and see which AI sources drive purchases, return customers, and revenue per order, not just store visits.Before you start
- A Traceten account with at least one site tracked.
- A Shopify store, and permission to create an app in the Shopify organization that owns it.
- The Traceten snippet installed on your Shopify store. See the Shopify install guide. Connect the store here first, then paste the snippet: connecting is what tells Traceten your storefront domain, so the tag you copy afterwards already has the right cookie setting on it.
Create your Shopify app
You create the app, on your own store. Traceten never installs anything. This is deliberate. An app you create is a custom app, which Shopify does not review, and which can read order data without a separate protected-customer-data request. An app we distribute would need both, and you would wait weeks for revenue attribution that works the same way at the end of it.1
Create the app
Go to the Shopify Dev Dashboard and create a new app. Name it anything you like, “Traceten” is fine.
2
Grant three read scopes
Under API access, add:
Traceten requests no write access of any kind. Nothing it does can change an order, a product or a theme.
3
Set the webhook API version to 2025-10
Under the app’s webhook settings, choose API version 2025-10.
4
Release the app and install it on your store
Release the version, then install the app on the store you want to attribute. The app and the store have to be in the same Shopify organization, which they are when you create the app yourself.
Connect it to Traceten
1
Open Integrations in the dashboard
Go to app.traceten.com/dashboard and open Settings → Integrations. Pick Shopify.
2
Paste three fields
- Store domain: the
.myshopify.comaddress from Settings → Domains in your Shopify admin, for examplemy-store.myshopify.com. Not your customer-facing domain. - Client ID and Client Secret: both are on your app’s settings page in the Dev Dashboard.
3
Click Connect
Traceten checks the credentials against your live store, registers the webhooks it needs, and imports your last 60 days of paid orders. This takes a few seconds; the import runs in the background.
What connecting does to your store
Traceten registers five webhook subscriptions and nothing else. It creates no script tag, no theme file and no app block.
Every delivery is verified against your app’s own Client Secret before it is read. Shopify signs with that secret, which is why there is no fourth field to paste.
If the connection is refused
How attribution works
When an order is paid:- Shopify sends an
orders/paidwebhook to Traceten. - Traceten looks up the session associated with the order using the
_traceten_sidsession cookie value, which is stored as order note attributes when the customer starts checkout. - If the session has an AI attribution, the order is marked with that source, confidence score, and order value.
- The revenue appears in your dashboard under the attributed AI source.
Refunds and net revenue
Your attributed revenue is net of refunds. When a refund is created in Shopify, Traceten subtracts it from the AI source the original order was attributed to.- The refund is dated on the day it was issued, not the day of the original order. A past day’s revenue figure never changes after the fact, and a day on which you refunded more than you took in reads as a negative number.
- Conversion counts stay gross. A refunded order still counts as a conversion. The money is reported separately as a refunded figure beside the net one.
- A partial refund subtracts only the line items you returned. The product breakdown follows: the returned SKUs lose their units and their revenue, and the rest of the order keeps both.
- A cancelled order is the exception that does come back out in full.
orders/cancelledmeans the order itself is void, which is different from a subscription being cancelled elsewhere in Traceten.
How the session is captured
When a customer visits your store, the Traceten snippet sets the_traceten_sid session cookie. When they proceed to checkout, the snippet captures the session ID and passes it through checkout to the order.
This happens automatically for standard Shopify themes. No additional configuration is required.
For headless Shopify stores, see the note below.
Headless Shopify
If your storefront uses a custom frontend (Hydrogen, Next.js, or another framework) that calls the Shopify Storefront API or Admin API to create orders, you’ll need to pass the session ID manually:_traceten_sid from order note attributes if the standard cookie capture is not available.
Revenue data
Attributed orders appear in your dashboard with:- Order value, stored in the order’s own currency and converted to USD at that day’s rate (see Currencies)
- Orders from the last 60 days at the moment you connect. That is as far back as
read_ordersreaches; earlier orders are not available to any app without a separate Shopify approval. - AI source and confidence score
- Order date and session entry page
Using a processor we do not integrate with
Shopify, Stripe, Lemon Squeezy, Polar and Paddle have built-in integrations. Dodo has a documented path with no server of yours required. For anything else, including Podia, Kajabi and your own checkout, send payments to the Payment API instead. Do not do both for the same processor. If you connect Shopify here and post Shopify orders to the Payment API, every order is recorded twice and your revenue is overstated. The two paths deduplicate on different keys and cannot see each other. See avoiding duplicate payments.Cookies across two domains
A Shopify business often runs on two properties: content onexample.com, the store on shop.example.com, or the reverse. AI assistants cite the content and the purchase happens on the store, so without a shared cookie those are two unrelated visitors and the AI touch is orphaned from the revenue it produced.
When you connect, Traceten reads the storefront domain Shopify reports and scopes your identity cookies to its registrable domain, so one person stays one person across both. See Cookies across subdomains.
If your store still runs on my-store.myshopify.com with no custom domain of your own, this cannot be done, and Traceten says so on the card rather than pretending otherwise: my-store.myshopify.com and example.com are different registrable domains, and no cookie can span them. Connect a custom domain in Shopify, then reconnect here.
Disconnecting Shopify
- Go to Settings → Integrations in the dashboard.
- Pick Shopify, then click Disconnect. Traceten deletes the five webhook subscriptions it created on your store.
- Remove the app from your Shopify admin under Settings → Apps and sales channels.

