How to Set Up and Use Custom Labels in Google Shopping
Custom labels let you bid differently on products by margin, season, stock or performance without splitting campaigns. Three ways to add them and how to use them in Shopping and PMax.

Custom labels are the most useful feed attribute that most Shopify merchants have never touched. They do not change which searches your products match or how Google categorises them. They do one specific job: let you group products by any criteria you like, then bid differently on each group in Google Ads.
Without custom labels, you either bid the same way on every product or build separate campaigns for different product groups, with all the extra management that brings. Custom labels give you segmentation without fragmentation.
What Custom Labels Are
Custom labels are five free-form feed attributes, custom_label_0 to custom_label_4. You decide what each label means and what values it holds. Google does not use them for matching, categorisation or quality scoring. They exist purely for your own use in Google Ads.
In Google Ads, you can split product groups within a campaign by custom label value. In Standard Shopping, each product group can then have its own bid.
Common ways to use them:
- Margin tier:
high_margin,mid_margin,low_margin, to bid harder where you can afford a higher CPA - Sale status:
on_sale,full_price, to raise bids during sales or separate sale items from full price lines - Seasonality:
summer,winter,year_round, to lower bids on out of season stock without pausing products - Performance tier:
top_performer,average,low_performer, feeding campaign data back into the feed to drive bidding - Stock level:
high_stock,low_stock, to lower bids on products about to sell out - Product age:
new_arrival,established,clearance, to treat launches differently from catalogue staples
Each label holds one value per product. To segment on several dimensions at once (margin and seasonality, say), use a different label number for each: custom_label_0 for margin tier, custom_label_1 for seasonality, custom_label_2 for sale status.
Adding Custom Labels to Your Feed
There are three practical ways to do it, depending on your setup.
Method 1: A Supplemental Feed in Google Sheets
A supplemental feed is a secondary file Merchant Center reads alongside your main feed, and it can add attributes your main feed lacks, including custom labels.
Step 1: create a Google Sheet with two columns:
id: the product ID, matching your main feed exactlycustom_label_0: the label value for that product
Fill it in with your product IDs and the values you want to assign.
Step 2: in Merchant Center, add a new supplemental data source, choose Google Sheets as the input method and connect your sheet.
Step 3: set a fetch schedule. Merchant Center will read the sheet on schedule and apply the label values to matching products.
This works with any primary feed: the native Shopify app, DataFeedWatch or anything else. It is also the easiest approach to maintain for labels that change often (sale status, stock level), because you update the sheet and Merchant Center picks up the change at the next fetch.
For large catalogues, the sheet can be filled automatically from your inventory system or from Shopify via the Shopify API and a Google Apps Script.
Method 2: Simprosys or DataFeedWatch
If you use a third-party feed tool, custom labels are usually set inside the tool.
Simprosys has a dedicated custom labels section where you define rules such as “if product tag contains ‘high-margin’, set custom_label_0 to ‘high_margin’”. Rules can read Shopify tags, collections, product types, price thresholds or any other Shopify field you have filled in.
In DataFeedWatch, custom labels are set in the feed mapping screen with conditional rules, lookup tables and value transformations. If your margin data lives in a separate CSV, DataFeedWatch can merge it with Shopify data to populate margin labels.
The advantage of using a feed tool is that labels update automatically when the source data changes. Tag a product as on sale in Shopify, and a Simprosys rule can apply the sale label in the feed with no manual work.
Method 3: Merchant Center Attribute Rules (No Extra Tools)
If you use the native Google and YouTube app (which cannot add custom labels itself) and want to avoid both spreadsheets and paid tools, Merchant Center’s own attribute rules can set custom labels for you.
Create a rule for custom_label_0 that sets a value when a condition is met, based on attributes already in your feed, such as product type, brand or price. For example: if price is above 100, set custom_label_0 to “high_value”; if product type contains “Clearance”, set it to “clearance”.
It is less flexible than a feed tool, because rules can only use data already in the feed, but it costs nothing and needs very little setup.
Splitting Product Groups in Google Ads
Once labels are in the feed and Merchant Center has processed them (allow 24 hours), split your product groups.
In Standard Shopping:
Open the campaign and go to the Products tab. You will see one product group, “All products”. Click the + next to it to subdivide, and choose “Custom label 0” (or whichever number you used). Google Ads shows the label values present in your feed, so select each one.
You now have a product group per label value, each with its own bid:
- high_margin: higher bid (you can absorb a higher CPA)
- mid_margin: medium bid
- low_margin: lower bid, or exclude entirely if the margin cannot support profitable advertising
In Performance Max:
PMax does not support product group bids the way Standard Shopping does. You can, however, create separate asset groups and use listing group filters so each asset group only includes products with particular label values. That lets you give each segment its own audience signals and creative.
For margin-based bidding in PMax, the cleanest approach is separate PMax campaigns for high and low margin products, each with its own ROAS target. Custom labels define which products belong in each campaign through the listing group filter.
The Margin Label Strategy in Detail
For most stores, this is the highest impact use of custom labels.
Work out the gross margin for each product or category and assign tiers:
- High margin (over 50% gross margin): aggressive bidding, can accept a higher CPA
- Mid margin (30 to 50%): standard bidding
- Low margin (under 30%): cautious bidding, needs a high ROAS target
In Standard Shopping, the structure looks like this:
| Product Group | Bid | Logic |
|---|---|---|
| high_margin | Higher | More margin to absorb CPA |
| mid_margin | Standard | Balanced efficiency |
| low_margin | Lower | Needs high ROAS to be profitable |
In PMax, it translates to a higher ROAS target for low margin products (they need more revenue per pound of spend to be profitable) and a lower ROAS target for high margin products (you can afford to spend more to win each sale).
Without this segmentation, Smart Bidding optimises for a blended efficiency across every product. It may overinvest in low margin products (which convert often at low order values) and underinvest in high margin ones (which may convert less often but earn more per sale). Margin labels correct that imbalance.
Keeping Labels Up to Date
Labels that are never updated become stale and misleading. A product still labelled on_sale three months after the sale ended gets aggressive bids indefinitely. A high_stock label on a product that has nearly sold out keeps pushing spend towards stock you cannot fulfil.
Build maintenance into the plan:
- Sale labels: update when sales start and end (automate it in your feed tool if you can, using
sale_price_effective_dateas the trigger) - Stock labels: refresh weekly from inventory data
- Margin labels: refresh when costs or prices change significantly
- Performance labels: refresh monthly from Google Ads data
The supplemental feed makes updates easy: change the sheet and the next fetch applies it. Feed tool rules based on Shopify data update automatically whenever that data changes.
Start With One Label
If you have never used custom labels, start with one dimension. For most stores, margin tier gives the most leverage. Get it working, confirm the product groups appear correctly in Google Ads, and measure the impact over four to six weeks before adding a second.
Rolling out all five labels across a catalogue at once creates more complexity than most accounts can handle. One well maintained label you actually act on is worth more than five that drift out of date and add noise.
Want this applied to your account?
30 minutes. No pitch deck. A clear view of your account and the highest-leverage opportunities.