When the numbers are wrong, everything built on them is wrong.
A structured review of your GA4 property, GTM container, ad platform pixels and attribution setup — ending in a prioritised list of what's broken, what it's costing you, and what to fix first.
Revenue reconciliation
GA4 events
Prioritised fix list
| Source | Reported | Variance | Counting method |
|---|---|---|---|
| Shopify | 263,410 | +6.1% | orders API, gross of returns |
| Meta Ads | 291,880 | +17.6% | 7-day click, 1-day view |
| Google Ads | 254,700 | +2.6% | data-driven attribution |
| GA4 | 226,140 | −8.9% | consent mode blocking 11% |
| Amazon SP | 271,500 | +9.3% | includes pending orders |
| Reconciled model | 248,300 | ✓ true | deduplicated, net of returns |
| Event | Count | Finding | Status |
|---|---|---|---|
| purchase | 18,402 | fires twice on refresh | broken |
| add_to_cart | 94,118 | healthy | ok |
| begin_checkout | 31,207 | healthy | ok |
| view_item | 412,880 | healthy | ok |
| sign_up | 2,914 | missing user_id | check |
| refund | 1,088 | not sent from Shopify | broken |
Example output · illustrative data · runs in your own accounts
You'll get the most out of this if…
- Your GA4 revenue has never matched Shopify and nobody knows why.
- You migrated from Universal Analytics and something has been off ever since.
- Meta and Google both claim credit for the same conversions.
- You're about to build reporting and want to know the foundation is sound.
Broken tracking doesn't announce itself.
A miscounted purchase event doesn't throw an error. It just quietly inflates a number, and every report downstream inherits it. Budget follows the inflated channel, and the mistake compounds for months before anyone questions it.
The common failures are boring and specific: purchase events firing twice on refresh, GTM tags without triggers, UTM parameters overwritten at checkout, consent mode blocking more than intended, and server-side events duplicating client-side ones.
An audit is worth doing before any build, not after. It's the cheapest work on this site and it usually changes what the rest of the project should be.
Delivered, not described.
GA4 property review
Events, conversions, data streams, filters, attribution settings and any leftover Universal Analytics assumptions.
GTM container review
Every tag, trigger and variable checked for duplicates, misfires and things that stopped working after a site change.
Platform pixel check
Meta, Google Ads and TikTok — deduplication, event matching and conversion windows compared against each other.
Reconciliation report
GA4 against Shopify against the ad platforms for a fixed period, with each gap explained rather than averaged away.
Prioritised fix list
Ordered by what it's costing you, not by how easy it is. Each item says what to change and where.
What actually happens.
Access
Read access to GA4, GTM and your ad accounts. Nothing gets changed during the audit.
Reconcile
A fixed period is pulled from every source and compared line by line to find where they part ways.
Report
Findings written up plainly, with the dollar impact estimated where it can be.
Fix
Optional. I implement the list, or hand it to your team with enough detail that they can.
The only person I found that could help me figure out why those issues were happening. GA3 + GA4 blends that seemed impossible to be set up.
VERIFIED CLIENT REVIEW · UPWORK · JAN 2024
Asked on nearly every call.
Do you fix things, or just report?
Either. The audit ends at the report by default, because plenty of teams want to do the fixes themselves. If you'd rather I implement them, that's scoped separately once we know the size of the list.
How long does it take?
One to two weeks. The reconciliation is the slow part — comparing a real period across every source properly takes longer than clicking through settings.
What if you find nothing?
That happens, and it's a useful result. You get a written confirmation that your tracking holds up, which is worth having before you spend on anything built on top of it.
Want this on your own numbers?
Fifteen minutes, no pitch. Bring the figure you least trust and I'll tell you what's likely behind it.
Book a 15-minute call