Verify Your Orders and Attribution

The Orders & attribution page is the diagnostic for purchase tracking. It answers four questions: are orders arriving, what do they add up to per currency, is each order linked to a visitor (the link is what lets experiments take revenue credit), and (for any single order) exactly what was bought and which experiments it counted towards. An order that isn't linked can't be credited to any experiment, so revenue results silently undercount.

Open it at:

Plain text
/projects/{your-project-id}/commerce/orders
Plain text1 line

You can also reach it from the Product catalog page: under Catalog source health there is a link labelled Verify your orders and attribution.

Pick a date range

At the top of the page is a date selector. It starts on All time and scopes everything below it (the totals, the attribution banner, and the order list) to the range you choose. Pick Custom Range to narrow to a specific window (for example, the days a campaign ran). Orders have no "launch" date, so All time simply means "every order we have".

The attribution banner

The banner is the headline check:

  • Green: every order is linked to a visitor. Attribution is healthy and experiments can take full revenue credit.
  • Amber: some orders are not linked. The banner shows the exact count and the percentage (for example, "40 of 1,250 orders are not linked to a visitor. That's 3.2% of orders."), plus a View unattributed orders button that filters the list below to just those orders so you can inspect them.

An order becomes "linked" when it arrives carrying the visitor ID the A vs B snippet assigned in the shopper's browser. Orders without that ID are stored and counted (they are never dropped) but they can't influence experiment results.

Common causes of unlinked orders

The two usual suspects: the snippet isn't installed on your order-confirmation page (so there is no visitor ID to attach at the moment of purchase), or your platform sends orders server-side, for example a webhook (an automatic message your store's server sends A vs B when something happens), without passing the visitor ID through. Fix the confirmation-page install first: it accounts for most cases.

Totals per currency

Order totals are shown as one card per currency: order count, gross revenue, and revenue net of refunds. Amounts in different currencies are never added together: a store selling in USD and EUR gets two honest cards instead of one meaningless combined number.

If some orders arrived in a currency other than your project currency, a callout appears: "N orders arrived in a different currency than your project currency and are excluded from the totals below." Those orders still show in the list (tagged currency mismatch), but they are held out of your revenue totals and can't be credited to an experiment.

The order list

Below the totals is the order list: every order in the selected range, newest first.

  • Search by order ID (type the start of it) or by an exact visitor ID.
  • Load more pages through the list without a fixed 50-row limit.
  • Click any order ID to open its full drill-down.

Drilling into one order

Clicking an order opens a panel with everything we stored for it:

  • The money breakdown: subtotal, shipping, tax, discount, total, and any refund.
  • The line items: each product with its title (from your catalog when we can match the SKU), quantity, and price.
  • The profit: net revenue, cost of goods, and profit, once the nightly profit job has priced the order (see Profit metrics).
  • The credited experiments: every experiment the visitor saw within your attribution window (how long after seeing an experiment a purchase still counts toward it) before the purchase. An order can be credited to several experiments at once when they ran concurrently; that shared credit is by design. If the order isn't linked to a visitor, this section explains that no experiment can take credit for it.

Test orders

Before you launch, prove the whole pipeline works without polluting your real numbers.

  1. Click Send a test order. A synthetic order (named AVSB-TEST-…) is sent through the same pipeline your real orders use, flagged as a test.
  2. Within a minute or two it arrives. The page checks for it every 15 seconds for the next five minutes, so you do not need to reload. Click Show test orders in the confirmation message (or turn on the toggle above the list) to see it, or use the open it now link.
  3. Drill into it to confirm the line item, totals, and (if you passed your own visitor ID) the credited experiment.

Test orders are excluded from every revenue total and never counted towards experiment results. The Orders (7d) card on your project dashboard leaves them out too, so it always agrees with this page. They're hidden from the list by default; the Show test orders toggle reveals them, each tagged with a Test badge. When the summary shows test orders, a note tells you how many were excluded.

Sending test orders from your own code

The dashboard button is the quickest way to prove tracking works. If you send purchases from your own snippet or server code, you can mark any purchase as a test as well: see Tracking revenue.

Export the list

Export CSV downloads the orders for the current date range (honouring your search and the unattributed / test-order toggles) as a spreadsheet: one row per order with the money already formatted in each order's currency. Large exports are capped; if yours is truncated the file says so on the last row, and narrowing the date range or search exports the rest.

Reading the page's states

The page is deliberate about the difference between "empty" and "broken":

  • No orders tracked yet (grey, dashed panel): the analytics store answered and there are genuinely no orders recorded. This is the normal state before your first tracked purchase. Use Send a test order to prove the pipeline while you wait for real ones.
  • We can't read your order data right now (red panel with a Retry button): the analytics store didn't answer. Your orders are safe and still being recorded; only the reading failed. This is never shown as "0 orders".

Diagnosing "my orders aren't arriving"

Work down this list:

  1. Send a test order. If the test order arrives, the pipeline works and the problem is with how your real orders are sent. If it doesn't, the connection between your store and A vs B needs attention.
  2. Is the snippet installed? Check the installation guide and confirm the snippet loads on your storefront: including the order-confirmation page.
  3. Is revenue tracking on? Purchases only arrive if order tracking is active: via the Shopify connection (which sends orders automatically) or your own purchase events. See Revenue tracking.
  4. Is the store connection healthy? On the Product catalog page, check Catalog source health. A failed import or a source in an error state often means the connection needs re-authorising.
  5. Are orders arriving but unlinked? If the totals grow while the amber banner shows a high unlinked count, tracking works: attribution doesn't. Fix the confirmation-page snippet install or pass the visitor ID through your server-side order flow.
Was this helpful?