Case study · Shopify and ecommerce
How a performance events business closed the gap from 3.6% to 30% revenue match.
A full Shopify stack rebuild from consent layer up.
3.6% → 30%
Revenue match rate across Shopify, GA4 and Meta
The challenge
What wasn’t working
A live events business running a high-velocity Shopify Plus store was reporting one revenue number in Shopify, a second in GA4 and a third in Meta Ads. The three were as much as 8x apart on a busy day.
The paid team couldn’t bid confidently because the platform numbers didn’t reconcile. The finance team had a third version of the same number. Every weekly meeting started with an argument about whose data was correct.
What we did
How we delivered it
01 Consent layer rebuild
Replaced the off-the-shelf consent setup with a Didomi-grade implementation that respects user choice and preserves the consented audience.
02 Server-side GTM (Auto-sGTM)
Deployed our Auto-sGTM container to a custom subdomain. Faster, cleaner, ad-blocker-resistant.
03 Cookie restore
Persistent identity across ITP cycles, restoring 7-day consideration windows on iOS.
04 Clean GA4 specification
Versioned event spec for the full purchase funnel, contracted in code so the build breaks on regressions.
05 Platform reconciliation
Wired the priority events into Google Ads and Meta with deduplication keys and conversion uploads.
06 Three-source reconciliation dashboard
Built a Looker Studio dashboard showing Shopify, GA4 and Meta side by side so the weekly meeting could focus on decisions, not data.
The result
The outcomes
3.6% → 30%
Accurate revenue match rate across all three reporting sources
3%
Day-to-day variance between Shopify, GA4 and Meta after the rebuild
30 days
From kickoff to the three sources reconciling within tolerance
100%
Of priority paid events deduplicated server-side
“For the first time, the paid team, the finance team and the founder are looking at the same number.”
COO, performance events business
