DigestStart a Conversation

Case Study · Ecommerce · Google + Meta

We Ran the Ads. Then We Built the Retailer a Nervous System.

A US women's fashion brand on Shopify Plus doing six figures a week, running Google and Meta, and a founder who read the numbers every morning. Here is what we built around the ad account, and why the ads got better because of it.

00 / Snapshot

Client

US women's fashion retailer. Online only. About 1,400 SKUs.

Platforms

Google Ads (Performance Max, Shopping, Search) and Meta Ads (catalog + lifestyle).

Stack we built into

Shopify Plus, Google Merchant Center, a managed product feed, Meta Commerce Manager, the client's own margin spreadsheet.

Engagement

Founder-led. Ten months. Weekly reporting on the founder's numbers, not ours.

01 / The Situation

She knew her numbers before we did.

The founder tracked one blended efficiency number every day and a weekly sales target. She was analytical, cash-flow sensitive and right to be. Inventory was the binding constraint, so "spend more" was never the answer. Budget could not scale unless stock did.

  • The product feed had 0% GTIN coverage, and roughly a third of the items marked in stock were sold out. Google was paying to show products nobody could buy.
  • Paid social was sending shoppers to product pages where their size was gone. Bounce on paid social ran about double paid search.
  • Creative refresh, promo coverage and competitor awareness all lived in someone's head. Rules got agreed in email and then quietly slipped.

The account on day one

Products listed as in stock

Actually sellable
Listed in stock, sold out. About 1 in 3.

Feed and landing quality

GTIN coverage0%
Bounce rate, paid search1x
Bounce rate, paid social~2x

Google was paying to show products nobody could buy. Meta was sending shoppers to pages where their size was gone. Nothing in the account could see either.

02 / What We Built

Six systems around one ad account.

Tracking and reporting were table stakes and stayed that way. The work was everything on top.

How the six systems connect

Each one reads from the store or the ad platforms, runs every morning, and lands somewhere the founder already looks.

Reads

System

Lands in

Store stock, by variant
›
1Stock-aware catalog
›
Meta product set and a matching Merchant Center label
Store catalog and product data
›
2Feed rebuild
›
Google feed with GTINs, zero out-of-stock items, AI shopping attributes
Store orders and cost of goods
›
3Margin-first reporting
›
Contribution margin on her method, in the weekly report
Margin, efficiency, weeks of supply
›
4Scaling gates
›
One daily verdict per campaign: push, hold or pull
Meta ad age and spend, the promo calendar
›
5Creative system
›
Monday breach list, promo tasks opened the day before
Meta Ad Library, daily
›
6Competitor tracker
›
Hook rankings and a creative gallery

What the founder sees

Contribution margin

Her method

Within a point of her sheet

Scaling verdict

HOLD

3 gates, 1 move per week

Creative health

6% stale

25 new ads in 14 days

Competitors

11 tracked

Ranked by days live

Illustrative view of the client dashboard. Tracking and reporting sit underneath all of it and are not the point.

1

Stock-aware catalog

A daily job scores every product by variant availability. Single-size products qualify if in stock. Multi-size products need at least half their sizes in stock. The output is a Meta product set and a matching Merchant Center label, refreshed every morning. Roughly a third of the active catalog was excluded on day one.

Every morningAbout 1,400 products, read straight from the store.
›
Score each productSingle variant: qualifies if in stock. Multi-size: needs at least half its sizes in stock.
›
Result, day one
Included: about 2/3Held back until restock: about 1/3

2

Feed rebuild

The primary feed moved off the native Shopify push onto a managed feed. GTIN coverage went from 0% to 99%. Out-of-stock items in the feed went to zero. Supplemental feeds layer on performance buckets and, for the AI shopping surfaces, conversational product attributes. Over 80% of the catalog is approved for agentic checkout.

3

Margin-first reporting

Contribution margin computed from real cost of goods, on the founder's own methodology, validated to within a point of her spreadsheet. Sales come from the store, not from analytics. The weekly report uses her table, in her order.

4

Scaling gates

Three gates (margin %, efficiency against a seasonal bar, weeks of sellable supply) produce one daily verdict: PUSH, HOLD or PULL. Steps are capped and limited to one move per campaign per week. The verdict sits on her dashboard, so budget conversations start from the same page.

5

Creative system

