You get five custom label slots per product, and many advertisers don’t use them all. Each slot gives you an opportunity to segment your campaign differently.
Margin tiers, bestsellers, seasonality, new arrivals, and clearance are the segmentations that actually change bidding decisions, and they work in both Standard Shopping and Performance Max.
A label is only as good as its last refresh. You can use conditional feed rules to keep values current automatically.
The last thing you want to do on Google Shopping is run one bid strategy across thousands of products that have almost nothing in common. A $12 accessory with a 70% margin gets the same ROAS target as a $900 hero product at 22%, even though they break even at vastly different points. A SKU that sold 400 units last month competes for budget with one that sold two. A Google Shopping campaign shouldn’t feel like a blunt instrument: the campaign can only be as precise as the segments you hand it.
Custom labels are how you sharpen it. Most advertisers tag bestsellers, tag sale items, and leave the other three slots empty or filled with something nobody bids on. What they have not done is treat all five slots as a deliberate bidding architecture.
This post is about using all five on purpose, keeping them accurate as your catalog moves, and why that is a feed problem before it is a bidding problem.
What makes custom labels different from every other feed attribute
Most other attributes in your feed do double duty. Title, product type, brand, and Google Product Category all feed relevance and matching, so bending them to fit your campaign structure can change who sees your ads. Custom labels do nothing to control product matching. Shoppers never see them and the algorithm ignores them. They exist for one purpose: to let you slice your catalog inside Google Ads.
That makes them the safest attribute to update as often as you like, because changes never affect product matching. They are also the place to carry data Google cannot see: margin, sell-through, inventory depth. Google knows what a product is. Only you know what it is worth to you.
Three constraints shape how you should use them:
Five slots, custom_label_0 through custom_label_4, each holding one string of 1 to 100 characters, with a cap of 1,000 unique values per slot across your account.
One value per slot per product. A product cannot be both high margin and clearance in the same slot.
A label only does something when a campaign reads it. One nobody subdivides on is dead weight.
The practical rule: if you cannot name the campaign decision a label supports, do not create it.
The five highest-impact ways to use custom labels
Margin tiers.
Margin is the single most valuable thing Google cannot see. Bucket products into three or four tiers (e.g., under 20%, 20 to 40%, over 40%) and your ROAS targets start reflecting profit instead of revenue. A 300% ROAS on a 15% margin product loses money. The same ROAS on a 50% margin product is a win you should be scaling until returns thin out.
One nuance: unit margin and order margin are not the same thing. Low-margin items that reliably pull high-margin add-ons into the basket (printers and ink, say) look worse in a margin label than they perform. Label on blended basket margin if you have attach-rate data. If not, give those door-opener SKUs their own value so a strict tier does not choke them off.
Bestsellers and dead stock.
Most advertisers already run a bestseller label. The upgrade is making it relative and time-bound: top 10% of units sold in the last 30 days, not a static list exported in January. Then label the other end too. Zero sales in 90 days with plenty of impressions is a signal, and a no-movement label lets you cut bids or exclude those products while you fix the listing.
Seasonality.
Tag products by the window they sell in (holiday, summer, back to school, evergreen) so you can ramp budgets ahead of the season and pull back after it, without rebuilding campaigns. The label stays constant. The bid attached to it moves on a calendar.
New arrivals.
New products have no performance history, so Smart Bidding treats them cautiously and they struggle for impressions. A new-in-30-days label lets you run them with a looser target until they accumulate data. Then they age out on their own.
Inventory clearance.
When stock depth and sell-through are both wrong (too many units, too few sales), you want to move product even at thinner margins. A clearance label driven by on-hand quantity and days of supply lets you get aggressive on exactly those SKUs and nowhere else.
An example five-slot setup.
New arrivals and clearance are both lifecycle states and rarely overlap, so they can share a slot. That frees the fifth slot for testing (more on that below).
Every slot answers one question with a handful of values. Note that the example above are illustrative and your own campaigns and custom labels should reflect your products and business goals.
Putting labels to work in Standard Shopping and Performance Max
A label does nothing until a campaign reads it, and the two campaign types read it differently.
Standard Shopping: labels as bid levers.
Subdivide product groups by custom label and set a bid or portfolio target at each node: margin_40plus at a 300% target ROAS, margin_10_20 at 700%, door_opener somewhere between. Set each target above that tier's break-even ROAS, which is 1 divided by margin. You can also split label values across campaigns to give each its own budget and bid strategy, or use campaign priority so clearance stock gets first call on impressions. Labels are what make that level of control usable at catalog scale.
Performance Max: labels as campaign architecture.
Performance Max has no per-product bids. The target ROAS or CPA lives at the campaign level and applies to everything inside it. What you control is which products land in which asset group, through listing groups filtered on feed attributes, custom labels included.
So the pattern is one campaign per label value that deserves its own target, with listing groups filtering which products each campaign serves. Mix margin_40plus and margin_10_20 in a single campaign with a 300% target and the algorithm tends to hit 300% blended by pouring spend into low-margin volume. Separate campaigns get separate targets. Labels work as exclusions here too: carve no_sales_90d out of your listing groups and PMax stops spending on products that have already proven they do not convert.
Either way, the structure in Google Ads is only as good as the labels in the feed. Which brings us to the real problem.
How to implement custom labels at scale
The manual way.
Export the catalog, join a cost file for margin, rank 30-day unit sales, flag anything created in the last 30 days, compare stock to velocity for clearance, paste it all into a supplemental feed. Repeat.
This works for 300 SKUs, once. It breaks at 30,000 SKUs, when velocity and inventory change daily, or when the one person who understands the spreadsheet goes on vacation.
The feed management way.
Treat each label as a rule, not a value. With Google Shopping feed management and product listing optimization, transformer rules apply conditional logic to any field in your source data, plus supplemental sources you join in (a cost file, a sales export, a warehouse inventory feed), and write the result straight into the label slot. The setup above becomes a handful of rules:
IF (price - cost) / price >= 0.40, THEN custom_label_0 = margin_40plus
IF units_sold_30d is in the top 10% of the catalog, THEN custom_label_1 = top10_30d
IF created_date is within the last 30 days, THEN custom_label_3 = new_30d
IF on_hand > 200 AND days_of_supply > 120 AND created_date is older than 30 days, THEN custom_label_3 = clearance
Rules run every time the feed refreshes, so labels move with the data. A product ages out of new_30d on day 31 without anyone touching it. A product that stops selling drops to slow before the ROAS report shows it. That is the difference between a label strategy and a label snapshot, and it is one reason Feedonomics advertising clients reported a 19% average improvement in ROAS in a customer survey.
Labels as a testing tool.
That fifth slot is for experiments. Split the catalog randomly into control and variant (a rule on the last digit of the item ID does it), push a rewritten title only to the variant group, and label each half. Then compare CTR and conversion rate between the two labels. Feedonomics clients use this to test title structures (brand-first versus product-type-first, adding size and color), then roll the winner across the catalog with one rule change. The same mechanism works for testing campaign types, which is how one agency prepared a client's catalog for the move to Performance Max.
Two things keep the test honest: both halves stay in the same campaign so they get identical bids, and the test runs long enough to clear the learning period, usually two to four weeks.
Common custom label mistakes
The five mistakes show up most often.
Too many values. Twelve margin tiers nobody bids differently on is noise. If two values would get the same bid, merge them. Three to five per slot is plenty.
Two questions in one slot. A value like holiday_bestseller means you can never bid on holiday or bestseller independently. One question per slot.
Labels that never refresh. A bestseller list from January is wrong by spring and harmful by Q4. If a label refreshes less often than the data behind it changes, it is misleading your bids.
Labels with no campaign behind them. Audit every slot: which campaign, asset group, or product group reads it? If none, the label is costing you a slot and returning nothing.
Renaming values without touching campaigns. Change margin_high to margin_40plus in the feed and every product group built on the old value empties out. Those products fall into a broad group for everything else and take the default bid.
The final word
Custom labels come down to five slots answering one question each, a handful of values, refreshed as the data moves, read by a campaign structure built to use them. What separates precision bidding from a blunt instrument is doing all of that consistently across the whole catalog, and that is a feed management problem before it is a PPC problem.
Not sure how well your current labels are working? A feed audit is the fastest way to find out. Our team will look at your feed and campaign structure together and show you where label logic could tighten your segmentation. Request a feed audit and bring your messiest campaign.
Google Shopping custom labels FAQ
Five per product, custom_label_0 through custom_label_4. Each slot takes one value of up to 100 characters, and Google caps you at 1,000 unique values per slot across your account. In practice you should be using a small fraction of that limit. Fewer, cleaner values make for better campaign structures.
No. Custom labels are invisible to shoppers and ignored by Google's relevance matching. They exist only to let you group products for bidding, reporting, and campaign targeting in Google Ads. That is what makes them safe to change as often as you like, as long as any campaign structure built on a label value is updated to match.
Yes. In Performance Max, custom labels are one of the attributes you can use to filter listing groups inside an asset group, and Google recommends them for exactly that. Because bid targets in Performance Max sit at the campaign level, use separate campaigns when different label values need different ROAS or CPA targets.
As often as the data behind them changes. Velocity, inventory, and new-arrival labels should refresh daily. Margin labels need to refresh whenever cost or price changes. Seasonality labels can be stable, but the bids attached to them should move on a calendar. If your labels are updated by hand, they are almost certainly out of date.
Product type describes what the product is, in your own taxonomy, and Google uses it as a relevance signal. Custom labels describe what the product means to your business (its margin, its velocity, its lifecycle stage) and Google uses them for nothing except your campaign structure. Use product type to organize by category. Use custom labels to organize by how you want to bid.