PPC Rebels article cover: custom labels in the product feed — segmenting Shopping, PMax and Demand Gen in 2026

Custom Labels in Your Product Feed 2026: Segmenting Shopping, Performance Max and Demand Gen by Margin

The default shopping setup looks like this: the whole catalogue, one target ROAS, one budget — and Merchant Center custom labels are the one lever that changes it. Inside that setup sits a product with an 8% margin next to one with 55%, a bestseller next to an item that has not sold since spring. The algorithm optimises honestly toward the goal you set, and quite correctly pushes budget where revenue is highest. The problem is that revenue and profit are different things — and there is no field in the feed telling Google where your money actually is.

There is. It is called custom_label_0 … custom_label_4: five free-form attributes you fill in yourself and then slice campaigns by. It is the cheapest control lever in product advertising — no development work, no budget, just one well-designed scheme. Below: the scheme, the limits, four ways to populate labels without an engineer, and what changed in 2026.

Merchant Center custom labels: what they are and what the limits are

A custom label is a product attribute in your Merchant Center feed whose value you invent. Google does not interpret the contents — to the system it is just a string you can filter and group by. That is exactly why they are powerful: you put in the business logic Google has no way of knowing.

The constraints worth knowing before you design a scheme:

  • five attributes per product: custom_label_0, custom_label_1, custom_label_2, custom_label_3, custom_label_4;
  • one value per attribute per product — you cannot store both “high margin” and “clearance” in custom_label_0;
  • up to 1,000 unique values per attribute per account;
  • a combined maximum of 5,000 values across all five attributes;
  • each value is a string of 1 to 100 characters.

A thousand unique values sounds generous, and that is the trap. Put a price or an SKU into a label and you will exhaust the limit in a day while creating a structure nobody can manage. The working rule is three to seven values per attribute. A label exists to group, not to store data.

What changed in 2026: labels arrive in Demand Gen

Custom labels used to work only in Performance Max and Standard Shopping campaigns. On June 28, 2026 Google updated the product data specification: custom_label values can now be used as filters in Demand Gen as well.

The practical consequence is larger than it sounds. Demand Gen is upper funnel — YouTube, Shorts, Discover, Gmail. Until now, running a product feed there was effectively an all-or-nothing decision, because there was no way to slice it. Now you can push only your “magnet” products into Demand Gen — the visually strong, recognisable, healthy-margin ones — while the low-margin tail stays in Search and Shopping, where demand already exists. The mechanics of the channel itself are covered in our guide to Demand Gen in Google Ads.

Five labelling axes that actually earn their place

Five labels means five dimensions, but you do not need to fill them all. Two or three axes maintained automatically beat five filled in once and forgotten. Here is a scheme to start from.

Attribute Axis Example values Why
custom_label_0 Margin margin_high, margin_mid, margin_low, margin_negative Different ROAS targets for different economics
custom_label_1 Velocity bestseller, steady, slow, dead Separate real demand from dead weight
custom_label_2 Season / occasion allyear, autumn, bts, bf, holiday Switch groups on and off with one filter
custom_label_3 Price band price_0_50, price_50_150, price_150_500, price_500plus Manage AOV and bid structure
custom_label_4 Lifecycle / stock new, core, clearance, lowstock Stop scaling items you are about to run out of

How to build margin buckets

Margin labelling only helps when there is arithmetic behind it rather than intuition. The minimum viable ROAS for a product is trivial to calculate:

ROAS_min = 1 / margin

At a 20% margin, minimum viable ROAS is 5.0 — every dollar of ad spend needs five dollars of revenue just to break even on gross profit. At a 50% margin, 2.0 is enough. Which is precisely why a single catalogue-wide target ROAS is always wrong: it is simultaneously too lenient for thin-margin products and too strict for fat-margin ones, which is why the profitable half of your catalogue quietly gets fewer impressions.

Do not build buckets on round numbers. Look at the actual margin distribution across your catalogue and cut so each bucket carries a comparable share of revenue. Turning margin into an allowable cost per click is covered in our piece on media buying unit economics.

Velocity: the label that saves the most money

The second most valuable axis is sales speed. A workable scheme: take 60–90 days of sales and split the catalogue into four groups — the top ~20% of revenue, the middle, the slow movers and the dead (zero sales in the window). Treat those cut-offs as a starting benchmark; the right boundaries depend on your niche and catalogue depth.

Why it matters: dead products almost always absorb a meaningful share of impressions in a whole-catalogue campaign, simply because there are so many of them. Moving them into a separate campaign with a minimal target — or excluding them outright — is usually the single fastest economic improvement available in product advertising.

