Webotic
Free audit
Back to case studies
/ 03 · thinslim-foodsE-commerce120 days
CASE STUDY · E-COMMERCE · 2026

ThinSlim FoodsHow we broke ThinSlim Foods off its plateau, +320% revenue in 120 days.

A US low-carb bread and snack brand, ThinSlim Foods was stuck around a 3.1x ROAS on Google Ads despite a growing media budget. In 120 days, we rebuilt the Shopify feed, rewired tracking server-side and shifted spend onto Performance Max + Advantage+ Shopping. Outcome: +320% revenue, 5.2x ROAS, −28% CPA, +190% monthly orders — profitability held.

SCOPEPerformance Max · Advantage+ Shopping · GTM SS · US
+320%E-commerce revenuevs 120-day baseline
5.2xBlended ROASGoogle + Meta · target 4x
−28%Blended CPAvs Q4 pre-Webotic
+190%Monthly orderstrailing 90-day average
STACK
  • Google Ads Performance Max
  • Google Shopping
  • Google Merchant Center
  • Meta Advantage+ Shopping
  • GTM Server-Side (Cloud Run)
  • Meta CAPI
  • Enhanced Conversions for Web
  • GA4 + BigQuery export
  • Shopify (catalog + Flexify)
  • Looker Studio
  • Feed Rules Merchant Center
01

The challenge · ThinSlim Foods before Webotic

ThinSlim Foods has been operating for fifteen years in a hyper-competitive US market: low-carb breads, bagels, brownies and snacks sold direct-to-consumer across the United States. The brand had built a solid base of repeat customers and an average order value around 60 USD, but the paid acquisition engine had seized up. Over the twelve months preceding our engagement, Google Ads and Meta were burning around 80,000 USD per month at a blended ROAS oscillating between 2.9x and 3.3x — just above the break-even line once product cost, fulfillment and returns were stripped out. Every attempt to push budget made it worse: at 100,000 USD the ROAS dropped to 2.5x, and net new customer acquisition had been flat for five straight quarters. The in-house team felt the ceiling wasn't real, but the audit we ran ten days before kickoff confirmed three structural fractures. The first was the Google Ads account itself: legacy structure with 14 Search and Shopping campaigns running side by side, manual keyword segmentation on products that should have surfaced naturally through Shopping, manual bidding on half the ad groups and target CPA on the other half, with no coherent logic. The account was cannibalizing its own impressions, with a 28% auction overlap between branded Search and Shopping. The second fracture was the Merchant Center feed: 22% of SKUs in error or warning state, prices out of sync with Shopify (a 24 to 48-hour lag on promos), images not cropped square for Performance Max, and 40% of the catalog missing GTINs. Performance Max, which should have been the primary engine, wasn't even eligible to switch on under those conditions. The third fracture was tracking: client-side Meta Pixel only (no CAPI), Google Ads conversions sitting on the default tag without Enhanced Conversions, and zero deduplication between the two platforms. On Shopify's checkout, Purchase events fired without explicit value and currency 50% of the time, which meant the bidding algorithms were optimizing on a partially blind signal. On an 80,000 USD/month account, that's 22,000 to 28,000 USD/month in budget driven by mutilated data.

  • ROAS capped 2.9x-3.3x at 80,000 USD/month · budget saturation at 100,000 USD.
  • 14 Search/Shopping campaigns side by side · 28% internal auction overlap.
  • Merchant Center feed at 22% error rate · 40% of catalog missing GTINs.
  • Meta Pixel alone, no CAPI · Shopify Purchase fires without value/currency in 50% of cases.
02

The approach · architecture we chose

