How to use Attribution in Practice

Metricuno
June 21, 2026
7 min read
Quick answer

A working playbook for ecommerce attribution after cookie loss and iOS 14 — how to reconcile GA4, ad platform self-reporting, and your P&L into one defensible view.

Definition
Marketing analytics

Attribution in Practice

The operational side of ecommerce attribution — reconciling platform-reported ROAS, GA4, and finance into one defensible number.

Attribution in practice is what happens after the theory ends: cookies expire, iOS users opt out, Meta and Google both claim the same sale, and your CFO asks why three dashboards show three different revenue numbers. It's the day-to-day workflow of taking imperfect signals from ad platforms, GA4, and your Shopify backend and turning them into spend decisions you can defend.

For most online stores in the €1M-€15M range, attribution stopped being a model-selection problem in 2021 and became a reconciliation problem. The job now is less about picking last-click vs data-driven and more about agreeing on which numbers everyone uses on Monday morning.

Also known as
operational attribution
DTC attribution workflow

The gap between what your ad platforms report and what actually lands in your bank account has widened every year since iOS 14.5. Meta routinely over-reports purchases by 20-40% on Shopify stores, Google's data-driven model quietly back-fills missing conversions with modelled data, and GA4's default settings throw away cross-device journeys that used to be stitched.

This guide is the operator's view: what's actually broken, which fixes are worth your time, and the weekly cadence that keeps marketing and finance pointing at the same revenue figure. It's organised as a hub for the four reconciliation questions that come up on every DTC ops call.

Why platform-reported numbers no longer match reality

The iOS 14.5 App Tracking Transparency rollout in April 2021 was the inflection point. Roughly 75% of iOS users opt out of tracking, which means Meta loses deterministic post-click visibility on a huge share of mobile purchases. To compensate, the platform models conversions — and modelled conversions are an estimate, not a receipt.

Google has the same problem but masks it better. GA4 uses data-driven attribution by default, which models unseen touchpoints using machine learning. Meanwhile Shopify's own analytics use UTM-based last-click, ignoring view-through entirely. Three systems, three philosophies, one sale — counted differently in each.

The structural fix most operators land on is to stop trying to make platform numbers agree and instead anchor everything to Shopify order data. Your store knows exactly how many orders shipped and what they were worth. Every other system is then reconciled back to that truth — not the other way around.

The cardinal rule

If your finance team's revenue number and your marketing dashboard's revenue number disagree by more than 2%, marketing is wrong. Shopify settled orders are the source of truth — everything else is a model trying to explain them.

The iOS 14 attribution gap, in numbers

It helps to see the scale of the gap before deciding which fixes are worth implementing. Across Shopify stores in the €1M-€15M revenue band, the discrepancy between what Meta Ads Manager claims and what GA4 attributes to paid social has settled into a fairly predictable range.

The pattern below is what most beauty and apparel brands see once they install the Conversions API and set a 7-day click / 1-day view window. Without CAPI the gap is roughly twice as wide. The iOS 14 attribution impact deserves its own deep-dive, but the headline is simple: Meta's number is structurally optimistic.

Chart

Meta-reported vs GA4-attributed purchases, by quarter (indexed)

0index50index100index150index200indexQ1 2022Q3 2022Q1 2023Q3 2023Q1 2024Q3 2024Reported purchases (index)Quarter

Meta Ads Manager

GA4 (paid social)

Indexed to GA4 = 100 for each quarter. Composite of Shopify stores €1M-€15M revenue.

The gap has narrowed from ~60% to ~30% as CAPI adoption matured, but it hasn't closed and it won't. A 30% structural over-count means a 2.5 reported ROAS in Meta is closer to 1.9 once reconciled. Plenty of accounts that look profitable in-platform are losing money once you anchor to bank-deposited revenue.

GA4 defaults, and the settings that actually matter

GA4 ships with defaults that suit Google, not you. The reporting identity is set to 'blended', which mixes deterministic user IDs with modelled data; the attribution model is data-driven, which is a black box; and the lookback windows are 30 days for acquisition and 90 for conversion — fine for most products, wrong for high-consideration purchases like furniture or appliances.

The three GA4 attribution settings worth your time are: switch reporting identity to 'device-based' for the conversion paths report (so you see raw, unmodelled journeys); add a secondary property running 'paid and organic last-click' for finance reconciliation; and shorten the click lookback to 7 days if your AOV is under €100 and purchase intent is impulsive.

Benchmark

Typical attribution discrepancy by platform mix and vertical

