Skip to content

How attribution works

Every order your store takes is checked against the clicks on your smart links. When the order can be traced back to a click, it is attributed: credited to that click, and so to the experiment, the variant and the allocation version the click was assigned to. The results of an experiment count only attributed orders.

You need a connected Shopify store for any of this. A new order shows in the list on Orders within about 10 seconds, and in the tiles within a minute.

The rule is versioned; today every order is attributed under rule v1:

  • An order is credited to the last smart-link click carried to the store in the 7 days before it. A click after the order, or more than 7 days before it, is never credited.
  • Each order counts once, to one click. If more than one signal points at a click, the strongest one wins (see below) and the credit never moves later.
  • Revenue is the order’s subtotal in your shop currency, net of refunds. A refund lowers the revenue of an order that was already attributed; it does not change which click it is credited to.
  • Bot clicks and clicks that were served the fallback URL are never credited: neither saw the variant being tested.
  • Paid, partially refunded and refunded orders count. Pending and authorized orders count once they are paid; voided orders never count. A cancelled order still counts as an order on Orders, at 0 revenue; experiment results leave it out.
  • Test orders (Shopify’s Bogus Gateway, or a test payment) are marked “Test” on Orders.

A summary is shown under How attribution works at the bottom of the Orders page.

An order is matched by the first of these signals that leads to an eligible click:

  1. Pixel — the store’s pixel, installed when you connect Shopify, remembers the smart-link click a visitor arrived through (for up to 7 days, in that browser) and reports it when they complete checkout, even if they come back later without the link. It is the most reliable signal and is tried first. It only runs where the visitor allows analytics on your store.
  2. Landing URL — Shopify records the first page of the visitor’s session on the order, including its query string. Smart links add gf_cid (the click) to every destination, so when a visitor lands on your store straight from a smart link, the order carries the click itself. This works even when the pixel can’t run.
  3. Visitor cookie — when your smart-link domain and your store share a root domain (for example go.yourstore.com and yourstore.com), the pixel can also read the visitor id the smart link set. The order is then credited to that visitor’s last eligible click. This covers visitors who reached the store without gf_cid in the address, for example through a landing page that dropped it. It needs the pixel, so it only works where the pixel runs.

Orders shows which signal credited each order: Pixel, Landing URL or Visitor cookie.

Orders are checked when Shopify sends them and when the pixel reports a checkout. An order that is not attributed yet is checked again every 15 minutes for 8 days, so a click that is recorded a little late is still picked up; an order with no signal at all waits for a pixel report instead. A new order may wait for its pixel report for up to about 25 minutes (showing Not checked yet) before the landing URL is used.

On Orders, the tiles compare what your store sold with what could be attributed:

  • Counted orders and Counted net revenue — every order that counts under rule v1.
  • Attributed orders and Attributed revenue — the ones credited to a click.
  • Coverage — attributed revenue as a share of counted revenue. It tells you how much of your revenue is credited to a smart-link click (any link, with or without an experiment). Orders from other channels (email, organic, direct) are expected to be unattributed, so coverage is rarely 100%; what matters is that orders from your smart-link campaigns are attributed.

An order that could not be attributed shows Unattributed with the reason:

Reason What it means What to do
No smart-link click reached the store None of the three signals found a click. The visitor did not come through a smart link, or came in a way no signal could see. Expected for other channels. For campaign traffic, check that landing pages pass URL parameters through (see Landing pages outside Shopify).
Click id not found A signal named a click that isn’t recorded: a hand-edited link, or a click not recorded yet. Usually a one-off. If it happens often, check that ads use the smart link exactly as created.
Click belongs to another workspace The click was on a smart link of another workspace. Make sure each store’s ads use links from that store’s workspace.
Click was flagged as a bot The click came from a known crawler or a bot. Nothing; bots are left out on purpose.
Click was served the fallback The variant’s destination couldn’t be served, so the visitor got the fallback URL. Check the variant’s destination.
Click was more than 7 days before the order The click is outside the 7-day window. Nothing; rule v1 credits only the last 7 days.
Click came after the order The only click found happened after the order was placed. Nothing; a later click can’t have caused the order.

Two other states can appear in the Attribution column:

  • Not checked yet — a new order still waiting for its pixel report (up to about 25 minutes).
  • Not counted — the order’s status doesn’t count under rule v1, for example a pending payment; it is attributed once it is paid. When an attributed order’s payment status later changes to one rule v1 doesn’t count, the column shows its signal with Not counted, such as Pixel · Not counted.
  • Safari and the 7-day cap. Safari keeps cookies set through a smart-link domain for at most 7 days, which is why the window is 7 days. A visitor who returns after a week without clicking a smart link again is not attributed.
  • Cross-device. A click on a phone followed by a purchase on a laptop can’t be matched.
  • Returning directly. A visitor who comes back by typing your store’s address is attributed through the pixel, which remembered their click, as long as it is the same browser, within 7 days, and the pixel ran on their first visit. Otherwise the order is unattributed.
  • Consent. Where a visitor doesn’t allow analytics, the pixel doesn’t run, and neither does the visitor cookie signal; only the landing URL still works.

Every attribution records the rule version it was made under. A future rule will get a new number and its own description here; orders already attributed keep the version they were credited under.

  • Coverage is low for campaign traffic. Check that your ads use the smart link, that any landing page between the link and the store passes URL parameters through, and that the pixel is active on Integrations.
  • An order shows “No smart-link click reached the store” although the visitor came from an ad. Most likely the pixel couldn’t run (the visitor didn’t allow analytics, or the pixel is off on Integrations) and the visitor didn’t land on the store with gf_cid in the address, for example because a landing page in between dropped it. Turn on parameter pass-through on landing pages, and check the pixel’s status.
  • Revenue changed after a refund. Expected: revenue is net of refunds, and the experiment results follow it.
  • A test order doesn’t appear in an experiment’s results. Test orders are listed on Orders but left out of experiment results, with a note saying how many.