---
title: "Google Shopping and PMax campaign structure by profit"
description: "Google Shopping and PMax campaign structure by profit: when to split, how custom labels select products, and a six-product worked example."
canonical: "https://www.productmetrics.io/blog/product-segmentation-google-shopping-pmax"
pageType: article
language: en
publisher: "Product Metrics"
author: "Berend Vrakking"
datePublished: 2026-10-20
dateModified: 2026-10-23
image: "https://www.productmetrics.io/og/blog/product-segmentation-google-shopping-pmax.png"
---

> Content index: https://www.productmetrics.io/llms.txt

# Google Shopping and PMax campaign structure by profit

## Key takeaways

- In our six-product example, an account ROAS of 3.36 hides two products that lose €310 after ads, while four others contribute €735.
- Split a campaign only when a group needs its own budget or target; asset groups and product groups don't have either.
- Custom labels select the products in Standard Shopping product groups and Performance Max listing groups, so they carry the structure, not the campaign names.

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](https://www.productmetrics.io/glossary/custom-labels "Custom labels are five attributes in a product feed, custom_label_0 to custom_label_4, that you fill with your own text to group products in campaigns.") 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](https://www.productmetrics.io/glossary/performance-max "Performance Max is a goal-based Google Ads campaign type that uses automation to reach customers across Google advertising channels.") 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](https://www.productmetrics.io/glossary/roas "Return on ad spend (ROAS) is the revenue your ads generate for every euro you spend on them.") of 3.36:

| Product (illustrative) | Revenue | Ad spend | [Contribution margin](https://www.productmetrics.io/glossary/contribution-margin "Contribution margin is the revenue from a sale minus its variable costs, such as product cost, shipping, payment fees and returns.") | 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 |

**Figure: The account's profit hides two products spending above contribution.** Everyday Sock spends €300 against €240 contribution before ads; Gym Bag spends €500 against €250. Together they lose €310 after ads.

![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.](https://www.productmetrics.io/images/blog/product-segmentation-google-shopping-pmax/contribution-and-spend.png)

| 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 |

_Source: Illustrative data. Contribution before ads = revenue excluding VAT × contribution margin. All six products use the same reporting period._

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](https://www.productmetrics.io/break-even-roas-calculator) gives each product's floor.

Efficiency and volume are different questions too. Water Bottle runs at a [POAS](https://www.productmetrics.io/glossary/poas "Profit on ad spend (POAS) is contribution profit before advertising divided by ad spend.") 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](https://www.productmetrics.io/blog/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](https://support.google.com/merchants/answer/6324473?hl=en-GB)):

| 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](https://www.productmetrics.io/blog/ecommerce-inventory-planning) before you label anything.

Keep each meaning in its own slot rather than one long combined string. The [six Product Metrics segments](https://www.productmetrics.io/product-segmentation#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](https://support.google.com/merchants/answer/14990942?hl=en)):

```text
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 definition.** Choose a slot, its one writer and the decision it drives.
2. **Match and inspect the source.** Join 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 membership.** Subdivide the relevant product or listing group on the label. Check included, excluded and everything-else products across overlapping campaigns.
4. **Review the commercial result.** Keep the prior settings and change log. Review contribution after ads after the conversion delay, with stock and measurement checked.

The free [campaign label planner](https://www.productmetrics.io/downloads/shopping-pmax-label-planner.xlsx) 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](https://support.google.com/google-ads/answer/6275317?hl=en) in an ad group | [Listing groups](https://support.google.com/google-ads/answer/11596074?hl=en) 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](https://support.google.com/google-ads/answer/13810170?hl=en)). Check which campaigns actually include each product, "everything else" groups included; [Performance Max for ecommerce](https://www.productmetrics.io/blog/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](https://www.productmetrics.io/product-journeys) shows purchases of other products after a first click. Keep thin-data products together until there is enough to separate them.

> **Get more revenue out of Google Shopping.** Every product segmented and labelled in Merchant Center, so your top performers get more priority. [Analyse your products for free](https://app.productmetrics.io/) Log in with Google, no credit card.

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](https://www.productmetrics.io/downloads/shopping-pmax-label-planner.xlsx) with your own products, find the ones spending above their contribution, and give them their own decision before you add a single campaign.

## 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.

## Keep reading.

- [Google Shopping Feed Optimisation: 12 Fixes by Profit (2026)](https://www.productmetrics.io/google-shopping-feed/optimization)
- [How to optimise Google Shopping ads, product by product](https://www.productmetrics.io/blog/optimize-google-shopping-ads)
- [PIM to Google Merchant Center: the product-data workflow](https://www.productmetrics.io/blog/pim-to-google-merchant-center)

---

Written by Berend Vrakking, founder of Product Metrics. Last updated 2026-10-23.

HTML version: https://www.productmetrics.io/blog/product-segmentation-google-shopping-pmax
