Feed Optimization

The Custom Labels Playbook: Heroes, Villains, and Zombies in Your Product Catalog

How to use custom_label_0-4 for strategic campaign segmentation. The Heroes/Villains/Zombies framework, margin-based bidding, seasonal labels, and…

Updated 2 min readBoostora Team

Custom labels are for campaigns, not for customers

Custom labels have zero effect on ad serving, search matching, or product visibility. Shoppers never see them. Google’s AI doesn’t use them for auction decisions. What they do is give you a systematic way to segment products for bidding strategy in Google Ads.

You have five labels available — custom_label_0 through custom_label_4 — each accepting one value per product, with up to 1,000 unique values per label across your account. These labels become filter dimensions in Google Ads campaign product groups, letting you set different bidding strategies for different product segments. Most accounts use zero custom labels — leaving significant optimization leverage unused.

The Heroes / Villains / Zombies framework

Heroes — top performers

Products with strong ROAS, healthy click volume, and consistent conversions. These deserve aggressive bidding and premium placement. The top 10-20% of products by revenue typically generates 60-70% of total Shopping revenue.

Label: custom_label_2: hero

Identify: ROAS ≥ target + 20% AND revenue in top quintile over last 30-90 days.

Villains — high spend, low return

Products consuming significant budget but delivering below-target ROAS. Getting clicks but not converting, or converting at a cost that doesn’t justify the spend. These need either bid reduction, landing page improvement, or removal from campaigns.

Label: custom_label_2: villain

Identify: spend ≥ threshold AND ROAS ≤ target × 0.6 over last 30-90 days.

Zombies — no traffic, no conversions

Products that exist in your feed and campaigns but get nearly zero impressions and zero clicks. Not spending money, but not earning any either. Often caused by poor category assignment, weak titles, missing GTINs, or thin data.

Label: custom_label_2: zombie

Identify: impressions < 10 or clicks = 0 over a 30-day window.

Rising Stars — promising new entrants

New arrivals with limited data but promising early signals. Need enough budget to gather signal, but guarded until they prove themselves.

Label: custom_label_2: rising_star

A practical five-label schema

LabelDimensionExample valuesPrimary use
custom_label_0Margin tierhigh_margin, mid_margin, low_marginSet tROAS targets per margin tier. Bid more on high-margin products.
custom_label_1Seasonalityevergreen, summer, winter, q4_peakIncrease budgets on seasonal products during their peak window.
custom_label_2Performance tierhero, zombie, villain, rising_starHVZ framework — separate bidding strategies per tier.
custom_label_3Price tierunder_25, 25_to_100, 100_to_500, over_500Adjust bids by price range — expensive products justify higher CPCs.
custom_label_4Promo statuson_sale, clearance, full_price, bundleBoost budgets during promotions; separate clearance for distinct campaigns.

Using labels in Standard Shopping campaigns

In a Standard Shopping campaign, you segment products using product groups — subdivision filters at the campaign or ad group level. Custom labels are one of the available subdivision dimensions alongside brand, category, product type, and item ID.

Practical campaign structure:

  • Campaign 1 — Heroes / High Margin: custom_label_0 = high_margin AND custom_label_2 = hero. tROAS: aggressive. Budget: highest.

  • Campaign 2 — Rising Stars: custom_label_2 = rising_star. Maximize Clicks initially, then transition to tROAS after 30 days of data.

  • Campaign 3 — Clearance: custom_label_4 = clearance. Lower tROAS target. Goal is volume at thin margin.

  • Campaign 4 — Zombies: custom_label_2 = zombie. Very low bids, minimal budget. Gather trickle data while working on feed quality.

  • Catch-all: Everything else. Catches new products that haven’t been labeled yet.

Using labels in Performance Max

In PMax, custom labels control which products enter which asset group via product filters. Each asset group’s product filter works like a WHERE clause: show this creative to users likely to buy products matching [label criteria].

  • Asset group: Premium Heroes — high_margin AND hero. Premium creative, brand-focused headlines, lifestyle images.

  • Asset group: Sale Items — on_sale OR clearance. Price-focused creative, urgency messaging.

  • Asset group: Default — all other products. Generic brand creative as catch-all.

Without custom labels, you can only segment PMax product groups by category, brand, product type, or item ID. Custom labels give you business-logic dimensions Google’s taxonomy doesn’t have — like “high margin” or “currently on promotion.” For more on PMax asset group strategy, see Performance Max Feed Requirements.

Practical implementation

id,custom_label_0,custom_label_1,custom_label_2,custom_label_3,custom_label_4
SKU-1001,high_margin,evergreen,hero,over_500,full_price
SKU-1002,low_margin,summer,zombie,under_25,clearance
SKU-1003,mid_margin,q4_peak,rising_star,25_to_100,full_price
SKU-1004,high_margin,evergreen,villain,100_to_500,on_sale

Implementation path:

  • Export product catalog with Google Ads performance data (revenue, spend, ROAS, impressions per product ID)

  • Build classification logic and run it against performance data

  • Add margin data from ERP or pricing system for label_0

  • Output a supplemental feed with product IDs and five custom_label columns. Upload to Merchant Center.

  • Refresh labels monthly (quarterly for stable catalogs). Performance tiers change.

Common mistakes

  • Too many unique values per label. The 1,000 unique value limit is strict. Consolidate values if approaching it.

  • Labels not mapped to bidding decisions. If a label doesn’t correspond to a different strategy, it provides no value.

  • Not refreshing labels. A hero from 6 months ago may be a zombie today.

  • Confusing custom labels with product_type. Product_type = product taxonomy. Custom labels = campaign strategy. Different purposes.

  • All products sharing the same label value. Provides no segmentation value whatsoever.

Related guides