Glossary
What Is Causal Ad Attribution? (And Why Server-Side Tracking Can't Answer It)
Causal ad attribution measures what an ad channel actually caused, not who converted after seeing an ad. It works by holding the channel back from part of your market and comparing that group to the rest. Server-side tracking and conversion APIs can make correlation-based attribution more accurate, but accuracy isn't causality: only a controlled holdout shows real incremental profit.
The distinction
Correlation-based attribution = revenue from customers tracked as seeing/clicking an ad (pixel, UTM, server-side conversion API, however it's captured) Causal attribution = revenue in a region with the ad withheld vs. a matched control region with it running, over the same window
Ad platforms optimize toward people who were already likely to buy; that's the product working as intended, not evidence the ad caused the sale. A channel can look like it produces high-value customers while producing very few it wouldn't have won anyway, and no amount of tracking sophistication tells those two apart. Better pixel matching, longer lookback windows, and server-side conversion APIs all make the correlation more precise; none of them make it causal, because none of them show you the version of your store where that ad channel didn't run.
The only way to see that version is to create it: hold the channel back from part of your market (a set of states, say) and compare what happens there against a matched control over the same weeks. The difference between the two is the answer, and it's the only result in Upstream's own evidence grading labeled "causal" rather than "observed." Cohort quadrants, LTGP:CAC, any attributed-revenue figure: all real, useful facts about what happened, but not evidence of what an ad channel caused. Upstream labels its own headline numbers that way rather than only labeling competitors'.
Worked example
A $1M/year store (about 50 orders a day, ~$55 average order) running a 20%-holdout geo test for 4 weeks, per Upstream's own feasibility math:
What the test can detect
- Orders held out over 4 weeks
- ~280
- Smallest change the test can reliably detect (MDE)
- ~31%
What a real ad decision moves
- All paid media switched off in held-out states
- ~33% lift
- One channel switched off (40% of spend)
- ~13% lift
Only the first line clears the ~31% detection floor. The second is real, but this test can't tell it apart from an ordinary quiet month.
That's the gap correlation-based attribution can't show you: a channel can report a glowing ROAS while contributing a lift too small for even a well-designed causal test to see at this store's size, which means it's too small to be confident about from tracking data alone, either. Single-channel answers like this become reliably testable around $3M/year; below that, running all paid media together (or not running the test yet) is the honest option.
How Upstream computes this for your store automatically
Upstream captures its own first-touch attribution too: a first-party Shopify app-embed pixel (not a third-party script tag) writes click IDs from Google, Meta, TikTok, and Microsoft ads, plus landing-page UTM data, directly into the order as it's placed, so that data lives in your own Shopify order history rather than a vendor's separate database. But Upstream doesn't stop at attribution: it also runs a real, pre-registered geo-holdout experiment against that same order data, assigning each order's region from its actual shipping address at the time it shipped (not a customer's current address, and not skipping guest checkouts), then reports a graded result: causal, causal with caveats, or not enough power to tell. Attribution, however well it's tracked, tells you who converted; the geo holdout tells you what your ad spend actually caused.
No credit card required · Installs in 60 seconds
A Fox & Otter Data product