ATTRIBUTION FIX SPRINT
Your pixel is reporting 6 of every 10 orders. You are buying media on the other 4 blind.
Browser tracking loses conversions to iOS, ad blockers and consent banners, so Meta optimises against a partial picture and your ROAS reads low. We rebuild the measurement server-side in two to three weeks and hand you the dashboard.
Request a tracking reviewWhat this looks like inside the business
Nothing is obviously broken. The store takes orders, Shopify reports revenue, the ad accounts keep spending. The numbers just stop agreeing.
Shopify says 180 orders. Meta claims 96.
You reconcile the two on the first of the month and give up somewhere around the third. The gap is not fraud and it is not your agency lying. Purchases that never reach the pixel simply do not exist as far as the algorithm is concerned, so it optimises toward the customers it can still see.
ROAS fell and nobody can name the cause
Same creative, same audiences, same AOV at checkout. Reported return drops from 4.1 to 2.6 over a few months. Half the drop is real performance. The other half is measurement decay, and until you separate them you are pausing campaigns that were actually profitable.
You are paying twice for the same customer
A returning buyer clicks a retargeting ad, then a branded search ad, then converts. Both platforms claim the sale. Your blended CAC looks fine while individual channel numbers are fiction, so budget moves toward whichever platform is loudest about attribution rather than whichever one found the customer.
What gets built
One sprint, fixed fee, paid up front. At the end the tracking belongs to you, not to an agency retainer.
Conversions API with real deduplication
Purchase, add to cart and checkout events fire from your server as well as the browser, matched on a shared event_id so Meta counts each order once. Order value, currency and product IDs travel with the event. Hashed customer data raises match rate on the orders that used to disappear.
Server-side GTM and Consent Mode v2
A server container you control, so the tracking survives the next browser update instead of breaking with it. Consent Mode v2 configured properly for EU and UK traffic, which means modelled conversions rather than blank rows when a visitor declines cookies.
Revenue mapped back to the ad that caused it
Refunds and cancellations flow back so ROAS reflects money kept, not money invoiced. Post-purchase value gets attached to first-order source, so you can finally see which campaigns bring buyers who order again. The dashboard is yours and stays yours.
What usually changes
A typical high-AOV store arrives reporting around 61% of its Shopify orders inside Meta. After the measurement moves server-side that figure lands near 89%. The orders were always happening. The algorithm just gets to learn from all of them now, and within roughly six weeks CPA falls about 22% on the same budget and the same creative. No new ads, no new offer, no new landing page. The bidding simply stops being wrong about who converts.
Who this is not for
If you spend under €20,000 a month on paid, the recovered accuracy will not cover the fee and you should keep the money in inventory. If your average order is €40 and your margin is thin, the maths does not carry. And if the honest problem is that the product does not sell, better tracking will only give you a clearer picture of that.
See how much of your revenue the platforms can actually see
Send read access to the ad accounts and Shopify, and you get back the real match rate with the gap quantified in orders and euros.
Request a tracking review