Case study · Paid ads · Ecommerce · At Step Digital
Managing $514k across Google and Meta.
A full-funnel Google and Meta rebuild for an Australian bedding brand, anonymised at the client’s request. The figures below come from an account summary, with the source limitations set out alongside the results.
$2.24M
sum of attributed revenue, 12 months
$514k
ad spend, 12 months
4.36x
revenue over spend
2
ad platforms
The revenue total adds Google and Meta's reported attribution. Both platforms can claim the same purchase. No deduplication method or store-revenue total is recorded, so this is not a measure of unique store sales or incremental lift.
The source labels the headline totals as 12 months without recording which dates they cover. The separate 15-month channel averages cannot be used to reconstruct those totals.Read the measurement notes.
The client
A premium bedding brand with real potential, and real problems.
A growing Australian homewares brand selling French flax linen quilt covers, washed cotton bedding and organic sheets. Three years of Meta history, a clearly defined customer, strong product. Weak account structure.
When I took the account over, the numbers told the story: Meta ROAS averaging 2x, Google pushing 85% of its budget through a single Performance Max campaign with a target ROAS of just 160%, and video assets serving to puzzle game apps with zero sales in six months.
The starting point
Six problems suppressing both channels.
No funnel separation on Meta
Cold prospecting and warm retargeting blended together, with no exclusions for past purchasers. Budget was being spent re-reaching people who had already bought.
Coupon codes killing conversions
Discount codes shown in ads weren't auto-applying at checkout. Customers were dropping off at the point of purchase, a fixable friction point costing real revenue.
PMax serving ads to puzzle game apps
Performance Max was pushing video ads to mobile gaming apps, YouTube and Gmail. Four videos, six months, zero sales.
Target ROAS set far too low
The PMax target was 160% while the account reported returns of 450 to 500%. I reviewed the bidding target alongside margins and conversion data rather than treating the existing target as a profitability threshold.
Disapproved products and generic copy
The product feed had disapproved items cutting Shopping coverage, and ad headlines were generic enough to blend into every competitor's.
Creative running on empty
Static images and carousels only, an inconsistent visual identity, and no UGC or motion assets to build trust with cold audiences.
The approach
Fix the foundations, then scale what’s proven.
Meta
Restructure, reduce friction, test systematically.
- Removed the coupon codes entirely. The simplest change on the list, and checkout drop-off fell immediately.
- Rebuilt the account into a clean three-layer funnel: cold prospecting, warm retargeting split by recency (0-7, 8-30 and 31-60 days), and returning customers via the email platform sync.
- Excluded past purchasers from all cold prospecting, so the reported return stopped leaning on people who had already converted.
- Tested with ABO to find winning creative and audience combinations, then scaled the proven ones with CBO. Advantage+ Shopping was used as a scaling vehicle only, never for testing.
- For this account I capped daily budget increases at 20% and used twice the target cost per purchase as a pausing threshold. These were operating choices for that account, not universal platform rules.
Fix the foundation, then scale with precision.
- Revised the target ROAS after reviewing the account's conversion performance and commercial goals.
- Removed the existing video assets as part of the creative review. This action alone does not exclude YouTube, Gmail or app inventory: Performance Max can create video automatically. Channel exclusion should not be inferred from asset removal.
- Audited the product feed and resolved the disapproved products, restoring Shopping coverage.
- Segmented asset groups by product category and rebuilt every headline and description around specific benefits instead of category filler.
- Layered customer lists and remarketing onto Search and Shopping, and scaled spend deliberately around EOFY, Black Friday and Christmas.
The results
The results recorded in the source summary.
The summary labels the combined totals as 12 months and the channel averages as 15 months. The exact dates for the combined totals and the method used to average channel ROAS are not recorded. These figures describe platform reporting, with the limitations below.
Combined, 12 months
$2,240,130
attributed revenue across Meta and Google
$513,906
total ad spend: $393,719 Meta, $120,187 Google
15 months in source
8.54x
reported average ROAS; method not recorded
Meta
15 months in source
3.62x
reported average ROAS; method not recorded
Ad spend by channel, 12 months
$513,906 total
$393,719 Meta ad spend
$120,187 Google ad spend
This chart shows spend only, across the same 12-month reporting window. The separate 15-month ROAS averages are shown above.
The transferable lesson is to check the tracking, customer mix, feed and commercial constraints before increasing spend. The campaign structure and test thresholds still need to fit each account’s budget and data.
Reviewed
The 12-month ratio is $2,240,130 divided by $513,906, approximately 4.36x. It describes the reported totals, not profit or incremental sales. The 15-month channel averages are retained as reported in the source summary and are not comparable to the 12-month spend split.
The exact 12-month dates, Meta attribution windows, Google attribution model and conversion window, and any cross-platform deduplication are not recorded. The summary also does not specify GST, shipping, discounts, refunds or cancelled-order treatment. Channel averages are labelled “avg” without a method. The source order count and improvement percentage are omitted here because their source or comparison basis cannot be verified.
