Food Crowd: 18.6x ROAS on grocery e-commerce
An e-commerce grocery brand was running generic awareness ads into a leaky funnel. I rebuilt the content strategy and marketing funnel from scratch, launched stage-specific paid campaigns, moved measurement off last-click, and added lifecycle email. Result: ROAS 18.6x, CPA $2.66, AOV $49.52, orders +67%, revenue +42%, plus page-one Google rankings on competitive keywords within 9 months.
Stage-specific campaigns instead of one big ask
The core problem was structural: every ad asked a cold audience to buy. I split the funnel into discrete stages and gave each its own campaign objective, creative format, audience and KPI: prospecting on broad interest with video content, consideration retargeting on engagers with product-line creative, and conversion campaigns on warm audiences with offer-led dynamic ads. The brand's Influencer-Inspired Boxes line got its own produced video shoots and became the prospecting hook.
Measurement moved with it. Last-click was crediting bottom-funnel branded search for revenue that prospecting actually created, so I rebuilt tracking on GA4 with full event coverage and shifted reporting to data-driven attribution. That reallocation alone moved roughly 22% of monthly budget out of over-credited bottom-funnel placements and into the prospecting and mid-funnel work that was genuinely generating demand.
Email carried the margin. Automated flows (welcome, browse and cart abandonment, post-purchase replenishment timed to grocery reorder cycles) were built to do the re-converting that paid retargeting had been doing expensively. By the end of the engagement, flows accounted for roughly 28% of campaign-attributed revenue at near-zero marginal cost, which is a large part of why blended ROAS could reach 18.6x.
Order & revenue growth
Unit economics at steady state
Execution detail: paid media
- Campaign architecture: three-stage structure (prospecting / consideration / conversion) on Meta with mirrored search coverage on Google; budgets rebalanced weekly against stage-level CPA ceilings rather than a single blended target.
- Creative testing: controlled tests on hook, format and offer with success thresholds defined before launch; only variants with sustained lift across comparable segments were scaled.
- Audience discipline: purchase-based lookalikes for prospecting, engagement windows tiered at 7/30/90 days for retargeting, hard exclusions to stop paying to re-reach recent buyers.
- Attribution: GA4 event schema covering view-item through purchase; data-driven attribution adopted for budget decisions, with last-click kept visible as a sanity reference.
Execution detail: lifecycle email & SEO
- Flows: welcome series, browse abandonment, two-step cart abandonment, and post-purchase replenishment reminders timed to category reorder intervals; grocery's natural frequency is the retention engine.
- Segmentation: engagement-scored lists so discounting concentrated on at-risk segments instead of training every subscriber to wait for codes.
- SEO: technical cleanup plus content targeting high-intent commercial keywords; first-page rankings on highly competitive terms inside 9 months, compounding a free acquisition channel under the paid program.
Full metric table
| Metric | Result | Measurement basis |
|---|---|---|
| ROAS | 18.6x | Conversion campaigns, platform + GA4 reconciled |
| CPA | $2.66 | Blended, steady-state months |
| Average order value | $49.52 | Store analytics |
| Orders | +67% | vs pre-rebuild monthly average |
| Revenue | +42% | vs pre-rebuild monthly average |
| Budget reallocated via attribution | ~22% | Monthly media plan, post data-driven attribution |
| Email share of attributed revenue | ~28% | Automated flows, end of engagement |
| Organic rankings | Page 1 · 9 mo | Competitive commercial keywords |