Attribute Guide

Google Shopping Custom Label Attribute: Campaign Segmentation Guide (0–4)

Complete guide to custom_label_0 through custom_label_4 in Google Merchant Center. How all 5 label slots work, top segmentation strategies for bidding and…

Updated 8 min readBoostora Team
Custom Labels — Blind Bidding vs. Granular Campaign Control

Products segmented by margin + season

Bids: €0.40–€1.60example-store.com
margin_high → €1.60margin_low → €0.40clearance → €0.25seasonal_peak → €1.20

Each segment has the right bid. Margin-driven, performance-aware, seasonally adjusted — without touching product data.

All products in one product group

Bid: €0.80 (flat)example-store.com

High-margin products get the same bid as loss-leaders. Seasonal bestsellers are capped by average-performers. No way to separate promotions from full-price items. Blind bidding.

Custom labels are invisible to shoppers — they exist solely to give your Google Ads campaigns a way to slice the product catalog into meaningful groups for bidding, budgeting, and reporting. Five independent slots (0–4) let you layer multiple segmentation dimensions simultaneously on every product.

What are custom labels?

Custom labels (custom_label_0 through custom_label_4) are five optional free-text attributes in Google Merchant Center that let you attach your own internal categorization to products. They are never shown to shoppers — they exist exclusively to give your Google Ads campaigns a structured way to segment your product catalog for bidding, budgeting, exclusion, and reporting.

Without custom labels, Google Ads campaigns can only segment products by the standard attributes Google knows — category, brand, product type, item ID, and condition. These are useful but often don’t reflect the dimensions that actually drive smart bidding decisions in your business: margin, seasonality, promotional status, sell-through rate, or competitive positioning. Custom labels bridge that gap by letting you bring your business logic into your campaign structure.

Technical specifications

Feed namescustom_label_0, custom_label_1, custom_label_2, custom_label_3, custom_label_4
RequiredOptional
Max length per label100 characters
Max unique values per slot1,000
Total slots5 (independent — each can have a different value)
FormatFree-text string; no restricted vocabulary
Shopper visibilityNot visible — internal use only
Campaign applicabilityShopping campaigns, Performance Max, Dynamic Remarketing audiences

Where custom labels are used

  • Shopping Campaigns — product group segmentation: The core use case. In Standard Shopping campaigns, you can subdivide product groups by custom label, creating separate bidding tiers within one campaign. For example, one campaign subdivided by custom_label_0 (margin tier) gives you distinct CPC bids for high-margin vs. low-margin products without maintaining separate campaigns.

  • Performance Max — listing group filters and asset group signals: In PMax campaigns, custom labels let you define listing groups (product subsets) and use label values as signals when creating asset groups. This is one of the primary mechanisms to maintain some segmentation control in a campaign type that otherwise runs almost fully automated.

  • Google Ads — reporting filters: In Google Ads reports, you can filter and segment performance data by custom label values. This lets you see ROAS, cost, and conversion data broken down by your own business dimensions (e.g., ROAS by margin tier, spend by promotional status) without needing to build separate campaigns.

  • Merchant Center — product filtering: Custom labels are available as filter fields in Merchant Center’s product list view, making it easier to audit which products carry which labels and spot missing or incorrect values.

Rules

  • 100 characters maximum per label value — Values exceeding this are truncated without warning.

  • Maximum 1,000 unique values per slot — Use categorical values (e.g., “high / mid / low”) not unique identifiers. Values beyond 1,000 are silently ignored.

  • No restricted vocabulary — Unlike most GMC attributes, Google imposes no requirements on what values you use. Any string within the character limit is valid.

  • Five independent slots — You can use all five simultaneously on a single product. Each slot is independent; values in one slot have no effect on others.

  • Not inherited — Custom labels are not inherited from parent products to variants. Each variant in a product group must have its own label values if labels are being used for that product family.

Best practices

The five-slot framework: one dimension per slot

