All case studies
The Performance Max structure we put on every account over $50K a month - case study cover
EcommerceIllustrative example8 weeks

The Performance Max structure we put on every account over $50K a month

One campaign for everything is the problem. Here's the build that replaced it.

PMax + Shopping ROAS

2.1x → 2.9x

Revenue

+38%

Ad spend

Flat

High-margin SKU share of spend

41% → 63%

Chapter 01

Why one Performance Max campaign stops scaling

Performance Max is good at one thing: optimising toward the goal you give it across everything inside the campaign. The trap is that "everything inside the campaign" usually means your whole catalogue, every margin, every intent, lumped together. So the bidder sees a clearance item at 12% margin and a hero product at 60% margin as the same opportunity because they convert at a similar ROAS. It averages, and average is where scale goes to die.

This account had one PMax campaign holding the entire catalogue, brand traffic bleeding in and inflating the reported ROAS, and budget drifting to whatever happened to be cheapest that week. It was profitable enough to leave alone, which is exactly why it had been left alone. It had plateaued at 2.1x.

The shape of the problem

One campaign, no control

  • Every SKU in a single PMax, margins from 8% to 60% averaged into one target
  • Brand traffic inflating the reported ROAS
  • Budget drifting to whatever was cheapest, not most profitable
  • No visibility into the Search, Shopping, and Display split

Tiered, fed, and visible

  • Three campaigns split by margin tier, each with its own tROAS
  • Brand excluded at the account and campaign level
  • Custom labels routing every SKU to the right tier
  • A channel script showing exactly where spend lands

Chapter 02

The build, step by step

This is the full structure. Nothing here is secret to us, it's just rarely done properly.

Seven moves that turned the black box back into a system

  1. 1

    Split into campaigns by margin tier

    Three PMax campaigns: high margin we want to scale, mid margin we run balanced, and low or clearance margin we protect with a high tROAS. Each gets its own budget and its own target so the bidder optimises each pool on its real economics.

  2. 2

    Theme asset groups by category inside each campaign

    Asset groups organise creative and search themes, not budget. One asset group per coherent product set so the images, headlines, and search themes actually match what's being sold. Mismatched asset groups teach the system the wrong associations.

  3. 3

    Build a supplemental feed with custom labels

    custom_label_0 through 4 carry margin tier, bestseller flag, price band, season or promo, and new-versus-evergreen. This is the wiring that lets you route SKUs into the right campaign without editing your store export.

  4. 4

    Exclude brand at both levels

    Account-level brand exclusion list plus a campaign brand-term list, so PMax stops claiming branded conversions and the reported ROAS reflects real prospecting.

  5. 5

    Feed real audience signals

    Past purchasers, high-value customer lists, and your best converting search audiences as signals. Signals don't restrict PMax, they tell it where to start looking, which shortens the learning phase.

  6. 6

    Run a feed-only layer for the long tail

    A campaign or asset group with only the feed and no custom assets behaves like Smart Shopping and surfaces thousands of SKUs you'll never build creative for. It catches the long-tail demand your asset-rich heroes don't.

  7. 7

    Pull the channel split with a script

    PMax hides whether your money is going to high-intent Shopping and Search or cheap Display impressions. A script surfaces it. If too much is landing on Display, your asset and audience signals need work.

The custom-label map (your feed wiring)

LabelWhat it holdsHow we use it
custom_label_0Margin tier: A / B / CRoutes each SKU into the right campaign
custom_label_1Bestseller flagPriority products inside an asset group
custom_label_2Price bandSeparates AOV bands for cleaner bidding
custom_label_3Season / promoIsolates seasonal stock from evergreen
custom_label_4New vs evergreenGives new SKUs their own learning space

Set this once in a supplemental feed and the whole structure becomes drag-and-drop.

The three-campaign split

CampaignProductstROASRole
PMax — High margincustom_label_0 = ALower targetScale hard, this is where growth lives
PMax — Mid margincustom_label_0 = BBalanced targetSteady volume and contribution
PMax — Low / clearancecustom_label_0 = CHigh targetProtect margin, don't subsidise junk
Feed-only long tailEverything elseAccount averageDiscovery and catalogue depth

Chapter 03

Eight-week results

Before and after

MetricBeforeAfter (week 8)
PMax + Shopping ROAS2.1x2.9x
RevenueBaseline+38%
Ad spend$70K / month$70K / month
High-margin SKU share of spend41%63%

Same budget. The bidder just stopped treating a clearance mug like a hero sofa.

I'd been told PMax was a black box you just feed and pray. The structure made it a system again. We can point at which tier is carrying the month.
Head of growth

Questions we get asked about this

How many Performance Max campaigns should I run?

As many as you have distinct margin or strategy tiers, and no more. For most accounts that's two or three: high margin you want to scale, low margin you want to protect, and sometimes a seasonal or new-product push. The mistake is one campaign (no control) or twenty (no learning). Each campaign needs enough conversions to learn, so don't split past the point where every campaign clears roughly 30 conversions a month.

Should I segment with asset groups or separate campaigns?

Both, for different jobs. Campaigns separate by budget and target, so margin tiers and brand-versus-non-brand live at the campaign level. Asset groups separate by theme inside a campaign so creative and search themes match the product set. Don't try to control budget with asset groups, you can't. Budget lives on the campaign.

Should I use feed-only Performance Max?

Yes, for catalogue depth. A campaign or asset group with only the feed and no images, video, or text behaves like Smart Shopping and surfaces your long tail without you building creative for thousands of SKUs. Run it alongside asset-rich campaigns for your heroes, not instead of them.

How do I see what PMax is actually doing?

Use the channel and placement scripts plus the asset-group and listing-group reports. PMax hides the Search, Shopping, and Display split by default. A simple script pulls it so you can see whether budget is going to cheap Display impressions instead of high-intent Shopping and Search. If it is, your asset signals and audience signals need work.

About these numbers

Illustrative example. The campaign structure shown is the exact build we deploy. The figures are representative of what it produces for accounts in this spend band over an eight-week rebuild, not an export from one client's account.

More breakdowns on the daily newsletter

Read next

Want this run on your account?

Free 15-minute audit. No deck. No pitch. We screenshare your account, run the same audit playbook these case studies came out of, and walk away leaving you the doc.

Book the call