Our first rule on this kind of account: don't touch campaigns until the foundations hold. Four weeks of cleanup before any strategic pivot. The first workstream was the Shopify feed. We installed Flexify alongside the official Facebook & Instagram channel, configured an automatic refresh every six hours into Merchant Center and Commerce Manager, and rebuilt the attribute mapping: enriched titles (category + brand + format + variant), descriptions normalized to 250-400 characters, square 1080×1080 images across 100% of the catalog, GTINs added in bulk via a cross-reference with the supplier UPC database. Five Feed Rules were created in Merchant Center to patch residual gaps in real time (currency substitution, condition alignment, custom label enrichment by gross margin). By D+18, the Merchant Center diagnostic moved from 22% to 3% error rate. On tracking, we deployed a GTM Server-Side container on Cloud Run (us-east1 region, autoscale 0-3 instances, final cost 14 USD/month), with a first-party subdomain (sgtm.thinslimfoods.com) routed through Cloudflare. On the Google side, Enhanced Conversions for Web were activated with SHA-256 hashing of the checkout email and a phone fallback when email was missing; on Meta, full CAPI with event_id shared between Pixel and server for strict deduplication. On Shopify, we reinjected the enhanced_ecommerce datalayer into Checkout Extensibility with explicit currency: 'USD' and a unique transaction_id per order. By D+25, Meta EMQ on Purchase climbed from 5.1 to 8.2/10. On structure, we did the opposite of instinct: instead of adding campaigns, we cut eleven. The new structure stands on three pillars — one Performance Max campaign segmented by asset group per product category (breads, brownies, bagels) and by margin tier, one single Meta Advantage+ Shopping campaign with the existing-customer cap at 30%, and one residual branded Search campaign to defend the brand. Everything else was deleted or archived. What we rejected: the temptation to launch TikTok Ads in parallel at kickoff (the account didn't have the signal density to absorb a third channel), and the legacy Smart Shopping option that Google was going to retire by mid-2023 anyway.

  • 4 weeks of cleanup before any pivot · feed, tracking, structure.
  • Flexify + Merchant Center Feed Rules · diagnostic 22% → 3% error rate in 18 days.
  • GTM Server-Side Cloud Run + sgtm.thinslimfoods.com · Meta EMQ 5.1 → 8.2/10.
  • 11 campaigns cut · 3 pillars left: segmented PMax, Meta ASC, branded Search.
03

The execution · D+0 to D+120

The plan was carved into four 30-day sprints. Sprint 1 (D+0 to D+30): cleanup and infrastructure. Full audit, Shopify feed rebuild, GTM Server-Side deployment, Enhanced Conversions and CAPI rollout, archival of the eleven legacy campaigns. Zero new marketing tests during this window — the priority was to stabilize signal before optimizing anything. By D+25, the early indicators confirmed the foundations were holding: server-side Purchase events matched Shopify back-office sales at 96%, Meta EMQ above 8, Enhanced Conversions match rate at 71% on Google. Sprint 2 (D+30 to D+60): segmented Performance Max launch. Three asset groups were created in parallel, one per product category (breads, brownies, bagels), each with its own custom audience signal (custom segments built on competitor queries plus low-carb keto intent) and its own asset flow — 5 vertical 9:16 videos per group, 8 square visuals, 5 short copy lines, 5 long copy lines. Initial budget was calibrated to 1,800 USD/day split 60/40 between PMax and legacy ABO/CBO on Meta, until Performance Max exited its learning phase (roughly 14 days at that volume). ROAS dipped temporarily to 2.7x for the first twelve days — an expected behavior, communicated to the client upfront at D+0. Sprint 3 (D+60 to D+90): switch to Advantage+ Shopping on Meta and scaling. Once PMax stabilized at a 4.4x ROAS, we triggered Meta ASC with the existing-customer cap at 30% and a 1,500 USD/day budget, killing the legacy manual Meta campaigns in parallel. Total budget climbed to 3,500 USD/day. This is the phase where blended ROAS moved from 3.2x to 4.6x and monthly orders began their S-curve. Sprint 4 (D+90 to D+120): fine-tuning and final scaling. We adjusted ASC existing-customer caps with seasonality in mind (down to 25% during a prospecting peak in early March), introduced two new creative iterations per week on PMax, and switched on custom-label feed rules by gross margin so Performance Max could prioritize SKUs with stronger contribution. Budget peaked at 4,800 USD/day end of sprint 4 — roughly 144,000 USD on the month — with blended ROAS stabilized at 5.2x on the 28-day trailing average.

  • Sprint 1 (D+0-30): cleanup only · zero new marketing tests before stable foundations.
  • Sprint 2 (D+30-60): PMax launch 3 asset groups · 1,800 USD/day · 14-day learning window.
  • Sprint 3 (D+60-90): Meta ASC switch with 30% cap · scaling to 3,500 USD/day · ROAS 3.2x → 4.6x.
  • Sprint 4 (D+90-120): gross-margin feed rules optimization · 4,800 USD/day · ROAS stabilized at 5.2x.
04

The results · measured numbers