Four ways to populate labels without an engineer

1. Feed rules in Merchant Center

Feed rules derive label values from attributes you already have: price, availability, brand, category, product_type. For example: “if price > 500 then custom_label_3 = price_500plus.” Upside: nothing to change on the website. Downside: rules can only use what is already in the feed — margin and 90-day sales are not in there.

2. A supplemental feed

The most practical route for margin and velocity. Build a separate table with two columns: id and custom_label_0. It joins the primary feed on id and writes the values in without touching the site export. The source can be a Google Sheet, which turns label maintenance into a merchandiser’s task rather than a developer ticket.

3. Google Sheets with scheduled refresh

A variant of the above: a sheet that receives a daily dump of sales and cost of goods from your ERP, with formulas converting them into label values, fetched by Merchant Center on a schedule. Only two things go wrong here, but both are expensive: id formatting drifts (extra spaces, changed case) and the sheet goes stale when the upstream export silently stops while the labels stay confidently wrong.

4. Via API from your back office

The proper solution for large catalogues where labels must update daily with no human in the loop. Worth remembering that all product integration is moving to the new interface in 2026 — what changed and how to audit your feeds is covered in our Merchant API migration guide.

A label refreshed quarterly is lying by the end of the quarter. If you cannot commit to at least weekly automated updates, start with one slow-moving axis — season or lifecycle — where values change predictably.

Using labels in campaigns

Standard Shopping

In listing groups you subdivide inventory by label and assign different bids or different targets. The classic working structure is three campaigns: “bestsellers plus high margin” with priority budget, “core catalogue,” and “tail” on a minimal target. Why feed structure decides the auction more than bids do is covered in our guide to Google Shopping and product feeds.

Standard Shopping also offers campaign priority. Combining priorities with negative keywords lets generic queries flow into the broad-catalogue campaign while brand and product queries land in the high-margin one. Labels determine which product is eligible where, so the quality of your labelling decides whether that structure works or turns into overlapping impressions.

Performance Max

Here labels are close to the only lever you have over where budget goes. Inventory is split into asset groups by label value, and campaigns are separated by margin bucket. One practice saves a lot of grief: never mix products with incompatible economics inside one PMax campaign. The algorithm will find the easiest route to the target, and that route runs straight through your thinnest margins. More on the available controls in our Performance Max guide.

Demand Gen

Since June 2026, label filtering works here too. The selection logic differs: Demand Gen creates demand rather than harvesting it, so the products that belong there are the ones that photograph well, explain themselves quickly, and carry enough margin to survive a longer path to purchase.

Verifying that your labelling actually landed

Several routine failures sit between “uploaded the supplemental feed” and “labels are working.” The check takes ten minutes and is worth running after every schema change.

  1. Coverage. In Merchant Center, check how many products have the attribute populated. Sixty percent coverage means an id mismatch — usually different casing or trailing whitespace between the supplemental and primary feed.
  2. Unique values. Export the list of values. If you see “margin_high,” “Margin_High” and “margin high,” someone has been editing by hand. Google treats those as three separate groups.
  3. Freshness. Check the last successful fetch date on the supplemental feed. Schedules fail quietly for months: the feed stays valid, the values just stop being current.
  4. Impressions per group. Open your listing groups and confirm every group has inventory and impressions. A group with zero products is nearly always a typo in a filter or a renamed value.

Reporting on labels

Labelling pays off only when someone reads the reports built on it. Segment by custom label in three places.

  • The product report in-platform — segmentation by label shows cost, conversions and value per bucket. It is the first place to look when someone asks why ROAS dropped.
  • Your dashboard — a dedicated row for spend and profit by margin bucket. This is where you notice budget gradually migrating into the thin-margin group while blended ROAS looks stable.
  • A weekly stock reconciliation — items flagged low stock should not sit in the priority-budget group. That is the most common leak: advertising scaling a product with three days of inventory left.

A useful habit: track not just ROAS per bucket, but each bucket’s share of spend. If 60% of budget lands in the low-margin group, no account-level average ROAS makes that acceptable.

