Google Shopping and PMax campaign structure by profit
Google Shopping and PMax campaign structure by profit: when to split, how custom labels select products, and a six-product worked example.
An account ROAS of 3.36 can look healthy while two of its products lose €310 after ads. Campaign structure is how you stop funding them: group products by what they earn, then give each group the budget and target it can afford.
One campaign is the default, and custom labels decide which products each later campaign contains.
Which campaign structure fits Shopping and Performance Max?
The simplest one that supports a different decision. Each campaign is another budget and another set of results to judge, so it has to earn its place.
| Structure | Useful when | Main risk |
|---|---|---|
| One campaign | Products share an objective and data is limited | Different margins disappear in the average |
| Category or brand groups | Products need different assets or reporting | A category can still mix margins |
| Margin or profit groups | Groups need different targets | High margin mistaken for strong demand |
| Performance tiers | Clicks and return justify different priority | Too many small campaigns |
An asset group in Performance Max organises assets and products but has no budget of its own; a Standard Shopping product group is not a campaign either. If two groups need different budgets or targets, they need different campaigns.
Which products does the account average hide?
The ones whose ROAS clears the account target but not their own break-even, 1 ÷ contribution margin. Six products earn €11,100 of revenue excl. VAT on €3,300 of ads, a ROAS of 3.36:
| Product (illustrative) | Revenue | Ad spend | Contribution margin | ROAS | Contribution after ads |
|---|---|---|---|---|---|
| Trail Runner 2 | €4,500.00 | €1,000.00 | 30% | 4.5 | €350.00 |
| Winter Boot | €2,400.00 | €800.00 | 40% | 3 | €160.00 |
| Everyday Sock | €1,200.00 | €300.00 | 20% | 4 | −€60.00 |
| Rain Jacket | €1,500.00 | €600.00 | 50% | 2.5 | €150.00 |
| Gym Bag | €1,000.00 | €500.00 | 25% | 2 | −€250.00 |
| Water Bottle | €500.00 | €100.00 | 35% | 5 | €75.00 |

Show the dataHide the data
| Product | Contribution before ads | Ad spend |
|---|---|---|
| Trail Runner 2 | €1,350 | €1,000 |
| Winter Boot | €960 | €800 |
| Everyday Sock | €240 | €300 |
| Rain Jacket | €750 | €600 |
| Gym Bag | €250 | €500 |
| Water Bottle | €175 | €100 |
Everyday Sock beats Rain Jacket on ROAS and still loses money: its 20% margin needs a ROAS of 5, Rain Jacket’s 50% only 2. The break-even ROAS calculator gives each product’s floor.
Efficiency and volume are different questions too. Water Bottle runs at a POAS of 1.75 and contributes €75; Trail Runner 2 runs at 1.35 and contributes €350.
Use one basis throughout: revenue and margin both excl. VAT, and advertising left out of the margin you divide by (POAS vs ROAS).
How do you plan custom labels for the split?
Give each of the five slots one meaning and one writer. Google allows custom_label_0 to custom_label_4, one value each per product (custom label):
| Slot | Example value | Meaning | Writer |
|---|---|---|---|
custom_label_0 |
stars |
Performance segment by clicks and return | Product Metrics, approved by you |
custom_label_1 |
margin_high |
Contribution-margin band | Cost and feed owners |
custom_label_2 |
stock_review |
Stock rule | Inventory owner |
custom_label_3 |
winter |
Season | Product-data team |
custom_label_4 |
clearance |
Lifecycle | Merchandising |
Which products a stock rule should flag is a per-product call: plan replenishment around profit and stock cover before you label anything.
Keep each meaning in its own slot rather than one long combined string. The six Product Metrics segments use ad clicks and return (ROAS, or POAS with margins), so a high-margin product isn’t automatically a Star.
A supplemental source can add a label to an existing product, matched on its ID (supplemental sources):
id custom_label_0
DEMO-001 stars
DEMO-002 question_marks
DEMO-003 dogs
- Agree the definitionChoose a slot, its one writer and the decision it drives.
- Match and inspect the sourceJoin the supplemental row to the existing product using its ID, language and data source label. Inspect the processed custom label in Merchant Center.
- Check product membershipSubdivide the relevant product or listing group on the label. Check included, excluded and everything-else products across overlapping campaigns.
- Review the commercial resultKeep the prior settings and change log. Review contribution after ads after the conversion delay, with stock and measurement checked.
The free campaign label planner holds the six-product example, a five-slot plan and the formulas.
How do Standard Shopping and Performance Max differ when you split?
They select products differently and own budgets the same way:
| Control | Standard Shopping | Performance Max |
|---|---|---|
| Product subdivision | Product groups in an ad group | Listing groups in an asset group |
| Separate budget | A separate campaign | A separate campaign |
| Creative | Built from product data | Asset groups add assets |
| Return objective | The campaign’s bid strategy | The campaign’s bidding objective and target |
Performance Max doesn’t automatically outrank Standard Shopping for the same products: overlapping campaigns compete on Ad Rank (campaign interaction). Check which campaigns actually include each product, “everything else” groups included; Performance Max for ecommerce covers exclusions.
When should you include, exclude, split or wait?
When the evidence supports that move, and not before:
| Decision | Evidence you need | Check first |
|---|---|---|
| Keep | Eligible, measured, economics fit the objective | The intended group includes it |
| Lower priority or exclude | Return below its own floor on mature data | Label and exclusion scope |
| Split | A group needs its own budget or target and keeps enough data | What each campaign has left to learn from |
| Wait | Few clicks, missing costs, a recent change or late conversions | Next review date |
Before excluding an entry product, check where its visitors go: Product Journeys shows purchases of other products after a first click. Keep thin-data products together until there is enough to separate them.
Log every change with its date, products, old and new values and reason, and judge it after the conversion delay. A higher POAS with much less contribution may miss the goal.
Final thoughts
A structure is worth its maintenance only when each part makes a different decision; most accounts need fewer campaigns and better labels.
Fill in the label planner with your own products, find the ones spending above their contribution, and give them their own decision before you add a single campaign.
Keep reading.
Google Shopping Feed Optimisation: 12 Fixes by Profit (2026)
Google Shopping feed optimisation in 12 fixes: Merchant Center errors, titles, identifiers, images and labels, prioritised by profit, with a free CSV checklist.
How to optimise Google Shopping ads, product by product
How to optimise Google Shopping ads: fix the feed, check each product's ROAS against break-even, segment, structure. Ten-product example.
PIM to Google Merchant Center: the product-data workflow
PIM to Google Merchant Center: map PIM fields to Google's attributes, trace feed errors to their owner and link custom labels to profit, with free worksheets.
Frequently asked questions.
Should I segment products by margin or by ROAS?
Can two tools write the same custom label?
How often should I review the campaign split?
See which of your products to push, fix or pause. Start with your own products, or a 30-second estimate.
Check one product first: work out its break-even ROAS in the calculator. Then see where all your products stand.
Questions, or want to spar about your products? Book a demo: a video call with Berend, then a demo account.