Twenty20How we pushed Twenty20 to +340% ROAS on Meta Advantage+ across three markets in 60 days.
Twenty20, a DTC e-commerce brand pushing into the US and UK from a saturated home market, was burning budget on a manual ABO/CBO stack that no longer scaled. In 60 days we rebuilt the catalog feed, deployed server-side CAPI and switched the entire account to Meta Advantage+ Shopping. ROAS climbed to +340% over baseline, CPL dropped 55%, and three new geographies came online without doubling headcount.
- Meta Advantage+ Shopping
- Meta Ads Manager
- Shopify Plus
- Facebook Channel · Flexify
- GTM Server-Side · Cloud Run
- Meta CAPI
- Google Ads Performance Max
- TikTok Ads Smart+
- GA4 + BigQuery
- Triple Whale
- Looker Studio
- Iterable
The challenge · Twenty20 before the rebuild
Twenty20 had built a solid run in its home market on a manual Meta stack — split-tested ABO campaigns, geo-locked CBOs, three or four creatives recycled across the quarter. That structure carried the brand to a 1.8x blended ROAS and a stable monthly order count. The moment the team announced the US and UK push, the structure cracked. The same manual logic that worked at 50 000 USD of monthly spend hit a wall above 90 000: weekly CPA started swinging ±45%, audience overlap drove CPM up by 22% inside the first three weeks, and the team was spending more time tuning bid caps than building creative. The catalog side was worse. The Shopify feed had been set up years earlier with a monthly manual export — 24% of SKUs sat in error in Commerce Manager (missing images, prices without currency, GTIN empty on 38% of the catalog). Meta was visibly under-serving roughly a third of the inventory and the team didn't know it. On the tracking side, client-side Pixel was doing all the work. Across the US and UK funnel we measured a 31% signal loss versus server-side benchmarks — Safari ITP cutting 12%, iOS ATT another 16%, ad-blockers the rest. Twenty20 was paying for a learning algorithm that received roughly two thirds of the truth, and the brief was sharp: open US, UK and IE in 60 days, hold a 4x ROAS minimum, do not burn the existing home-market accounts.
- ROAS stuck at 1.8x · CPA swinging ±45% week-over-week.
- Shopify feed at 24% errors in Commerce Manager · GTIN empty on 38% of catalog.
- Client-side Pixel only · 31% signal loss measured against server-side benchmark.
The approach · the architecture we picked
The reflex of pouring more budget into the existing manual structure was off the table — the math said the structure was the problem, not the budget. We laid out a four-layer rebuild and refused the side requests that would have diluted it. Layer one, catalog. Full Shopify feed rebuild via the official Facebook Channel plus Flexify for variant explosion, all SKUs forced to 1080x1080 imagery, currency unit pinned per geo (USD for US, GBP for UK, EUR for IE), GTIN scraped from supplier sheets where missing. Daily automatic refresh, no more manual exports. The goal: Commerce Manager diagnostic under 5% errors before any campaign touch. Layer two, tracking. GTM Server-Side on a Cloud Run container, Meta CAPI on every Purchase, Add to Cart, Initiate Checkout and View Content, strict event_id deduplication client-server, value and currency fields explicit on every Purchase event. Target: EMQ above 8/10 on Purchase, week one of the rebuild. Layer three, campaign structure. Advantage+ Shopping per geography (one per market — never one global ASC, that's a beginner trap), existing-customer cap pinned at 30% to force the algorithm into cold prospecting, eight to twelve live creatives per campaign with a strict weekly refresh rule. Manual ABO kept on 25% of the budget for three weeks as a control, then phased down to 10% once the lift was confirmed. Layer four, secondary channels. Google Performance Max on bottom-funnel intent, TikTok Smart+ on creative discovery for the under-30 segment in UK. What we refused: lookalike-stacking ASC under one global campaign (kills the geo signal), aggressive bid caps inside ASC (Meta will simply throttle delivery), and the team's instinct to ship a fresh creative pack every Friday for the launch — we held to two to three refreshes per week to give the algorithm enough data to read each one.
- Catalog rebuilt first · ASC on a 24% error feed is wasted spend.
- One ASC per geography · never one global campaign across markets.
- Existing-customer cap pinned at 30% · forces 70% cold prospecting from day one.
The execution · D+0 to D+60
Day 0 to day 10, foundations. Shopify feed rebuild via Flexify and the Facebook Channel, image audit and bulk regeneration of 184 SKUs missing the 1080x1080 floor, GTIN backfill from three supplier exports, MAD legacy fields removed and replaced with proper USD/GBP/EUR pricing per market. By day 8, Commerce Manager diagnostic sat at 3.2% errors — under the 5% ASC threshold. Day 5 to day 14, tracking. GTM Server-Side container deployed on Cloud Run at 9 USD/month, Meta CAPI wired on the four core events, event_id deduplication tested through Meta's Events Manager. Purchase EMQ climbed from 5.9 to 8.4 in eight days as we backfilled fbp/fbc cookies and added hashed email and phone where the customer was logged in. Day 12 to day 25, first ASC launches. US ASC went live day 14 with a 1 200 USD/day budget and the 30% existing-customer cap, UK ASC followed day 18 at 800 GBP/day, IE ASC day 22 at 400 EUR/day. The 25% manual control sat in parallel on the home market. Day 25 to day 40, creative cadence. The team shipped two new UGC pieces per week per geo, lifestyle shots with explicit price overlay and free-shipping mention, dynamic carousels pulled live from the rebuilt catalog. Kill rule applied weekly: CTR under 1% and CPA above 1.5x target over a rolling 7-day window. Day 40 to day 55, scale window. Once each ASC cleared 50 weekly purchases, budgets stepped up in 20% increments every five days — never overnight, the algorithm needs the gradient to re-converge. Day 55 to day 60, lock-in. Attribution closed in Looker Studio, dashboards rebuilt to track blended ROAS per market plus contribution from PMax and TikTok, the manual ABO control phased to 10% and held as a creative discovery lab.
- D+10: feed at 3.2% errors · D+14: EMQ 8.4 on Purchase.
- D+14 to D+22: US, UK, IE Advantage+ live in parallel.
- Weekly kill rule: CTR < 1% · CPA > 1.5x target over 7 rolling days.
- Budget steps in 20% increments every five days · never overnight.
The results · numbers measured at D+60
By day 60, the account read 4.4x blended ROAS versus 1.8x baseline — a 340% lift on the metric the brief was pinned to. US ROAS landed at 4.7x, UK at 4.2x, IE at 3.9x. CPL dropped 55% blended across the three new markets, with US carrying the deepest improvement (CPL down 62%) thanks to the stronger UGC pipeline the team built in week three. Order volume climbed +180% versus the pre-rebuild monthly run-rate, and crucially this came without burning the home-market account: home ROAS held at 2.6x through the rebuild and stepped to 3.1x once the creative discoveries from the new markets were backported. On the tracking side, EMQ stabilized at 8.4/10 on Purchase, and the gap between Shopify orders and Meta-attributed conversions closed to 4% from a pre-rebuild gap of 19%. On the catalog side, error rate stayed under 4% across the full 60-day window thanks to the daily refresh, and Meta lifted serving of the previously under-served third of the SKU base — the long-tail of niche products started pulling 23% of revenue versus 8% before. The financial picture, told in the language the CFO uses: blended CAC dropped 38%, contribution margin on new customers improved 14 points, and the manual ABO control proved its keep — it surfaced two creative angles that ASC then scaled across all three geos, returning more than its 10% budget share. The plan now: hold the structure for a 90-day stabilization, then evaluate a fourth market (Australia or Canada) on the same playbook.
- Blended ROAS 4.4x vs 1.8x baseline · +340%.
- CPL down 55% blended · US down 62%.
- Order volume +180% · home-market ROAS protected through rebuild.
- Shopify-to-Meta attribution gap closed from 19% to 4%.
In 60 days, Webotic cut our cost per lead in half and opened three markets we wouldn't have dared to attack on our own. Their testing method is brutally effective.
FREQUENTLY ASKED
- How long before we see real ROAS lift on an Advantage+ rebuild like Twenty20?
- The first two to three weeks are spent on catalog and tracking — the apparent ROAS during that window is meaningless because spend is intentionally throttled. Once ASC hits 50 weekly purchases per geography, the curve steepens. On Twenty20 the lift broke out in week four and stabilized in week seven. If you don't see meaningful movement by day 45 on a well-run rebuild, the bottleneck is usually catalog quality, not the algorithm.
- What's the minimum monthly budget for an Advantage+ multi-market rebuild?
- Around 25 000 USD per month across all geos is the floor where the math holds — below that, each ASC sits under the 50 weekly purchases threshold and the algorithm never exits learning. Twenty20 was running closer to 90 000 USD per month at peak across US, UK and IE plus PMax and a TikTok Smart+ test. Below 800 USD per day per geo, ASC is the wrong tool — manual stays more profitable.
- Why Advantage+ Shopping and not stay on manual ABO/CBO?
- Manual ABO/CBO is the right call up to roughly 50 000 USD per month of Meta spend on a mid-complexity catalog. Above that, audience overlap, creative attribution and budget arbitration eat more analyst hours than ASC delegation does. Twenty20 had crossed that threshold and the manual structure was the bottleneck — not the budget, not the creative, the structure itself. On the new markets in particular, ASC was the only realistic way to open three geographies in 60 days without tripling the in-house team.
- Have you worked with other DTC e-commerce brands on US/UK launches?
- Yes. Webotic has run 14 DTC e-commerce accounts with US or UK exposure since 2024 — apparel, supplements, home goods, beauty. The median ROAS lift on a well-executed ASC rebuild on those accounts sits between +180% and +380% versus the manual baseline, with the spread driven mostly by catalog readiness and creative supply. The Twenty20 +340% number is in the upper third of what we see — fast, but not an outlier.
- Why the 30% existing-customer cap rather than letting Meta decide?
- On auto-cap, ASC almost always drifts to 50-70% existing-customer retargeting because those audiences convert at lower visible cost — the algorithm chases the easy ROAS in the first month. The catch: you exhaust the existing base by week six to eight and volume plateaus brutally. Pinning the cap at 30% forces 70% cold prospecting from day one, the initial ROAS reads 10-15% lower for three weeks, but ninety-day cumulative orders end up 40-60% higher. It's the counterintuitive setting that decides whether ASC scales or stalls.