The Attribution Engine

How attribution works

Shopify, Meta, and Google Ads each report their own version of who drove a sale — and they disagree constantly. Tutti reconciles all three into one answer per order, ranked by how strong the evidence actually is.

The problem Tutti is solving

Every platform wants credit. Meta's dashboard and Google's dashboard will both happily claim the same sale if a customer touched both before buying. Shopify's own guess about where a customer came from is often wrong too — a click can lose its tracking info before it ever reaches your store, especially from Instagram or Facebook's in-app browser, which strips it out on purpose.

Tutti doesn't trust any one platform's self-report. Instead, it looks at every real piece of evidence it can collect — from your store, from the ad platforms, and from a pixel Tutti installs on your storefront — and works out the most defensible answer for each order, one order at a time.

The evidence, ranked from strongest to weakest

Not all evidence is equally trustworthy. Tutti checks for the strongest kind of proof first, and only falls back to weaker signals when nothing stronger exists. Roughly, in order:

1. A real ad click, captured directly

When Tutti's own pixel sees a customer click through from an ad — carrying the exact click ID Meta or Google attaches to that click — and then watches that same customer buy, that's about as close to proof as attribution gets. This is captured the instant the click happens, before anything downstream (an in-app browser, Shopify's own processing) has a chance to lose it.

2. Your store's own record of the visit

Shopify keeps its own first-party record of how a customer arrived, separate from the pixel. When that lines up with a real ad click id landing on the order itself, Tutti treats it as strong evidence — first-party data your store recorded directly, not inferred after the fact.

3. Matching session details

When there's no click id to point to, Tutti looks for a real session that lines up on timing, landing page, and device with a campaign that was actually running that day. It's a weaker signal than a direct click id — so matches made this way carry a lower confidence score — but it's still a real, corroborated pattern, not a coin flip.

4. An honest “can't tell”

If none of the above lines up — no click id, no matching session, more than one channel equally plausible, or simply no tracking data for that day at all — Tutti says so. See Why It's Different for what that actually looks like in the app.

What the confidence score means

Every matched order gets a confidence score alongside its channel. A high score means Tutti found strong, direct evidence. A lower score means it made an educated match from weaker signals — real, but not proof. The score isn't decoration; it's the same information Tutti itself uses to decide whether a match is trustworthy enough to show as a specific campaign or ad, versus just a channel, versus not at all.

It happens the moment the order comes in

Attribution isn't run once a day in a batch job. Orders are matched the moment they happen — you can watch a fresh order resolve in real time on the Live Orders feed, not the next morning.

  • This page describes what evidence Tutti looks for and how it's ranked — not the exact internal thresholds or scoring formulas, which is intentionally kept out of these docs.
  • The full picture also depends on what's connected — Shopify is required, and Meta, Google Ads, and GA4 each add more corroborating evidence when connected (see Integrations).