Every active lifestyle ad is scored for fatigue against the two pause rules we agreed with the founder. A weekly creative review grades the account on refresh cadence, stale share, lifestyle vs catalog, creator lift and promo alignment. A promo generator reads her calendar and opens a Meta task and a Google task for every promo day, the day before. Result: lifestyle cost per purchase down 27% and ROAS up 36% in the weeks after it went live, and both creative dry spells caught and fixed within two weeks.

6

Competitor creative tracker

A daily crawl of the competitors she named, every ad classified by hook type and ranked by how long it stays live, with a gallery on her dashboard. She asked "where can I see it?" and gave her content lead access the same week. It showed that the creative competitors kept funding for six weeks or more led with fit, identity or category ownership, not an offer, while her account was over-weighted to new-drop messaging, its worst angle in August. The September creator brief moved that way. Practical styling hooks went from 6 active ads to 14, and two of them were the best new lifestyle ads of the month at one and a half to two and a half times the lifestyle average.

Inside the Tracker

What the competitors were actually running.

Eleven competitors, crawled daily from the Meta Ad Library since late June. Every ad is classified by hook type and ranked by how long it stays live, because nobody keeps funding a creative for six weeks that is not paying. The panel below is a live cut of that data, competitor names removed.

03 / What Changed

0% to 99%

GTIN coverage across the Google feed. Products that used to show as "eligible, limited" now match.

Hundreds to 0

Out-of-stock items in the Google feed. Every paid click lands on something that can be bought.

About 1/3

Of the catalog pulled from paid social until sizes restock, automatically, every morning.

1 per week

Maximum budget moves per campaign, gated daily on margin, efficiency and supply instead of argued weekly.

Every Monday

Creative pause-rule breaches listed by ad, so the rules we agreed in an email are the rules the account runs on.

0 lapsed

Promo days without coverage since the generator went live. It schedules next month's calendar task itself.

27% cheaper

Lifestyle cost per purchase after the fatigue monitor went live, with ROAS up 36%. The two weeks it flagged stale creative above 50% were the two worst lifestyle weeks of the year. Both recovered within two weeks of a refresh.

0 to 25

New lifestyle creatives per fortnight, once the review started reporting refresh cadence and stale share every Monday.

6 to 14

Active practical-styling ads after the competitor read showed durable creative leads with fit and identity, not offers. Two of the new ones were the best lifestyle ads of September.

04 / The Week It Paid for Itself

The creative ran dry twice. The second time, it took until Monday.

In mid-June, before the monitor existed, more than half of lifestyle spend was running on ads older than six weeks and cost per purchase sat above the eight-week average. Nobody saw it until the month closed. That week is why the fatigue monitor got built, and it was switched on the following Monday.

Stale creative and cost per purchase, week by week

Meta lifestyle ads, 24 weeks. Cost per purchase is an index: the eight weeks before the monitor went live = 100.

Both weeks the monitor flagged more than half of spend on ads older than six weeks were the two most expensive weeks of the year. Each was back under the pre-monitor average within two weeks of a refresh.

In early August it happened again. The creative pool ran out: no new ads in 14 days, 58% of spend on stale creative, cost per purchase 20% above the baseline. This time the Monday review flagged it that week. Her creator pipeline delivered the refresh, and within two weeks cost per purchase was 30% below the baseline. By September the account was running 25 new lifestyle ads a fortnight, and stale share has stayed under 20% since.

The first time it took a month to notice. The second time it took until Monday.

05 / What to Take From It

  • Table stakes are table stakes. Tracking and reporting are assumed. The work is what gets built on top of them.
  • Inventory, margin and creative freshness are ad levers. Build them into the account like one.
  • A founder who watches the numbers daily needs a system that watches them hourly. Then the conversation moves from "what happened" to "what next".
  • When the cause is somewhere else, the same reporting rules the ads out in a day, so the real fix gets made instead of a budget cut.

In Her Words

“Colby and his team understand the overall business and the impact that ad and budget decisions have on key metrics. This is very rare to find in an agency since most apply one size fits all approaches to ad strategies and then blame the creative or some other metric when things don’t go as planned. Colby and his team look at business metrics like NCA and “REAL” return on investment. I would highly recommend him and his team to anyone looking for an alternative to the large agencies that don’t give your business the type of personal attention it deserves. Having someone that is an extension of your own team managing your ads is invaluable.”

CEO, US women’s fashion retailer

Want this built around your account?

For businesses spending $10k or more a month on Google or Meta, or ready to. Founder-led, capped roster, Google and Meta plus the systems around them.

Book a Call