Assign each slot a single, consistent business dimension and document it in your team playbook. A recommended starting framework:

SlotDimensionExample values
custom_label_0Margin tiermargin_high, margin_mid, margin_low, margin_negative
custom_label_1Seasonalityevergreen, seasonal_peak, seasonal_off, christmas, summer
custom_label_2Promotion/price statusfull_price, on_sale, clearance, bundle_deal, promo_15pct
custom_label_3Performance buckettop_performer, normal, underperformer, new_product
custom_label_4Price tier / strategicprice_under20, price_20_50, price_over50, hero_product

Top 5 segmentation strategies

  • Margin-based bidding — Tag each product with its gross margin tier. Bid aggressively on high-margin products where a higher CPA is still profitable, and conservatively (or exclude) on negative-margin products. This alone typically improves blended ROAS by 15–30% for catalogs with wide margin variance.

  • Seasonality labels — Identify which products have predictable seasonal demand spikes. Apply a “seasonal_peak” label before the window opens, then set higher bids or budgets for that group during peak weeks. Use “seasonal_off” to automatically suppress or reduce bids out of season without deleting products.

  • Performance bucket rotation — Monthly, pull Google Ads data and classify each product: top 20% by ROAS = “top_performer”, bottom 20% = “underperformer”, rest = “normal”. Adjust bids by tier and update the supplemental feed. This creates a self-reinforcing optimization loop — top performers get more spend to grow further.

  • Promotional status tracking — Mark products with an active sale or promotion as “on_sale” and clearance items as “clearance”. Clearance items often have lower margins and don’t need aggressive bids — their job is sell-through, not ROAS optimization. Full-price items should have higher bids to protect margin.

  • New product launch support — Tag new products as “new_product” for the first 4–8 weeks. Create a separate campaign or ad group for this label with slightly elevated bids and broader match to gather early performance data. After 4 weeks, reclassify into the standard performance bucket.

Using supplemental feeds for dynamic labels

The fastest and most maintainable way to manage custom labels is via a supplemental feed containing only id and the custom label columns. This feed can be refreshed independently of your main product feed — critical for sale/promotion labels that change daily. Your main feed keeps the stable labels (margin, price tier), while the supplemental feed handles the dynamic ones (promo status, performance bucket).

Impact on performance

  • Bidding precision — The single biggest impact of custom labels is the ability to bid each product at its true value to your business, not at a blended average. Catalogs that implement margin-tier bidding consistently outperform flat-bid catalogs by a significant margin because they stop over-spending on low-value products and under-spending on high-value ones.

  • Budget efficiency — With custom labels you can isolate top-performing product segments into separate campaigns and give them uncapped budgets, while capping spend on underperformers. Without labels, budget is shared across the entire catalog, often going disproportionately to products with high impression share but low conversion value.

  • Seasonal spike capture — Seasonality labels enable pre-scheduled bid adjustments tied to known demand windows, capturing high-conversion traffic during peak periods that flat bidding would miss due to slow Smart Bidding adaptation.

  • Reporting clarity — Custom label segmentation turns Google Ads performance reports from a flat product list into structured business intelligence — spend by margin tier, ROAS by seasonal category, cost per conversion by promotion status. This data directly informs inventory, pricing, and merchandising decisions.

Common mistakes

  • Using unique product IDs or dynamic strings as label values — this quickly hits the 1,000-value limit and makes campaign segmentation impossible

  • Assigning no meaning to slots and using them inconsistently across the team — results in conflicting labels and unusable segmentation

  • Never updating labels after initial setup — margin changes, new promotions, and seasonal cycles make stale labels actively misleading

  • Applying the same label value to every product in a slot — a slot where everything is “normal” adds no information and wastes a slot

  • Using custom labels in place of proper campaign structure — labels are for product segmentation within a campaign, not a substitute for separating distinct strategies into distinct campaigns

  • Forgetting that label values are case-sensitive in Google Ads product group filters — “Margin_High” and “margin_high” are treated as different values

