E-commerce · DTC
Recovering the 60% of conversions Meta couldn't see
Rebuilt attribution with server-side CAPI, fixed cross-geo routing, and retrained creative rotation — recovering hidden conversions instead of scaling waste.
1.17× → 3.4× ROAS in 21 days
- ROAS
- 1.17× → 3.4×
- Attributed conversions
- +148%
- Wasted spend cut
- 34%
- Time to ship
- 21 days
The situation
The brand was running a mixed Meta + Amazon Ads stack with four active campaigns and strong top-of-funnel engagement — but flat revenue. Reported ROAS sat at 1.17× for three consecutive months despite rising spend.
What we found
Two compounding leaks:
- Geo routing was broken. UAE campaign links were landing on
amazon.in— pricing in INR, shipping rules that excluded GCC. Users hit the PDP, bounced, and Meta’s pixel recorded them as “engaged” (not converted). - Client-side pixel loss. iOS 17 + ad-block + aggressive tracking prevention was silently dropping ~60% of purchase events. Meta’s model was optimizing against the visible 40% — which skewed heavily toward lower-AOV repeat buyers.
What we changed
- Deployed server-side CAPI with deterministic event IDs (dedupe against the client pixel when it does fire).
- Rewrote the campaign link generator to respect
ship_to_countryfrom the product feed — no more INR pricing for GCC customers. - Rebuilt creative rotation around AOV cohorts (so the model stops optimizing for trial-size repeat orders and starts optimizing for full-price new customers).
- Bridged Amazon Attribution tags into the same conversion graph, so the brand stopped paying Meta and Amazon for the same customer twice.
Outcome
Twenty-one days after the attribution bridge went live:
- ROAS: 1.17× → 3.4× (Meta-reported; confirmed in Shopify revenue).
- Attributed conversions: +148% — most of it was already there, just invisible.
- CAC: −41% at the same daily budget.
The lesson: before you scale spend, make sure you’re reading the board correctly. We didn’t make the brand’s ads better. We made the measurement honest.
This playbook runs on every new client. If your Meta ROAS looks suspiciously flat, there’s a good chance the problem is attribution, not creative.