What custom labels are for

Custom labels are private product classifications used for reporting and bidding in Shopping, Performance Max and Demand Gen. Customers do not see them. They are most valuable when the classification exists nowhere else in the feed: margin band, stock cover, lifecycle stage, promotion status or a deliberate testing cohort.

Google provides five optional attributes, custom_label_0 through custom_label_4. Each product can have one value in each field. The official custom-label specification allows 1–100 characters per value and up to 1,000 unique values account-wide for each label attribute. Labels submitted beyond that unique-value limit are not taken into account for reporting and bidding.

Requirements versus design choices

TypeRule
Google requirementOne value per custom-label field per product; maximum five fields
Google requirementStay within 1–100 characters and 1,000 unique values per field
Google behaviourValues are not case sensitive and are not customer-facing
Recommended governanceGive each numbered field one stable meaning across the account
Recommended governanceUse a small controlled vocabulary, with an explicit value for unclassified items

Google does not require custom_label_0 to mean margin or custom_label_1 to mean season. That is your design choice. Once chosen, keep it stable. Mixing high_margin, summer and clearance in the same column prevents reliable subdivision.

A five-field schema a retailer can operate

The following is an example, not a universal template:

FieldDefinitionControlled valuesRefresh
custom_label_0Contribution-margin bandmargin_low, margin_mid, margin_highMonthly
custom_label_1Stock coverstock_low, stock_normal, stock_highDaily
custom_label_2Lifecyclenew, core, clearanceDaily
custom_label_3Price bandunder_50, 50_149, 150_plusOn price change
custom_label_4Experiment cohorttitle_test_a, title_test_b, not_in_testPer experiment

The refresh column is important. A margin label calculated once and never updated is worse than no label because it gives the bidding team false confidence. Assign an owner and source field for every label.

Calculate commercial labels from defined rules

Do not hand-label thousands of products in Merchant Center. Calculate labels in the ecommerce platform, feed-management layer, scheduled transformation or Merchant Center attribute rules, depending on where the necessary data exists. Google notes that feed rules can assign custom labels from submitted values.

For a hypothetical product selling for £100 including £16.67 VAT, with £40 landed cost, £7 fulfilment and £5 expected returns cost, contribution before advertising is £31.33. A retailer might define:

  • margin_low: contribution rate below 25%;
  • margin_mid: 25% to below 40%;
  • margin_high: 40% or more.

This product is 31.33% and receives margin_mid. The thresholds are the retailer’s business logic, not Google requirements. Document whether returns, discounts and fulfilment are included so finance and paid media calculate the same thing.

Need labels that lead to better budget decisions?

Upscale can turn margin, stock and lifecycle data into a governed feed schema and usable campaign groups.

Book My Free Ad Audit

Use labels in Google Ads with a purpose

In Standard Shopping, subdivide product groups by the custom label only when the values need different bids or exclusions. In Performance Max, use listing groups to include or exclude label-defined inventory. You can also segment product reporting by the same labels. Google’s guide to Shopping product groups explains the product-group mechanics.

A label does not instruct Smart Bidding to favour a product merely because the value says high_margin. It becomes actionable when you use it to create a different campaign, target, budget, listing group or analysis. If all label values remain under identical controls, the immediate benefit is reporting.

Avoid these design failures

  • Unique SKU values: using a custom label as a second product ID wastes the unique-value allowance and creates no cohort.
  • Overlapping definitions: bestseller based on last seven days for one category and last year for another is not one label.
  • Volatile daily rank: labels that move constantly can make campaign membership unstable. Use bands and hysteresis.
  • Blank ambiguity: decide whether blank means unknown, not applicable or a failed rule. Prefer an explicit controlled value where reporting needs complete coverage.
  • Case and spacing variants: normalise values such as high_margin; do not allow “High Margin”, “high-margin” and “high margin”.

Hysteresis prevents items jumping between bands. For example, move a product into stock_low below 14 days’ cover but do not move it back to normal until it exceeds 21 days. Again, those thresholds are operational choices.

Deployment and quality assurance

  1. Write the field dictionary, source and refresh rule.
  2. Calculate values for a sample containing variants, sale items and missing data.
  3. Submit one cohort and inspect the processed value on individual products.
  4. Count products by value and reconcile the count to the source catalogue.
  5. Check that listing/product-group subdivisions contain the intended products.
  6. Only then use the label for exclusions, targets or budgets.

Set a weekly exception report for blank, invalid and unexpected values. Keep the field dictionary beside the feed logic. When a label definition changes, annotate the date because pre-change and post-change reporting may no longer be directly comparable.

Measurement plan

Measure the decision enabled by the label, not the existence of the label. If margin bands create separate targets, compare spend, orders and contribution after ads by the original bands, allowing for conversion lag. If a stock label suppresses low-cover products, monitor cancelled orders, lost revenue and stockouts. If a label defines a title test, keep campaign treatment stable and compare item-level CTR plus post-click quality.

A good custom-label implementation should make a sentence possible: “We reduced spend on low-contribution, low-stock items by £X while preserving Y% of net revenue.” “All products now have five labels” is only an implementation milestone.

A worked label deployment

A hypothetical retailer wants to stop low-stock, low-margin products absorbing budget. Finance supplies contribution rate weekly and the warehouse supplies days of stock cover daily. The feed layer maps contribution below 25% to margin_low and stock cover below 14 days to stock_low. Products missing either input receive margin_unknown or stock_unknown, not a blank.

Before using the labels, the team reconciles product counts to the source and samples sale products, bundles and variants. It then creates a report combining both fields. The decision is not automatically to exclude every low/low item: high-repeat-purchase products are reviewed separately. The remaining cohort receives a capped allocation and a stricter target.

Success is measured as contribution after ads, lost revenue and stockout rate for the original item cohort. If spend falls but profitable orders fall by more, the intervention failed even though reported ROAS may rise.

Label failure and rollback

A rule can fail by producing blanks, changing value format, exceeding the unique-value limit or moving too many products between groups. Alert when the distribution changes beyond an agreed tolerance, such as more than 10% week on week without a known commercial event. The tolerance is a merchant control, not a Google limit.

Keep the prior values and campaign membership export. If a rule assigns every product margin_high, restore the previous label source or temporarily remove the affected subdivision before budgets move. Document the incident and fix the source logic before reactivating.

For the campaign implementation, see how to structure Shopping inventory.

Review label distributions before every major trading period. Clearance, launch and seasonal logic often expires; a governed end date prevents a temporary commercial state from becoming permanent campaign structure.

Sources