Vertical / mixMeta vs GA4 gapGoogle Ads vs GA4 gapBlended ROAS vs sum of channel ROAS
Beauty / personal care (Meta-heavy)+28-35%+8-12%-22% (channels overstate)
Apparel (balanced Meta/Google)+25-32%+10-15%-25%
Home & furniture (Google-heavy)+18-24%+15-22%-30%
Electronics / accessories+22-30%+12-18%-24%
Food & beverage subscription+30-40%+5-10%-20%

The final column is the one most operators underestimate. If you add up the revenue Meta, Google, TikTok and Klaviyo each claim, you'll get a number 20-30% larger than your actual Shopify revenue. Every channel is taking partial credit for the same sale. This is the conversation the blended vs channel ROAS distinction was invented to settle.

The monthly close: how to reconcile in 90 minutes

A workable monthly ritual: pull Shopify settled revenue first (the anchor). Then pull total ad spend across every channel from your bank-paid invoices, not the platform UIs. Marketing Efficiency Ratio — Shopify revenue divided by total ad spend — becomes the headline metric finance trusts because both inputs are independently verifiable.

Channel-level ROAS still matters for allocation decisions, but treat it as directional. Use Meta's reported ROAS to compare campaigns against each other within Meta, not to decide whether Meta itself is profitable. That second question is what MER and incrementality testing answer.

What 'good' looks like

A healthy reconciliation: Shopify revenue, GA4 total revenue, and the sum of channel-claimed revenue within 5%, 10%, and 25% of each other respectively. If GA4 and Shopify disagree by more than 10%, you have a tagging problem, not an attribution problem — fix that first.

Frequently asked

Attribution in practice: FAQ

Two reasons. Meta counts a conversion on the day of the ad click but the sale may happen days later, and Meta includes view-through conversions that Shopify's last-click logic ignores. After iOS 14.5, Meta also models opted-out users, which adds another 10-20% to its reported number. The gap is structural, not a bug.

Shopify, always, for the headline revenue number — it reflects settled orders. Use GA4 for channel and campaign attribution, traffic patterns, and on-site behaviour. The two should agree on total revenue within 5%; if they don't, your GA4 tagging is broken.

Marketing Efficiency Ratio is total revenue divided by total ad spend, with no attempt to attribute sales to specific channels. It works because both numbers come from finance, not ad platforms, so it's auditable. It's become the default 'is marketing profitable' metric for stores tired of channel-level attribution wars.

Yes, if you spend meaningfully on Meta or TikTok. CAPI closes about half the iOS 14 attribution gap and improves the platform's optimisation — campaigns find better buyers when they get cleaner conversion signals. On Shopify, the official Meta and TikTok apps handle CAPI without dev work.

Klaviyo will claim revenue from any user who clicked an email in the last 5 days, even if they would have purchased anyway. The honest read: Klaviyo's reported revenue is an upper bound. For reconciliation, count flow-driven revenue (welcome, abandoned cart) but discount campaign-driven revenue by 30-50% as overlap with paid and organic.

For day-to-day campaign comparison, data-driven is fine. For finance reconciliation and any conversation involving CFO-level decisions, run a parallel 'paid and organic last-click' view — it's deterministic, auditable, and matches the mental model finance teams use. Don't try to merge the two.

Reconciliation is monthly, tied to the finance close. Channel-level optimisation is weekly. Incrementality tests — geo holdouts or paid-pause experiments — are quarterly. Don't change attribution models more than twice a year; the noise from re-baselining is worse than the imperfection you're fixing.

Yes, structurally and permanently. iOS users are roughly 50% of mobile traffic in Europe and 60%+ in the US, and ~75% still opt out of tracking. The platforms have built better modelling around the gap but the gap itself isn't closing. Plan for it as a permanent feature, not a temporary problem.

Because channel-level ROAS double-counts. If Meta claims a 3.0 ROAS on €100k spend and Google claims a 4.0 on €50k spend, you'd expect €500k revenue — but actual Shopify revenue is often closer to €380k because both platforms claimed credit for the same buyers. Blended ROAS uses the real revenue number, which is lower but accurate.

Not perfectly, and chasing that perfection wastes time. The practical approach: use blended MER for the 'is marketing profitable' question, use last-click GA4 for the 'which channel gets credit' question, and use incrementality testing (geo holdouts, paid pauses) for the 'what would happen if we cut this channel' question. Three tools, three questions.

Track CAC, channels, and funnel conversion in one place

Metricuno connects ad spend, funnel events, and revenue so you can see CAC by channel, cohort, and campaign — without stitching together five tools.