Trackproof articles

Shopify Attribution Tools That Actually Agree

Anurag Chandra9 min read

Monday morning. Meta says 41 purchases. Shopify says 28 orders. GA4 says 33. TikTok says 9, and TikTok has never once agreed with anything. You have four screens open and four different accounts of the same 24 hours, and someone is about to ask you which one is right.

None of them are lying. They are answering four different questions, and only one of those questions is the one you asked. Most Shopify attribution tools are sold as a fix for this, but they are not interchangeable. Each category resolves one specific kind of disagreement and leaves the others exactly where they were.

So this is a taxonomy rather than a ranking. Work out which disagreement is bothering you first, then buy the tool that addresses that one.

Why do four dashboards report four different truths about one day?

There are four independent reasons the numbers split, and they stack. Two of them are faults you can repair. Two of them are definitions, and definitions do not respond to engineering.

  • They count different units. Shopify counts orders. Ad platforms count conversion events they were told about, and they will happily count the same order twice if two of your integrations fire it.
  • They run on different clocks. Ad platforms credit the conversion back to the date of the click or impression that earned it. Shopify records it on the day the order was placed. A campaign that ran Friday and converted Sunday appears on Friday in Ads Manager and on Sunday in Shopify. Over a month that mostly washes out. Over one day it never does.
  • They apply different credit rules. Ad platforms include view-through by default. Shopify does not know an impression happened. Two systems can be perfectly instrumented and still disagree because one of them counts an ad the customer never clicked.
  • They receive different amounts of data. Blocked scripts, expired storage, missing identifiers and events that never left the browser all reduce what the platform sees, and each platform loses a different slice.
DashboardCountsDated byDefault creditTypically loses
ShopifyOrdersOrder dateLast non-direct clickSessions whose referrer was stripped
Meta AdsReported conversion eventsClick or view dateClick plus view-throughEvents with no matching identifiers
GA4Purchase eventsEvent timestampData-driven across channelsEvents with a mismatched client ID
TikTok AdsReported conversion eventsClick or view dateClick plus view-throughEvents without a shared event ID

Read that table once and half the mystery goes away.

What is Shopify's own attribution report actually measuring?

Shopify's marketing attribution is a last non-direct click model built from what the browser carried into the session. It reads the UTM parameters on the landing URL, keeps them for the session, and credits whichever campaign brought the visitor in most recently before they bought.

That has real strengths, and they are the ones nobody talks about.

  • It is the only system that knows the money. Discounts, refunds, taxes, shipping and cancellations are all in there, because it is the same database that processed the payment. Every other dashboard is working from a value you sent it.
  • It is deterministic. No modelling, no estimation, no filling in gaps. If it cannot see how someone arrived, it says direct rather than guessing.
  • It is dated the way your accountant thinks. Order date, not click date.

And the weaknesses are just as specific.

  • It cannot see impressions. View-through does not exist in Shopify's world, so any channel that mostly works by being seen rather than clicked looks worse there than in its own dashboard. That is not Shopify being wrong. It is Shopify refusing to credit something it has no evidence of.
  • It depends on browser storage that expires. Safari deletes all script-writable storage after seven days of Safari use without user interaction on the site, per WebKit's own documentation. A shopper who lands from an ad, thinks about it for two weeks, and comes back directly is a direct sale in Shopify's ledger.
  • Its pixels run inside a sandbox. The Shopify Web Pixels API gives controlled APIs within Lax or Strict sandboxes, which is good for stability and means third parties see a curated view rather than the whole page.

Treat Shopify as the denominator. It is the honest floor, and the other dashboards are all reporting some number above it.

Which Shopify attribution tools rebuild the numbers from your order data?

This is the biggest category and the one most merchants mean when they go shopping. Order-level attribution platforms sit beside your store, pull orders from Shopify and spend from the ad APIs, stitch touchpoints to each order, and re-report the whole thing under a model you choose. Triple Whale, Northbeam and Polar Analytics all sit in this category.

The pitch is one dashboard instead of four. The part that gets skipped is that these tools do not create data. They rearrange what you already generate, so the answer is capped by the quality of your tagging.

Here is what actually has to be true before the output is worth trusting.

  1. Every paid link carries consistent UTMs. Not mostly. Every one, on every platform, with the same naming convention. A single agency that tags fb while everyone else tags facebook produces two channels in your report and a fortnight of confusion.
  2. Your checkout and order events are delivered reliably. If purchase events are inconsistent at the source, the platform inherits every gap. Fixing delivery first is why server-side tracking belongs before an attribution purchase, not after it.
  3. Ad spend is connected through the APIs, not uploaded. Manual spend files go stale, and a stale denominator makes every ROAS in the dashboard wrong in the same direction.
  4. You pick a model deliberately and write down why. First click flatters prospecting. Last click flatters retargeting and branded search. Linear flatters whatever channel appears most often. There is no neutral choice, only a documented one.
  5. You keep one number as the referee. Total Shopify revenue for the period. If the platform's revenue total drifts from Shopify's, stop reading the channel breakdown until you know why.

These tools genuinely resolve one disagreement: the one where four dashboards each claim the same order. Deduplicating that into a single set of orders with a single set of credits is real work and it is worth paying for at scale. What they cannot do is tell you whether the ad caused the sale.

Which tools measure incrementality instead of counting clicks?

