Table of Contents
- 1. Custom_label 0-4: what are we actually talking about
- 2. Why custom labels are your main lever under Performance Max
- 3. Custom_label, product_type, google_product_category: don't confuse them
- 4. Five concrete labeling strategies
- 5. Turning your labels into Performance Max ad groups
- 6. Common mistakes that sabotage the strategy
- 7. Implementation checklist
- FAQ
Introduction
You've probably already read that Performance Max no longer lets you target keywords, set bids product by product, or manually exclude placements. That's true — and it's exactly what makes one commonly overlooked attribute, custom_label 0 through 4, so strategic.
Where brand, google_product_category or gtin objectively describe a product, custom labels are the only fields in the Google Merchant Center feed that are entirely free-form, defined according to your own business logic. That freedom is what makes them, under Performance Max, the closest equivalent to manual targeting you have left: they become the structure on which Google's AI applies its bidding strategies.
This article goes further than our general guide to Performance Max and AI: it focuses exclusively on designing, implementing and exploiting custom labels, with ready-to-use labeling structures.
1. Custom_label 0-4: what are we actually talking about
The Google Merchant Center product feed accepts five optional fields dedicated to segmentation: custom_label_0, custom_label_1, custom_label_2, custom_label_3 and custom_label_4. Each accepts a short text string (100 characters maximum) per product.
Unlike almost every other attribute in the feed, these fields:
- Have no value imposed by Google. You choose the vocabulary freely: "high_margin", "VIP", "A1" — anything, as long as it's consistent across the catalog.
- Are never shown to the buyer. They don't appear in the ad, on the product page, or in search results. Their only use is internal: reporting and campaign targeting.
- Can be combined. A single product carries up to five independent labels simultaneously, letting you cross several dimensions (for example margin AND seasonality AND stock level) without ever mixing them into one field.
- Can be used as a subdivision criterion in product listing groups, on par with brand or category.
In short: Google hands you five blank columns in its product classification system. What you do with them directly determines how precisely you can later steer your campaigns.
As a reminder, these fields complement the feed's required attributes — if your feed still has gaps in gtin, availability or price, start with our guide to required GMC feed attributes before tackling advanced segmentation: an incomplete feed limits your products' eligibility regardless of how good your custom labels are.
2. Why custom labels are your main lever under Performance Max
The disappearance of manual targeting
Legacy Standard Shopping campaigns let you adjust bids product by product, exclude irrelevant keywords, or prioritize certain product groups through simple rules. Performance Max removed that direct, granular control: the AI now decides, continuously, where and how to bid, based on the signals available to it.
The problem: left unchecked, the AI optimizes a single objective — maximizing conversions (or conversion value) at your target ROAS — without knowing your margin constraints, stock levels, or commercial strategy. A low-margin product and a high-margin product converting at the same rate get the same treatment, even though their real value to your business is very different.
Listing groups: the only remaining point of control
Inside a Performance Max ad group, you can subdivide your catalog into "listing groups" based on feed attributes: brand, category, condition, or... custom label. Each subdivision can then receive:
- A different target ROAS or target CPA (set at the ad group level)
- An outright exclusion (if you don't want to spend budget on it)
- An implicit budget priority, by isolating top performers in their own ad group with its own budget
This is the exact mechanism described in the Custom Labels section of our Performance Max and AI article — here, we go beyond the general principle to detail how to design a labeling system that holds up over time, across a catalog of hundreds or thousands of SKUs.
Why standard attributes aren't enough
You might ask: why not just segment by product_type or google_product_category? Because those attributes describe what the product is, not how you want to treat it commercially. A "summer dress" and a "winter coat" belong to different categories but can share the exact same high-margin, limited-stock logic — category-based segmentation doesn't capture that. Custom labels, on the other hand, encode a commercial logic that cuts across your product taxonomy.
3. Custom_label, product_type, google_product_category: don't confuse them
This is one of the most frequent points of confusion we see when auditing GMC feeds. Here's the distinction to keep in mind.
| Attribute | Role | Who sets the value | Visible to buyer | Main use |
|---|---|---|---|---|
google_product_category |
Google's official taxonomy (fixed tree) | Google (closed list) | No | Eligibility, global classification |
product_type |
Your own internal taxonomy (free-form tree) | You (structured free text) | No | Catalog navigation, broad filtering |
custom_label_0 to 4 |
Free, multi-dimensional commercial segmentation | You (short free text) | No | Campaign targeting, reporting, bidding |
product_type typically recreates your site's navigation tree ("Shoes > Men > Running"), while custom labels apply a commercial lens ("high_margin", "black_friday", "stock_risk") that cuts across that tree. The two are complementary, not interchangeable: a product classified as "Shoes > Men > Running" can simultaneously be labeled "bestseller" in custom_label_0 and "critical_stock" in custom_label_3.
If how you structure google_product_category and product_type still feels fuzzy, our guide to product taxonomy covers how to hierarchize them correctly — a solid prerequisite before layering custom labels on top.
4. Five concrete labeling strategies
There's no single correct way to fill your five custom labels — the structure should reflect the commercial levers that actually matter for your business. Here are five proven axes, meant to be adapted, not copied verbatim.
| Custom label | Segmentation axis | Example values | Business objective |
|---|---|---|---|
custom_label_0 |
Margin level | high_margin / mid_margin / low_margin |
Prioritize budget on what actually pays off, not just on what converts |
custom_label_1 |
Seasonality | year_round / summer / winter / sale |
Turn entire segments on or off with the calendar, without touching campaign structure |
custom_label_2 |
Position on the sales curve | bestseller / mid_tail / long_tail |
Isolate catalog drivers and prevent budget from diluting into the long tail |
custom_label_3 |
Stock level | stock_ok / stock_limited / stock_critical |
Reduce ad exposure as stock runs low; avoid wasted budget on soon-to-be-unavailable items |
custom_label_4 |
Promotional status | regular_price / promo_active / final_markdown |
Adjust messaging and bid aggressiveness during promotional windows |
Breaking down the five axes
Margin (custom_label_0). This is the most underused axis, and yet the most profitable one to set up. Calculate a margin-to-selling-price ratio per product (from your ERP or PIM) and define two or three fixed thresholds, for example: high_margin (> 40%), mid_margin (20-40%), low_margin (< 20%). You can then apply a lower (more permissive) target ROAS on high-margin products and a higher (more restrictive) target ROAS on low-margin products — the AI keeps maximizing conversions, but within a framework that protects your actual profitability.
Seasonality (custom_label_1). Useful for catalogs with a strong calendar component (fashion, garden, outdoor sports). The value isn't just reporting: by isolating seasonal products in their own listing group, you can adjust their budget or target ROAS as the season approaches, without touching the rest of the catalog.
Bestseller vs. long tail (custom_label_2). Rank your products by their share of revenue or conversions over a rolling period (90 days, for example): top 20% as bestseller, next 20-60% as mid_tail, the rest as long_tail. This axis helps avoid a classic PMax trap: the AI naturally tends to concentrate budget on what already converts well, which may be exactly what you want (accelerating your drivers) — or may instead be suffocating high-potential products that simply don't have enough data yet. A dedicated long-tail listing group with a capped exploration budget avoids both extremes.
Stock (custom_label_3). For catalogs with fast stock turnover, this label should ideally be updated automatically (via a dynamic feed or the Content API), not manually. The goal: progressively reduce advertising pressure as stock declines, to avoid paying for clicks on a product that will be out of stock before delivery.
Promotion (custom_label_4). Distinguish products currently on promotion from those at regular price. This lets you build a dedicated ad group for commercial operations, with its own asset groups (visuals and copy referencing the discount) and its own time-limited budget envelope.
A methodological note: nothing forces you to use all five labels, nor to follow this exact split. Some merchants prefer combining two axes into a single label with a separator (high_margin-bestseller) to save a field; others reserve an entire label for A/B testing campaign structures. What matters most is consistency and stability of vocabulary over time.
5. Turning your labels into Performance Max ad groups
Defining labels is pointless if you don't then put them to work in your campaign structure. Here's the concrete mechanics.
Step 1 — Subdivide by listing group
In the Performance Max ad group editor, under "Product groups," subdivide your catalog by custom_label_0, custom_label_2, or any relevant combination. Each subdivision becomes a distinct listing group that you can then include in or exclude from the ad group.
Step 2 — Build differentiated asset groups
An ad group (asset group) = a set of visuals and copy + the listing groups attached to it. Design asset groups that mirror your segmentation:
PMax Campaign [Main catalog]
├── Asset group "Drivers" — custom_label_2 = bestseller
│ Bidding: aggressive target ROAS, priority budget
├── Asset group "Protected margin" — custom_label_0 = high_margin
│ Bidding: moderate target ROAS, extended budget
├── Asset group "Active promotions" — custom_label_4 = promo_active
│ Bidding: low target ROAS (volume), time-limited budget
└── Asset group "Long tail" — custom_label_2 = long_tail
Bidding: high target ROAS (protection), capped budget
Step 3 — Differentiate bidding strategies
Target ROAS (or target CPA) is set at the ad group level, not the individual listing group level. This is exactly why your custom-label subdivision needs to correspond to a segmentation that makes sense for the whole ad group — which is why crossing several labels to create homogeneous sets pays off (for example "bestseller AND high margin" in a single asset group, carrying the most aggressive bid strategy in the account).
Step 4 — Exclude what shouldn't run
A listing group can also be excluded outright from the campaign: that's the typical use of custom_label_3 = stock_critical, which you exclude to avoid wasting budget on a product that will soon be unavailable, rather than waiting for it to be automatically disapproved once stock hits zero.
To go deeper on ad groups and audience signals that complement this structure, see the corresponding section of our Performance Max and AI guide. And if your goal also includes strengthening organic visibility alongside paid campaigns, our 15 Google Shopping SEO techniques rest on the same clean-feed foundations.
6. Common mistakes that sabotage the strategy
Unfilled labels
This is the most common and most costly mistake: on a catalog of several thousand SKUs, it's common for only a fraction of products to carry custom labels — often recent additions to the feed, while the bulk of the historical catalog stays blank. The result: those products fall by default into a generic listing group ("Everything else"), with a single target ROAS that reflects neither their margin nor their strategic importance. A periodic audit of custom-label coverage (the percentage of products with each label filled in) should be part of your routine feed maintenance.
Inconsistent or stale labels
Vocabulary that drifts over time ("bestseller" written differently depending on who last updated the feed: "Bestseller," "best_seller," "BESTSELLER") silently breaks segmentation: Google treats these as distinct values, so your listing groups only capture a fraction of the intended products. Similarly, a stock or promotion label that isn't refreshed automatically quickly becomes stale — a product still marked promo_active three months after the promotion ended keeps receiving a bidding treatment that no longer applies.
Confusing custom_label with product_type
As covered in section 3, using custom labels to recreate a product taxonomy (categories, subcategories) wastes a valuable segmentation space, on top of duplicating product_type and google_product_category. Reserve custom labels for dimensions that can't be inferred from the nature of the product itself.
Over-segmentation
Conversely, creating too many distinct values per label (ten margin tiers instead of three) dilutes each listing group until it no longer has enough volume or conversion data for the bidding algorithm to learn effectively. Three to five values per label is generally the right order of magnitude for most catalogs.
Restructuring during the learning phase
Massively reclassifying listing groups in a Performance Max campaign that's mid-learning-phase resets that phase and temporarily hurts performance. Plan major label-structure changes during quiet windows (outside seasonal peaks), and give the algorithm time to readjust after any significant change.
7. Implementation checklist
- Define the priority segmentation axes for your business (margin, seasonality, bestseller, stock, promotion, or an axis specific to your industry)
- Document a fixed, standardized vocabulary for each label (closed list of values, consistent casing, no synonyms)
- Verify that your data source (ERP, PIM, CRM) can calculate each axis automatically, without manual product-by-product entry
- Automate updates to dynamic labels (stock, promotion) via the feed or the Content API, not manual file edits
- Audit coverage: what percentage of the catalog actually carries each custom label?
- Cross at least two labels to identify your highest-value combinations (e.g. bestseller + high margin)
- Build Performance Max listing groups and asset groups that mirror this segmentation
- Set differentiated target ROAS/CPA per asset group, consistent with each label's logic
- Explicitly exclude segments that shouldn't run (imminent stock-out, negative margin)
- Review the segmentation every quarter to reflect changes in your catalog and commercial strategy
- Avoid any large-scale structural change during an active learning phase
FAQ
Are custom_label 0-4 required in the GMC feed? No. They're optional attributes: your feed stays valid and your products stay eligible without them. But under Performance Max, going without them means giving up your main lever of control over budget allocation.
Do I need to fill in all five custom labels, or just some? Nothing requires using all five. It's better to make good use of two or three axes that are genuinely relevant to your business (margin and bestseller status, for example) than to mechanically fill all five fields with segmentation that ends up underused.
Can I change my custom labels without breaking campaigns that are currently running? Yes, updating the feed doesn't technically break anything — but massively reclassifying listing groups during an active learning phase can reset that phase and temporarily hurt performance. Favor gradual adjustments, or schedule major overhauls during slower periods.
How many different values can I use per label? Technically, Google imposes no limit beyond the 100-character length per value. In practice, three to five distinct values per label are enough for the vast majority of catalogs — beyond that, each listing group receives too little volume for the bidding algorithm to learn effectively.
What's the difference between custom_label and product_type?
product_type describes what the product is according to your own taxonomy (category, subcategory). Custom labels encode a cross-cutting commercial logic (margin, seasonality, stock) that doesn't depend on the nature of the product. The two are complementary and shouldn't overlap.
Do custom labels affect organic ranking or Quality Score? No. They're used only for advertiser-side reporting and campaign targeting — they have no effect on eligibility, ranking in free listings, or the relevance perceived by the query-to-product matching algorithm.
Can I automate updates to my custom labels? Yes, and it's actually recommended for any axis that changes regularly (stock, promotion, sales performance). Most e-commerce platforms and feed management tools can calculate these values automatically from rules and push them into the feed on every refresh, without manual intervention.
Conclusion
Under Performance Max, your feed's structure is your targeting strategy. Custom_label 0 through 4 are the only space where you freely encode a commercial logic — margin, seasonality, position on the sales curve, stock, promotion — that Google's algorithm can't infer on its own. Well designed, kept consistent, and maintained over time, they turn a black box into a system you actually steer, product by product, without ever touching a keyword.
Before restructuring your campaigns, check the current state of your feed with MyGoogle's free audit — in a few seconds, the tool identifies missing attributes, inconsistencies, and priority segmentation opportunities across your catalog.