Five labelling mistakes

  1. Too granular a scheme. Twenty values in one label means twenty groups, each with too little data for the algorithm to learn anything. Subdivide only while each group retains statistical substance.
  2. Labels as a reference field. SKUs, suppliers and dates do not belong in custom labels — other attributes and reports exist for that. A label exists to slice campaigns.
  3. Labelling with no application plan. If campaign structure did not change after labelling, the exercise was wasted. Schema and structure are designed together.
  4. Renaming values on live campaigns. Changing “high” to “margin_high” instantly empties the listing group — the filter no longer matches anything. Add the new value first, switch the filter, confirm delivery, then remove the old one.
  5. Ignoring disapprovals. Perfect labelling is worthless if half the group fails feed review and never serves. Diagnostics are in our piece on Merchant Center product disapprovals.

A one-week rollout plan

  1. Day 1. Export the catalogue with cost of goods and 90 days of sales. Look at the margin and revenue distribution — the bucket boundaries will suggest themselves.
  2. Day 2. Fix the schema: which axis lives in which label, which values exist, who updates them and how often. Write it down; six months later this is what saves you.
  3. Day 3. Build the supplemental feed with id and two labels (margin, velocity), attach it, and check coverage — how many products got a value and how many stayed empty.
  4. Day 4. Restructure campaigns around the labels. Do not change targets at the same time — structure first, targets second, or you will never know what caused what.
  5. Day 5. Set distinct ROAS targets per margin bucket using the minimum-viable ROAS formula, with headroom for operating costs.
  6. Days 6–7. Automate the label refresh and add a label breakdown to reporting — the dashboard side is covered in our guide to Google Ads reporting in Data Studio.

Do not judge before-and-after by eye. Restructuring product campaigns is an ideal candidate for a controlled test — how to run one so the result means something is covered in our piece on experiments in Google Ads.

What comes next

Feed labelling is the foundation under both product advertising and reporting. The next layer is creative, which Performance Max and Demand Gen consume in volume — production and testing are covered in Asset Studio and Gemini Omni. Every other technical breakdown lives in the PPC Rebels blog. If you run product campaigns across several accounts and keep hitting access limits, look at agency Google Ads accounts and the rest of the PPC Rebels services.

FAQ: custom labels in the product feed

How many custom labels are there and what are the limits?

Five attributes, custom_label_0 through custom_label_4. One value per attribute per product, up to 1,000 unique values per attribute per account and 5,000 across all five combined. Values are strings of 1 to 100 characters.

Do custom labels work in Demand Gen?

Yes. Following the product data specification update in late June 2026, custom_label values can be used as filters in Demand Gen. Previously they were supported only in Performance Max and Standard Shopping.

Can one label hold several values?

No — one value per attribute per product. If you need two characteristics at once, use two labels rather than a compound string. Combined values like “high_bestseller” multiply into dozens of unique groups and become unmanageable fast.

Do labels affect ranking or cost per click?

Not directly. Google does not interpret label contents. The effect is indirect: by separating products you give them different bids, targets and budgets, and that changes impression distribution.

How do I get margin into a label if it is not in the site feed?

Through a supplemental feed: a two-column table with id and custom_label, joined to the primary feed. A Google Sheet fed by your back office export is the usual source.

How often should label values refresh?

It depends on the axis. Season and lifecycle: weekly is fine. Velocity and stock: daily, or you will keep scaling products you no longer have. Margin: whenever purchase prices change.

What happens if I rename a label value?

Every listing group and filter pointing at the old value loses its inventory immediately, and the campaign loses delivery. Correct order: add the new value, switch the filters, confirm impressions, then retire the old one.

How many values should one label have?

Three to seven is the practical benchmark. Fewer than three rarely gives you control; more than seven thins the data per group until automated bidding stops learning.

Should each label value get its own campaign?

Not always. A separate campaign is justified when a group needs its own budget or a fundamentally different target. If the only difference is bid level, subdividing inside one campaign is enough.

What about products with no label value?

Give them an explicit value such as “unlabeled” rather than leaving the field empty. Blank fields are harder to spot in reporting, and unlabelled products tend to fall quietly into the broadest group with a target that does not suit them.

Why did some products not receive a label?

In almost every case it is an id mismatch between the primary and supplemental feed: different casing, trailing spaces, a differing prefix. Check attribute coverage in Merchant Center and compare a few ids character by character.

Can labels be used to exclude products from advertising?

Yes, and it is one of the most common uses. Products labelled “dead” or “lowstock” are either excluded from listing groups or moved into a minimal-budget campaign. Removing them from the feed entirely is usually unnecessary — they still work in free listings.

The takeaway: custom labels do not improve advertising by themselves. They give you a way to tell the algorithm something it cannot know — where the profit in your catalogue actually sits. What you do with that is the part that pays.

Similar Posts