Performance-aligned ecommerce PPC · $2,500/mo + 5% above $50K · Google + MetaSee pricing →
Home/Case studies/D2C Skincare
D2C Skincare · $180K/mo · 9 months

Reported ROAS 4.2×. Real Shopify ROAS 0.99×. We closed the gap to 1.6× in 9 months.

A premium D2C skincare brand spending $2,000/day across Google + Meta thought everything was working. Their dashboard agreed. Their CFO didn't. Margins kept shrinking month-over-month while revenue grew. We rebuilt the account around Shopify-attributed reporting and surfaced a $60K/year leak hiding in plain sight.

Real Shopify ROAS
0.99×1.6×
CAC, blended
$58$44
CM2
14%19%
Payback period
7.2mo5.0mo
The challenge

The dashboard was lying. The bank account knew it.

This brand came to us spending $2,000/day across Google Ads (Search + PMax) and Meta Ads. On paper, every metric was green:

Reported ROAS: 4.2×. Monthly attributed revenue: $260K. The marketing team was celebrating. The CFO was asking why margins kept compressing despite topline growth.

"Our ROAS is up 60%. Our profit is down 12%. What's going on?" — Founder's email to me, week 1

The first thing I do in every audit is reconcile the platform-reported revenue against Shopify Reports → Sales by traffic referrer. That single comparison usually surfaces the gap. In this account, the gap wasn't subtle — it was a chasm.

Real Shopify-attributed ROAS, recalculated against actual Shopify revenue: 0.99×. The platform was over-reporting by 4×. The brand wasn't growing profitably — it was burning cash in slow motion.

What the audit surfaced

Four leaks. Three of them invisible on the platform dashboard.

Each leak is a different mechanism by which platform-reported ROAS over-states real Shopify revenue. Together they compounded a 4× misreport.

01

Branded search inflated ROAS by 38%

Of the "Google Ads revenue" reported, 38% came from people searching the brand name directly. Demand the brand had already earned through Meta, organic, and email — but was now paying Google to capture again.

Real non-brand ROAS: 2.1× (not 4.2×)
02

PMax cannibalizing Search

Performance Max had no brand exclusions configured. PMax was bidding on the brand's name, winning at low CPCs, and reporting those wins as PMax conversions — making itself look like the hero campaign while stealing credit from organic and Search.

PMax true incrementality: 45% lower than reported
03

Retargeting over-allocated

28% of total ad spend was going to Meta retargeting campaigns reporting an 8× ROAS. Most of that revenue came from cart abandoners and repeat buyers who would have converted anyway — paying a premium to reach the warmest possible audience.

Retargeting incrementality: 30% of reported
04

No real margin tracking

The brand could quote ROAS to two decimals but couldn't tell you the margin per campaign after COGS, shipping, returns, and discounts. With CM2 unknown at the campaign level, "scaling profitably" was a guess. We rebuilt the math first.

CM2 visibility installed Day 14
What we changed

Restructure first. Stabilize. Then scale.

No spend increase, no creative changes — just architecture. The first 90 days were structural; the next 6 months compounded.

Week 1–2

Profit Stack architecture installed

Branded Search isolated into its own campaign. Non-brand Search rebuilt on phrase + exact-match. PMax restructured with brand exclusions ON and new-customer-acquisition goal turned on. Standard Shopping added at SKU-level with margin-tier asset groups.

Week 1–2

Conversion tracking + Shopify reconciliation

Pixel + GA4 + Enhanced Conversions wired correctly. Server-side CAPI events for ViewContent, AddToCart, InitiateCheckout, Purchase. Monthly reconciliation pulled directly from Shopify Reports established.

Week 2–4

Meta funnel rebuild + retargeting cap

Prospecting CBO with 90-day purchaser exclusions. ASC layer added. Testing CBO budget at 15% of total. Retargeting capped at 12% of total spend (down from 28%) with purchaser exclusions on every campaign.

Week 3–6

Margin-weighted bidding

tROAS targets recalibrated to the 19% CM2 target instead of platform default. Higher bids on high-margin SKUs (serums, retinol). Lower bids on low-margin (cleansers, samples). Custom labels for margin tiering pushed to Merchant Center.

Month 2–4

Creative testing pipeline ramp

3–5 new creative concepts tested every 2 weeks. UGC reviews graduated as the winning format (texture-focused product demos a close second). Founder-story long-form for retargeting only.

Month 4–9

Stabilize, then compound

First Shopify-side ROAS lift visible at Month 4 (1.0× → 1.2×). By Month 6, 1.4×. By Month 9, 1.6× stabilized. Spend held at $2,000/day throughout — the lift was pure efficiency.

The 9-month before / after

Same spend. Real numbers. Reconciled to Shopify.

No spend increase, no creative cost increase. The full lift came from architecture, attribution, and bid calibration. CM2 doubled. Real ROAS 1.6×'d.

Metric
Month 0
Month 9
Δ
Daily ad spend
$2,000
$2,000
No change
Platform ROAS (reported)
4.2×
3.8×
−10% (good)
Real Shopify ROAS
0.99×
1.6×
+62%
Branded share of "ads revenue"
38%
8%
Isolated
Retargeting % of total spend
28%
12%
−57%
CAC, blended
$58
$44
−24%
CM2 (margin after ad spend)
14%
19%
+5pp
Payback period
7.2mo
5.0mo
−2.2mo
Run-rate leak captured
$60K/year
eliminated
+$5K/mo

Note: Platform ROAS went down (4.2× → 3.8×) — most agencies would panic. But it went down because we removed the inflation, not because performance got worse. The only number that pays the bills is real Shopify ROAS — and that nearly doubled.

The key insight

Most ecommerce ad agencies optimize for ROAS. Smart founders optimize for profit.

Blended ROAS actually went down — from 4.2× to 3.8×. Most brands would panic at that. But actual profit went up 30% in year-1 because every dollar was now working harder on real new-customer acquisition instead of paying for conversions that would have happened anyway.

The three structural fixes that did most of the lift

1. Brand exclusions on PMax. The single most-impactful change. PMax stopped claiming credit for branded search wins, and the real incremental contribution became visible.

2. Retargeting cap at 12%. Stopped paying premium CPMs to reach an audience that was going to convert anyway. Reallocated to prospecting and PMax NCA — where the next dollar actually buys new customers.

3. Shopify-tied reporting. Once the founder + CFO could see the gap between platform-reported revenue and Shopify-attributed revenue, every spend decision improved. The right number, in the right column, every month.

Madhukar showed us a number our previous agency had been hiding from us for 18 months. We were obsessed with ROAS. He showed us that we were basically paying Google to take credit for our brand equity. Now we know which campaigns are actually driving growth.

— Head of Growth, D2C Skincare · 9 months in

Suspect the same gap is in your account?

The skincare brand above started with the $499 Profit Audit. live walkthrough, written 17-point plan, and a real number on what the leak is. Credited to month-1 if you sign within 14 days.

RECENT AUDITS · RUN-RATE LEAK
D2C Skincare · $85K/mo−$5K/mo
Supplements · $95K/mo−$7K/mo
Beauty · $50K/mo−$3K/mo
Activewear · $70K/mo−$4.5K/mo
Skincare · $60K/mono leak found