Pro tips

  • Build a label management script — Automate custom label assignment from your ERP or BI tool. A weekly script that pulls margin data, sale flags, and performance metrics from your data warehouse and outputs a supplemental feed with updated custom labels eliminates the manual update burden entirely and ensures labels are always current.

  • Use underscores, not spaces, in label values — “margin_high” is cleaner to filter on in Google Ads than “margin high”. Consistent formatting also prevents accidental duplicate values from spacing differences.

  • Document your slot assignments in a shared team doc — Custom labels only deliver value if the whole team knows what each slot means. A simple table (slot → dimension → valid values → update frequency) prevents chaos when campaigns are handed over or new team members onboard.

  • In Performance Max, create separate asset groups per custom label value — Pair each label segment with tailored creative: high-margin hero products get premium lifestyle imagery and strong copy; clearance products get direct price-focused creative. Label-based asset groups give PMax the context it needs to optimize creatives toward the right audiences.

Frequently asked questions

What are custom labels and who sees them?
custom_label_0 through custom_label_4 are five free-text attributes you can attach to products in your Google Merchant Center feed. They are completely invisible to shoppers — they never appear in Shopping ads or listings. Their only purpose is to allow you to segment your product catalog in Google Ads campaigns for bidding, budgeting, reporting, and exclusion. Think of them as internal tags that travel with your product data into your ad campaigns.
How many custom label slots do I get and can I use the same value across slots?
You have five independent slots: custom_label_0, custom_label_1, custom_label_2, custom_label_3, and custom_label_4. Each slot is entirely independent — you can use the same value string in multiple slots (e.g., "high" in both slot 0 and slot 2 for different dimensions), and each slot supports up to 1,000 unique values. This gives you enormous flexibility to layer segmentation dimensions.
What are the most effective custom label strategies?
The top strategies used by professional PPC managers: (1) Margin tier — "margin_high / margin_mid / margin_low" or by exact percentage range. Bid higher on products where each sale generates more profit. (2) Performance bucket — "top_performer / normal / underperformer" updated monthly from Google Ads data. Scale what works, suppress what doesn't. (3) Seasonality — "seasonal_peak / evergreen / seasonal_off". Override bids during peak demand windows. (4) Promotion status — "on_sale / full_price / clearance". Never bid the same on discounted clearance and full-margin full-price items. (5) Price range — "price_under20 / price_20_50 / price_over50". Consumer intent differs by price point.
Can custom labels be used in Performance Max campaigns?
Yes — custom labels work in Performance Max as asset group signals and for listing group filters. In PMax, you can create separate asset groups for different custom label values (e.g., one asset group for "margin_high" products with premium creative, another for "clearance" with different messaging). This is one of the main ways to maintain product-level control in PMax, since traditional campaign structure is automated.
How often should custom label values be updated?
It depends on the dimension. Margin labels — update quarterly or when costs change significantly. Promotion/sale labels — update daily or in real-time via supplemental feed when prices change. Performance buckets — update monthly based on Google Ads reports. Seasonality — update on a calendar schedule ahead of peak windows. Supplemental feeds are ideal for dynamic labels (sale, stock status) because they refresh faster than full feeds.
Does the order of slots (0, 1, 2, 3, 4) matter?
No — Google treats all five slots as completely equal. There is no hierarchy or priority between them. The numbering (0–4) is purely for identification. By convention, many teams assign a consistent purpose to each slot (e.g., slot 0 = margin, slot 1 = season, slot 2 = promo) and document this in their team's campaign playbook, but Google itself imposes no meaning on the slot numbers.
What happens if I exceed 1,000 unique values in a slot?
Google will accept the feed but values exceeding the 1,000 unique value limit per slot will be ignored and products with those values will appear in Google Ads as if the label field is empty (they fall into the "Everything else" product group). This rarely causes issues in practice unless you're using IDs or timestamps as label values — always use categorical values, not per-product unique strings.

Related guides