Five checks before you trust an attribution report
Trust a report after five checks: its purchases match Shopify, little revenue sits in Unassigned, you know each window, no sale is counted twice, and a holdout agrees. Each has a pass and a fail you can test this week.
€99 once, excl. VAT. Full refund within 30 days, no questions asked. You keep the read.
By Joris van Huët, Founder & CEOPublished 5 min read
Run the numbers for your store: the free UTM coverage calculator.
Trust an attribution report only after five checks you can run for free: its purchases match Shopify, little revenue sits in Unassigned, you know each window, no sale is counted twice, and a holdout agrees with it. The window check is the quickest to verify, because each tool documents its own default. Google Ads counts click-through conversions for 30 days by default and view-through conversions for 1 day, while GA4's default lookback window for key events other than acquisition key events is 90 days.
Why can two reports count the same sale differently?
Because each one applies its own rules. A window decides how long after a click or view a sale can still be credited, and Google documents different defaults for its own two products. GA4 also says that changes to the lookback window apply going forward, so an old report and a new one can disagree about the same orders. Each platform counts the sales it can link to its own ads, so claims from several platforms can overlap. Google Analytics deduplicates purchases only if they carry a transaction ID, and warns that sending the same ID for different transactions can significantly undercount key events.
What sits in Unassigned and Direct?
Revenue that no channel can be credited with. GA4 says Unassigned is the value it uses when no other channel rule matches the event data, and that Direct means the source is (direct) and the medium is (not set) or (none). GA4's attribution models also exclude direct visits from receiving credit, unless the whole path consists of direct visits. So a large Unassigned or Direct share does not make a channel look bad; it hides what the channels did.
Does an experiment agree with the report?
That is the check the report cannot run on itself. In 15 U.S. advertising experiments at Facebook, observational methods often failed to produce the same effects as the randomized experiments, according to a peer-reviewed paper by Gordon, Zettelmeyer, Bhargava and Chapsky (Marketing Science, 2019). A holdout compares orders with and without the spend, so it does not rely on the report's own data. Reporting versus analysis covers that evidence.
What are the five checks, with a pass and a fail?
- Tracking coverage. Compare GA4 purchases and revenue with Shopify orders and net sales for the same days, time zone and currency, on orders, not sessions: Shopify says it counts sessions only when visitors consent to cookies through your cookie banner. Use a wide date range, because Google says data may be withheld in a narrow one when counts are low. Pass: the ratio is steady week to week and you can name what the gap contains. Fail: it swings, or GA4 shows more purchases than Shopify has orders, which points at duplicate or missing transaction IDs.
- Unassigned share. In a GA4 exploration, divide purchase revenue in Unassigned by total purchase revenue for each recent week. Pass: the share is small and steady. Fail: it jumped when you launched a campaign, so fix the UTM tagging before you read any channel.
- Window settings. Write down the window behind each number: GA4's key event lookback window (Admin, Attribution settings), Google Ads' conversion windows, and the ad platform's own setting. Pass: you can state each one and compare like with like. Fail: you cannot, so a gap between two tools may be a window, not performance.
- Double counting. Add up what each platform claims and compare it with Shopify orders. For illustration: say three ad platforms claim 600, 500 and 200 orders in a week when Shopify recorded 900; the claims add up to 1,300, about 1.4 times the orders, so some sales were counted more than once. Pass: you know your ratio and use Shopify's total as the denominator. Fail: you treat the claims as additive.
- A holdout. Switch one large channel off in one region for as many weeks as your order volume needs, and compare Shopify orders there with a matched region (how to run one). Pass: the drop in that region's orders is about the size of the credit the report gave the channel there. Fail: orders barely move while the report credited many, or the gap stays inside the usual week-to-week swing, which means the test was too small to tell.
Later, once the checks pass, a causal attribution read like Causality Engine's can show what each channel caused next to last-click, with a data-health score on every channel.
Sources, 30 September 2026: Select attribution settings, Get started with attribution, Default channel group, Minimize duplicate key events with transaction IDs and About data thresholds (Google Analytics Help, 2026); About conversion windows (Google Ads Help, 2026); A Comparison of Approaches to Advertising Measurement: Evidence from Big Field Experiments at Facebook (Marketing Science, 2019); Analytics data points (fields) reference (Shopify Help Center, 2026).
Related answers
Frequently asked questions
How do I check whether my attribution report is accurate?
Run five checks: compare GA4 purchases with Shopify orders, measure the Unassigned share, write down each attribution window, add up platform claims against orders, and run one holdout. Only the holdout compares orders with and without the spend.Why does GA4 show a different number of purchases from Google Ads?
They use different windows. Google Ads counts click-through conversions for 30 days by default, while GA4's default lookback window for key events other than acquisition key events is 90 days. Check the settings in both before you compare.How do I know if the same sale is counted twice?
Add up what each platform claims for a period and compare it with Shopify orders for the same period. If the claims add up to more than the orders, some sales were counted more than once. GA4 also deduplicates purchases only when they carry a transaction ID.
Go deeper: Causal attribution, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Keep reading
Terms in this article
- AttributionAttribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
- Attribution ModelAn Attribution Model defines how credit for conversions is assigned to marketing touchpoints. It dictates how marketing channels receive credit for sales.
- Attribution ReportAttribution Report shows which touchpoints or channels receive credit for a conversion. It identifies which campaigns drive desired actions.
- Attribution WindowAttribution Window is the defined period after a user interacts with a marketing touchpoint, during which a conversion can be credited to that ad. It sets the timeframe for assigning conversion credit.
- Causal AttributionCausal Attribution uses causal inference to determine which marketing touchpoints genuinely cause conversions, not just correlate with them.
- Google AnalyticsGoogle Analytics is a web analytics service that tracks and reports website traffic.
- IncrementalityIncrementality measures the true causal impact of a marketing campaign. It quantifies the additional conversions or revenue directly from that activity.
- Incrementality TestingIncrementality Testing measures the additional impact of a marketing campaign. It compares exposed and control groups to determine causal effect.