Independent specialist · Shopify DTC

Conversion tracking & analytics for Shopify DTC brands.

I audit and rebuild conversion tracking until GA4, Google Ads and Shopify finally agree — and every gap is explained, not hidden.

  • Shopify conversion tracking — setup, repair & migration
  • Google Ads & Meta attribution — conversions credited correctly
  • Server-side & cross-domain tracking — recover what's being lost
  • Revenue reconciled to Shopify — numbers you can actually trust
Real result · Mountaindrop
Google Ads, reported {{ rep }} / 500
Orders that happened {{ real }} / 500
The gap I found 99% invisible
After rebuild ≈ 9× capture
Reported ≠ real — found by audit
0 / 500
Orders Google Ads reported before the rebuild.
0 / 500
Orders that actually happened in the store.
0×
Capture recovered after I rebuilt the tracking.
What I help with

The directions I work in — all audit-first, all reconciled to your store.

Not a menu of tasks. The work clusters into three: fix the tracking, make the numbers true, then build the function around them.

Tracking setup & fixes
Shopify conversion tracking
Setup, repair, and Pixel-to-app migration — without losing conversions in the move.
Google Ads & Meta attribution
Conversions tracked and credited correctly, even across multiple ad accounts.
Server-side & cross-domain
Recover conversions lost to ad blockers and iOS; stitch multi-domain funnels.
GA4 & GTM rebuild
A clean container, correct event routing, no double-counting.
Accuracy & attribution
Revenue reconciliation
Your numbers matched to your store — multi-currency — with every gap explained.
Attribution modeling
Break open "Direct," normalize channels, attribute by product and landing page.
Consent Mode & privacy
GDPR-compliant and cookieless-ready, without throwing data away.
Analytics infrastructure
BigQuery & Looker reporting
Self-refreshing dashboards and a documented reporting hub your team owns.
Custom analytics tooling
Finance-grade numbers pulled straight from Shopify when GA4 can't reach them.
Not sure which of these your store needs?
That's exactly what the audit answers.

A fixed-price diagnosis of your tracking — with a prioritized fix list you keep, whether or not I do the rebuild.

Start with an audit
What I do
I audit and rebuild conversion tracking for Shopify stores — so the numbers you decide on are the numbers your store actually made.
GA4 GTM Meta CAPI server-side BigQuery Looker
Who it's for
Shopify & Shopify Plus DTC brands running real paid acquisition across markets and currencies, where attribution decides budget.
Called in when tracking broke and no one could fix it — or when patchwork analytics has been outgrown.
Also booking-based & service businesses where cross-domain tracking quietly breaks the journey.
Just starting out and setting things up yourself? You don't need me yet, and that's fine.

You've been mentally subtracting 10% from every number for months. You shouldn't have to.

"Which number do I trust — Shopify or GA4?"
Neither, until they reconcile. I make them agree, and explain every remaining gap.
"40% of my sales show as 'Direct.'"
That's not where they came from — it's where your attribution gave up. I rebuild it so channels tell the truth.
"My ROAS looks wrong, so I don't know which ads to scale."
Broken tracking makes good campaigns look bad. I fix the input before you bet budget on it.
"Nothing changed, but the numbers moved."
Something always changed — silently. Finding it is the whole job.
How I work

Four rules behind every number I hand you.

Verify before asserting

No finding leaves my desk until it's tested against the real data.

Reconcile to the source

Every metric checked against your store backend, with the delta explained.

Ship the caveats

A number you can defend beats one that just looks clean.

Build what you own

Dashboards, docs and queries your team can open in a year without me.

Accuracy · the honest version

I won't promise your numbers match 100%. Here's the honest version.

GA4 and Shopify never match exactly, and anyone who promises they will is selling you something. A neglected setup commonly loses 10–30% of conversions; a clean one lands in single digits, and with server-side, often under 10%.

There's a floor I can't move — and your store sets it, not your setup:

Consent geography. In the EU/UK, shoppers who decline the banner legally can't be tracked.
Audience. A tech-savvy crowd blocks tracking far more than a mainstream one.
Mobile & checkout. Safari's restrictions and redirect-heavy checkouts widen the gap.

So I don't quote a target blind. The audit shows yours, then I give you an honest number for your store.

How close — by architecture
Clean client-side GA4 / GTM

Gap pulled down to where your audience allows — and fully explained.

+ Server-side taggingoften <10%

Recovers much of what ad blockers and ITP take.

+ Direct Shopify extractionfinance-grade

Pulled from the source of truth itself, for brands that need it.

Want to know your real gap?
I'll measure it, decompose it, and tell you how close it's worth getting.

No quote blind, no false 100% — just the honest number for your store.

Start with an audit
Selected work

Two engagements, two depths.

Full system ownership flagship

Owned and rebuilt an entire DTC measurement stack.

A skincare brand whose tracking passed through a rotation of agencies — two GA4 properties double-counting, the main tag dark, revenue written off. I recovered the "lost" revenue and rebuilt GA4 / GTM / BigQuery / Looker around it.

Read the full case →
Audit-led diagnosis

The audit that found the gap between reported and real.

A wellness brand selling across EU, US and UK. Google Ads was tracking just 3 of 500 orders. I found exactly why the numbers were lying and rebuilt the tracking — lifting capture roughly nine-fold.

3 / 500≈ 9× capture
Read the full case →
In their words

What clients say after the numbers start telling the truth.

"We'd written off a chunk of revenue as untrackable. Anna found it was read from the wrong field — and rebuilt everything so the numbers finally reconcile."
[ Founder ]DTC skincare brand
"We'd already gone through two agencies trying to fix our Google Ads tracking — about half our paid conversions just weren't showing up. Anna's audit found the real cause, then she implemented the fixes herself, end to end. The numbers speak for themselves: we went from 3 recorded conversions to 65 in a comparable window, and GA4 now reconciles to what Shopify actually shows."
JureCMO at Mountaindrop
"Two agencies couldn't fix our tracking. Anna audited it, showed us exactly what was broken, and left us a system we can actually run ourselves."
[ Marketing Lead ]Shopify Plus brand
When an app didn't fix it

Installed a tracking app and the numbers still don't match?

An app installs the same fix on every store. It can't see the specific thing wrong with yours — the tag gone dark on checkout, the phantom property, the revenue read from the wrong field. That's my work: find why your numbers don't reconcile, and rebuild so they do.

Blog

Writing on the gap between what your dashboard says and what your store did.

Read all field notes →
Why 40% Direct
Attribution

Why 40% of your Shopify sales show as "Direct"

It's not where they came from — it's where your attribution gave up. How to find the real source and get the channels back.

Read →
Stop subtracting 10%
Accuracy

Stop mentally subtracting 10% from every number

The GA4–Shopify gap is real and permanent. Here's how to make it small, stable, and explained — instead of a guess.

Read →
App didn't fix it
Tools vs. truth

Installed a tracking app and the numbers still don't match?

What an automated fix structurally can't catch — and how to find the silent failure hiding in your own store.

Read →
Get started

Get a tracking audit in a few days.

What an audit changes
Before 3 / 500 orders
After ≈ 9× capture

Every engagement starts with a fixed-price audit. You keep the findings either way.

✓ Sent! I'll reply within one business day.
Something went wrong — email me directly at hello@annametrics.com

No agency. Just me — I'll reply within one business day.