Everything above answers "who should get credit". Incrementality answers a different and much harder question: "what would have happened if I had not run this at all". Those are not the same question, and no amount of pixel work turns one into the other.

Three approaches show up in practice.

  • Geo holdouts. Turn a channel off in a set of regions, leave it on in matched regions, compare. The closest thing to a real experiment most stores can run.
  • Platform lift tests. Where an ad platform offers a lift study, it holds out a slice of your audience and reports the difference. Cheap to start, but the platform is grading its own homework, so treat the result as one input.
  • Marketing mix modelling. Regression over spend and outcomes across all channels, including offline ones. It needs a long history and a statistician's patience, and produces a curve rather than a per-order answer.

Being straight about this: for most stores below serious scale, incrementality testing is the wrong purchase. Holdouts need enough volume to separate signal from noise, and if a week of holdout produces a swing you cannot distinguish from a normal week, the test told you nothing while costing you revenue.

But if your actual question is "should I keep spending on retargeting", incrementality is the only category that answers it. Buy that, not another dashboard. Retargeting reliably reports well under last-click for the boring reason that it reaches people who were already going to buy.

Which disagreement is a data problem, and which is a definitional one you cannot tool your way out of?

Here is the test. Change the platform's attribution window and reporting basis without touching a line of tracking code. If the reported number moves a lot, your gap is definitional. If it barely moves, events are going missing and you have a delivery problem.

Data faults, in the order I find them:

  • Missing or mismatched event IDs. Meta deduplication requires the event ID and the event name to match, within a 48-hour window, per Meta's documentation. TikTok requires the event ID to be shared through both Pixel and Events API, and keeps the first event received. Get this wrong and every purchase is counted twice.
  • GA4 configured incorrectly at the seam. Measurement Protocol needs an api_secret, and a web stream's client_id must match the ID generated by the Google Analytics tag, per Google. A mismatched client ID produces a second, sessionless user for every buyer.
  • Late delivery. Both Meta and GA4 work to a 48-hour horizon. Nightly batch jobs that slip past it produce duplicates and orphans that look like an attribution mystery.
  • Expired browser storage, as covered above.

Definitional differences, which no tool removes:

  • View-through credit. Only removable by turning it off in the platform and accepting a much smaller number.
  • Click date versus order date. Only removable by comparing full months instead of days.
  • Cross-platform overlap. Only removable by choosing one model for all channels.
  • Refunds and cancellations. Shopify knows. The ad platform mostly does not.

Fix the first list. Then decide once how the second list gets handled, write it down, and stop relitigating it every Monday.

Why is Trackproof not on this list?

Because Trackproof is not an attribution tool and I would rather say so than let you find out later.

Trackproof is a delivery and verification layer. It sends your Shopify events server side with matching event IDs so deduplication works the way the platforms document it, and it shows you what was sent, what was accepted and what was rejected. That is the first list above, not the second.

  • If your gap is a data fault, this is the right shape of fix, and it is the cheapest one. Trackproof is free on the Shopify App Store, with no reviews yet, because it is new.
  • If your gap is definitional, Trackproof changes nothing at all. Your numbers will still differ, they will just differ for reasons you can now explain.
  • If you need one blended dashboard across paid channels, buy an order-level attribution platform. That is a different job and we do not do it.
  • If you need to know whether an ad caused a sale, run a holdout. No tracking tool of any kind can answer that.

Get delivery honest first, since every model downstream is built on those events. When you are ready to compare the paid options properly, the Elevar alternatives comparison has live pricing for the main ones.

Questions people ask next

Should the numbers ever match exactly?

No, and you should stop chasing that. Shopify counts one order once. Meta, Google and TikTok each count the same order if each of them touched the customer, so the sum across platforms is always higher. A store running three channels should expect permanent overlap. What you can fix is the part caused by missing or unmatched events.

Which number do I use for my P&L?

Shopify. It is the only system that knows what was actually charged, refunded, discounted and shipped, and it is the system your accountant reconciles against. Ad platform conversion counts are optimisation signals, not revenue records. Use them to judge campaigns relative to each other, never as the top line in a board deck.

How do I tell whether my gap is a data fault or a definition difference?

Change the platform's attribution window and reporting basis without touching your tracking. If the reported number moves a lot, you were looking at a definition difference. If it barely moves, events are missing or unmatched and you have a delivery problem to fix at the source instead.

Do late events still get attributed?

Not reliably. GA4 Measurement Protocol events should arrive within 48 hours of the original client-side timestamp or they may not be attributed, and Meta deduplicates pixel and server events within a 48-hour window. A nightly batch job that misses that window quietly produces duplicates and orphans.

Source
Is a post-purchase survey worth adding?

It answers a different question than any pixel does, so it is a genuine addition rather than a second opinion. It captures channels that leave no click trail, like podcasts and word of mouth. Treat it as directional. Customers misremember, skip the question, and reward whatever they saw most recently.

Anurag Chandra

Founder, Edgecoms

Anurag runs Edgecoms, a studio of Shopify apps. He spends most of his week inside merchant stores working out why a number is lower than it should be.

Connect on LinkedIn

Read this on your assistant

Opens with a summary request for this page already written.

Read next

Supercharge the traffic you already have

See why Shopify brands run Edge to raise order value, lift conversion, and keep customers coming back.