Product Metrics

Search

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.

By , FounderUpdated 4 min read

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
Bar chart of contribution before ads against ad spend for six products, illustrative data: Everyday Sock (€240 against €300) and Gym Bag (€250 against €500) spend more than they contribute.
Everyday Sock spends €300 against €240 contribution before ads; Gym Bag spends €500 against €250. Together they lose €310 after ads.Source: Illustrative data. Contribution before ads = revenue excluding VAT × contribution margin. All six products use the same reporting period.
Show the data
The account's profit hides two products spending above contribution
ProductContribution before adsAd 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
Verify a label before using it to move products
  1. Agree the definitionChoose a slot, its one writer and the decision it drives.
  2. 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.
  3. Check product membershipSubdivide the relevant product or listing group on the label. Check included, excluded and everything-else products across overlapping campaigns.
  4. 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.

Written by

, Founder of Product Metrics

Linkedin

Keep reading.

Frequently asked questions.

Should I segment products by margin or by ROAS?

By both, through POAS (ROAS × contribution margin). A high margin doesn't prove a product sells, and a high ROAS doesn't prove it covers its costs; POAS above 1 shows it does both.

Can two tools write the same custom label?

They can, but each overwrites the other. Give every label slot one writer, and check the processed value in Merchant Center after each change.

How often should I review the campaign split?

Check eligibility and label coverage weekly, and contribution after ads once the conversion delay has passed, usually monthly. Recalculate the floors whenever costs change.

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.

Find your hidden profit30-second estimate · no login
Analyse your products for freeFree analysis, no credit card

Questions, or want to spar about your products? Book a demo: a video call with Berend, then a demo account.