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