This guide is for advertisers and store owners who run Google Shopping or Performance Max and want to bid on groups of products instead of treating the whole catalogue the same. By the end you’ll be able to add custom labels in Google Merchant Center, stay inside the limits and use those labels to split a Performance Max listing group. You’ll need a working Merchant Center account with a product feed. A linked Google Ads account is also needed if you want to bid on the groups.
Custom labels are five optional attributes, custom_label_0 to custom_label_4, that you fill with your own values (such as “high-margin” or “summer”) in your feed or through attribute rules[2][5]. Once Google Ads has picked them up, you can subdivide products by those values in a Performance Max listing group[3] and bid or report on each group[1][2].
That’s the whole mechanism. The skill is in deciding what to label, so most of this guide is about that.
What custom labels actually do
A custom label is a tag you attach to a product. It’s internal. It doesn’t appear in your ads and customers never see it[1][2]. Its only job is to let you filter products in Performance Max, Shopping or Demand Gen so you can set bids and read reports for a group[1][2].
Why bother? Because your catalogue is not uniform. A high-margin product and a thin-margin one shouldn’t need the same return on ad spend (ROAS, which is revenue divided by ad spend) to be worth advertising. Google Ads can’t see your margins or your seasons unless you tell it, and custom labels are one way to do that.
Google’s own examples of useful labels include season, selling rate (best seller, low seller), price ranges, margin (low, high) and release year[1]. Those are a good starting list.
Step 1: Decide what you want to segment by
Don’t open the feed yet. Decide first what decision you want the labels to support. A label that doesn’t change a bid, a budget or a report is just clutter.
Ask yourself which of these you’d actually act on:
- Margin: high, medium, low. Lets you accept a lower ROAS on high-margin items and demand more from thin-margin ones.
- Sales speed: best seller, low seller. Lets you protect budget for proven products and test the slow ones separately.
- Season: summer, winter, autumn. Lets you switch focus as demand moves.
- Price band: under 25, 25 to 100, over 100. Lets you treat cheap and expensive products differently.
- Release year: useful for launches and clearance.
Trade-off to keep in mind: more labels mean more groups, and more groups mean less data in each. If a group gets only a handful of clicks a month, you won’t learn much from it. Start with two or three groups and add more only if each one still gets enough clicks to read.
Tip
Assign one dimension to each of the five slots and keep it that way. For example, custom_label_0 for margin, custom_label_1 for sales speed, custom_label_2 for season. Mixing margin values and season values in the same attribute makes reporting messy.
Step 2: Know the limits before you build
Check these limits now, because breaking them quietly breaks your segmentation:
- There are five attributes, custom_label_0 to custom_label_4[2][5].
- Each value must be 1 to 100 characters[1].
- You can have up to 1,000 unique values per attribute across the account. The account total is 5,000 labels[1].
- Values are strings and aren’t case-sensitive. ASCII characters are recommended[1].
Watch out
If you’re near the attribute limit, labels may not sync. Beyond 1,000 values, labels are ignored[1][2]. This is easy to trigger if you use a product ID or a very specific price as the label value. Use bands, not exact numbers. “25 to 50” is a usable label. “34.99” creates a new value for every price.
Also keep values consistent. Because they aren’t case-sensitive, “Summer” and “summer” are the same value, but “summer” and “summer-2” are two separate ones[1]. Pick a naming convention and write it down.
Step 3: Add custom labels to your feed
There are two ways to get labels onto products. You can write them into the feed yourself or generate them with rules (Step 4). Start with the feed route if your labels come from data you already hold, like margin in your store backend.
- Open your feed file or the app or plugin that produces it.
- Add a column or field named custom_label_0 (and custom_label_1 and so on if you need more).
- Fill in one value per product.
- Upload or fetch the feed again, then check the data source in Merchant Center for errors.
The format depends on your file type[1]:
- TSV or CSV: add a column headed custom_label_0 and enter the plain value, such as summer.
- XML: use <g:custom_label_0>summer</g:custom_label_0>.
- Merchant API: also supported.
If you want to learn how feeds are structured, https://oxfordimpulse.com/beginners-guide-google-merchant-center-feed/ covers the basics.
Good to know
The attributes are optional, so you can leave them empty for products you don’t want to segment[2][5]. Enter the label as a plain value, without extra explanatory text.
A worked example
This is an illustration, not real data. Say a shop sells garden furniture and has decided on two dimensions: margin in custom_label_0 and season in custom_label_1.
- Parasol: custom_label_0 = high-margin, custom_label_1 = summer
- Outdoor heater: custom_label_0 = medium-margin, custom_label_1 = winter
- Plastic planter: custom_label_0 = low-margin, custom_label_1 = all-year
Now the shop can accept a lower ROAS target for the high-margin group in summer and ask more of low-margin items when budget is tight.
Step 4: Assign labels automatically with attribute rules
If your feed can’t easily hold the values, or you’d rather not edit the source file, attribute rules can assign labels from data already in the feed, such as price ranges. Attribute rules were previously called feed rules, and they need the Advanced data source management add-on[1][4].
- In Merchant Center, go to Data sources.
- Open the Product sources tab.
- Select a primary source.
- Open the Attribute rules tab.
- Create a rule that fills a custom label attribute from an existing field, such as price.
Test the rule on a few products first and check the values it produces in your data source. Rules are best for logic based on data you already supply, like price bands. They can’t know your margin if margin isn’t in the feed.
Watch out
A rule is only as good as its source field. If some products have a blank price or the wrong currency format, they may land in the wrong band or none at all. Fix the source data first.
Step 5: Link Merchant Center to Google Ads
Labels do nothing for bidding until Google Ads can see them. If the two accounts aren’t connected yet, follow https://oxfordimpulse.com/how-to-link-google-merchant-center-to-google-ads/ first.
After the link is live, be patient. Labels can take 24 to 48 hours to appear in Google Ads[1][2]. Don’t assume something is broken after an hour.
One exception worth knowing: for Display dynamic remarketing, custom labels aren’t the right tool. Use ads_labels and ads_grouping instead[1].
Step 6: Use custom labels in a Performance Max listing group
Performance Max is Google’s campaign type that serves across channels from one set of assets. Listing groups are how you choose which products from your feed an asset group can promote. A listing group starts as All products, and you can subdivide it by a custom label[3].
- In Google Ads, open your Performance Max campaign.
- Go to Asset groups.
- Open the asset group you want to edit, then find Listing groups.
- Click the pencil icon next to All products.
- Choose Subdivide by, then pick the custom label (for example custom_label_0).
- Click Save.
Each asset group can have up to 1,000 listing groups[3].
How to structure it
One approach is a separate asset group for each label value that deserves its own treatment, with its listing group subdivided by that label[3]. That lets you judge each group on its own numbers.
Trade-off: splitting spreads your conversion data thinner. If one segment is tiny, keep it in the main asset group and use the label for reporting instead.
Step 7: Report on your segments
Labels also help you read performance, because they let you compare groups of products with each other[1][2]. Judge each group against your real costs, not only platform ROAS. A group with a decent ROAS and a low margin may still lose money.
Review labels on a schedule. Best seller and low seller are only useful if they’re refreshed. If you set them once and forget them, they go stale and your bids end up based on last year’s facts.
Common mistakes and how to avoid them
- Using exact values like prices or SKUs. This uses up the 1,000 value limit quickly[1]. Use bands.
- Inconsistent spelling. “high-margin” and “high margin” are different values. Keep a naming sheet.
- Mixing dimensions in one attribute. One attribute, one idea.
- Over-segmenting. Too many groups leave each one with too little data.
- Expecting instant results. Allow 24 to 48 hours for labels to show in Google Ads[1][2].
- Never updating labels. Schedule a monthly check.
Custom labels checklist
This week, pick one label that would change a bid, add it to a handful of products as a test and check that it shows in Google Ads within 48 hours. For the bigger picture on feeds, labels and account setup, the Merchant Center hub at https://oxfordimpulse.com/google-merchant-center/ is the place to start.
FAQs
What are custom labels in Google Merchant Center?
How many custom labels can you use?
Do custom labels show in your ads?
How long do custom labels take to show in Google Ads?
How do you add custom_label_0 to a CSV or TSV feed?
Add a column headed custom_label_0 and type the plain value in each row, for example summer[1]. Then upload or fetch the feed again.
How do you write custom labels in an XML feed?
Are custom labels case-sensitive?
No, values are strings and aren’t case-sensitive[1]. Still, pick one spelling and stick with it so your reports stay tidy.
Can you set custom labels without editing your feed?
How do you use a custom label in a Performance Max listing group?
Open Asset groups, go to Listing groups and click the pencil icon next to All products. Choose Subdivide by, select the custom label, then click Save[3].
Sources
- Google Merchant Center Help: Custom label 0-4 [custom_label_0-4] support.google.com
- Google Ads Help: Use custom labels for Shopping ads support.google.com
- Google Ads Help: Manage a Performance Max campaign with listing groups support.google.com
- Google Merchant Center Help: Set up your attribute rules support.google.com
- Google Merchant Center Help: Product data specification support.google.com