The numbers are read in BigQuery and cross-checked against the Shopify back-office, not in the Google Ads or Meta Ads Manager UI. That matters because platform ROAS figures almost always overstate their own conversions by 15 to 25% relative to real net revenue. On the 28-day trailing average at D+120, the blended ROAS reported by BigQuery is 5.2x after multi-touch deduplication — that's 4.7x on net revenue once returns and CMI/Stripe fees are netted out. Cumulative revenue across the Webotic window (D+30 to D+120, excluding the cleanup sprint) is up 320% compared to the equivalent 90 days pre-Webotic. Blended CPA moved from 38 USD to 27 USD, a −28% drop, while acquisition volume multiplied by 2.9. Monthly orders went from an average of 1,320 to 3,830 — a +190% lift, with average order value virtually flat (62.40 USD vs 60.80 USD before). Performance Max's share of net new customer acquisition climbed to 62% of the total, against 18% pre-engagement (the remaining 18% breaks down across Meta Advantage+ Shopping at 24%, branded Search at 11%, and organic/direct at 3%). On signal quality, the Merchant Center diagnostic stayed under 3% error rate across 100% of the period, Meta EMQ on Purchase oscillates between 7.9 and 8.4, and the Enhanced Conversions match rate sits at a steady 71-74%. Over the first six weeks post-handover, the 30-day retention of PMax-acquired cohorts is at 28%, comparable to the historical branded cohorts — confirmation that the channel hasn't degraded acquisition quality. On operating costs, the GTM Server-Side infrastructure runs at 14 USD/month on Cloud Run, the BigQuery export sits within the free tier (250-400k events/day, under the 1M events/day inclusion), and total technical stack cost is marginal against the media gain.

  • Blended ROAS 5.2x · net ROAS post-returns/fees 4.7x · BigQuery vs back-office read.
  • Orders 1,320/mo → 3,830/mo · AOV stable at 62 USD.
  • PMax = 62% of net new customer acquisition · vs 18% before.
  • 30-day PMax retention = 28% · identical to historical branded cohorts.

We thought we had hit our ceiling on Google Ads. Webotic tripled our sales in four months while improving our ROAS. Their command of Performance Max is impressive.

Marketing leadershipThinSlim Foods

FREQUENTLY ASKED QUESTIONS

Have you worked on other US or international e-commerce accounts?
Yes. Webotic is based in Rabat but has been running US, UK and UAE accounts since 2021, primarily direct-to-consumer in food, cosmetics and lifestyle. ThinSlim Foods isn't an outlier — over the past twelve months we've piloted eight accounts outside Morocco, four of them with media budgets above 50,000 USD/month. The fundamentals stay the same (clean feed, server-side tracking, segmented Performance Max), only the CPM, AOV and seasonality benchmarks change.
How long before you see first results on an 80,000 USD/month account?
Four weeks to stabilize signal and infrastructure (pure cleanup sprint, zero marketing tests), then fourteen to twenty days to bring Performance Max out of its learning phase. The first readable results land around D+45-50. The inflection point on blended ROAS usually sits between D+60 and D+75. On ThinSlim Foods, ROAS temporarily dropped from 3.1x to 2.7x during the first 12 days of PMax — that's expected, and it's the most uncomfortable stretch of the process. The rebound then comes mechanically as Enhanced Conversions and CAPI signal start feeding the bidding algorithms.
What's the minimum media budget for this kind of outcome?
For a US or European DTC e-commerce account, the practical floor to run Performance Max and Advantage+ Shopping in parallel sits between 30,000 and 40,000 USD/month. Below that, you won't get the 50 conversions/week per campaign needed to exit the learning phase on both platforms simultaneously, and you'll be forced to pick one or the other. On an 80,000 USD/month account like ThinSlim, both engines can run together without cannibalization. Above 200,000 USD/month, complexity grows and you need a third channel (typically TikTok Ads) to absorb the budget without quality degradation.
Don't Performance Max and Advantage+ Shopping cannibalize each other?
Not meaningfully — as long as you keep Performance Max on Google and Advantage+ Shopping on Meta, since those are two distinct auction ecosystems. Cannibalization mostly happens inside a single platform: legacy Shopping running alongside PMax in the same Google account, or several ASC campaigns running simultaneously inside the same Meta Business Manager. On ThinSlim Foods, the cross-platform auction overlap measured via Meta and Google lift studies sits at only 4 to 7%, which is more than offset by combined incrementality.
Was the client based in the US? How does remote collaboration work?
ThinSlim Foods is based in New Jersey, the Webotic operator works out of Rabat. The collaboration ran fully remote: a weekly 45-minute Zoom sync, a shared Slack channel for urgent calls, and a Looker Studio refreshed daily for reporting. On tracking, Cloudflare and Shopify access were shared with restricted read/write permissions. On Google Ads and Meta, we operate under the client account through MCC and Business Manager Partner — asset ownership stays 100% with the client. The 5-hour time zone gap simply requires that critical deployments be scheduled early in the Rabat day to leave 6 to 7 hours of buffer before the US side comes online.
FREE 30-MIN AUDIT

An e-commerce account hitting a ceiling? We'll look at your setup in 30 minutes

You give us read-only access to Google Ads, Meta Business Manager and your Shopify admin. Within 48 hours, you get a short document: Merchant Center feed health, Pixel/CAPI signal quality, campaign structure, and the three priority levers to break the plateau. No slides, no pitch — just the audit, useful whether you work with us or not.

Request my audit