Custom labels are the mechanism Google gives advertisers to segment products for campaign structure and bidding. They're five text fields (custom_label_0 through custom_label_4) that you attach to each product in your feed. Most advertisers use them to group products by performance — top performers, scale opportunities, underperformers, zero-conversion products — and then build campaigns or ad groups around those segments.
The problem isn't understanding why you should label products. It's operationalizing the workflow. Someone (or something) needs to pull performance data from Google Ads, apply classification logic, write the labels into your feed, and keep doing it as performance changes. Manually reviewing hundreds or thousands of products weekly doesn't scale.
This guide covers three approaches to automating custom labels, from the original free script method to modern SaaS tools that handle everything end to end.
The Script Approach: How It Started
The most widely adopted open-source solution is the Flowboost script, originally created by Shopstory. It's been downloaded over 5,000 times and popularized the concept of performance-based labeling for Shopping campaigns.
How the Flowboost script works
- Script runs in Google Ads: You paste the script into your Google Ads account (Tools > Scripts). It queries the
shopping_performance_viewto pull product-level performance data (clicks, conversions, revenue, ROAS). - Products are classified: Based on configurable thresholds (click count and ROAS), each product gets one of four labels: Over-index (high ROAS, enough clicks), Near-index (moderate performance), Under-index (low ROAS, spent budget), No-index (zero or minimal clicks).
- Labels written to Google Sheets: The script writes the product ID and label to a Google Sheets spreadsheet.
- Sheet connected as supplemental feed: You connect the Google Sheet as a supplemental feed in Merchant Center. Google fetches it daily, and the labels appear on your products.
Script limitations
The Flowboost script is a solid starting point, but it has inherent constraints:
- Fixed 4-bucket system: All products land in one of four categories. You can't create a fifth bucket, add sub-segments, or define a "Hero" vs "Cash Cow" distinction within the top tier.
- Limited conditions: Classification is based on click count and ROAS. You can't factor in price competitiveness, conversion rate, brand, product type, availability, or Google's own click_potential signal.
- Manual threshold updates: When your account's average ROAS changes (seasonality, new products, competitive shifts), you need to manually adjust the script's thresholds. The free version doesn't auto-calibrate.
- Maintenance burden: Google Ads scripts break when the API changes. The
shopping_performance_viewschema updates with each API version, and scripts need updating. Sheet permissions expire. The supplemental feed connection can fail silently. - No analytics feedback: The script labels products, but there's no built-in way to track whether the labeling strategy is working. You can't see how each label group's performance changes over time without building separate reporting.
- Sheets fetch delay: Even after the script runs, Merchant Center only fetches the supplemental feed on schedule (typically daily). There's a lag between the label being computed and the label being applied.
The SaaS Tool Approach
Several commercial tools have replaced the script workflow with managed services. They pull performance data via API, apply classification rules, and push labels directly to Merchant Center — no scripts, no spreadsheets.
ProductHero Labelizer
ProductHero is probably the best-known commercial labeling tool. It classifies products into four buckets (Hero, Sidekick, Villain, Zombie) based on click and ROAS thresholds, and pushes labels to Merchant Center via the Content API. Pricing starts at EUR 39/month.
ProductHero improves on scripts by removing the maintenance burden and the Sheets intermediary. But it still uses fixed buckets — you can't customize the label names, add more categories, or use conditions beyond basic performance metrics. See our ProductHero alternatives comparison for more detail.
Shoptimised
Shoptimised is a UK-based platform that goes a step further. It lets you configure performance thresholds and time windows (24 hours to 90 days), providing more control over how recency affects labeling. Pricing starts at GBP 120/month.
Optmyzr
Optmyzr includes a Smart Product Labeler within its broader PPC management platform. It uses 5 fixed performance buckets and pushes labels to MC. It's more of an enterprise PPC platform than a pure labeling tool — pricing starts around $249/month.
What SaaS tools share in common
- They all remove the script maintenance burden
- They all push labels via the Content API (no Sheets intermediary)
- They all use some form of fixed-bucket classification
- None of them let you define arbitrary conditions beyond basic performance metrics
- None of them include deep analytics — they label products, but don't show you the downstream performance impact
The Analytics-First Approach
The newest wave of labeling moves beyond fixed buckets and adds two capabilities that scripts and SaaS tools lack: flexible rule definition and connected analytics.
SKU Analyzer takes this approach. Instead of classifying products into pre-defined buckets, it gives you a rule builder with 40+ condition fields organized across performance metrics, pricing data, feed attributes, Google signals, and computed dimensions.
How the rule builder works
Each rule has a label name, a color, and one or more conditions connected with AND logic. Rules are ordered by priority — the first rule that matches wins.
Example rules:
Hero
ROAS ≥ 5 AND conversions ≥ 3 AND price_position = Competitive
Scale
ROAS ≥ 3 AND clicks ≥ 20 AND click_potential = HIGH
Fix Price
clicks ≥ 10 AND conversions = 0 AND price_position = Overpriced
Cut
cost ≥ 50 AND conversions = 0 AND ROAS = 0
The difference from fixed-bucket tools is the condition flexibility. You can combine:
- Performance metrics: ROAS, cost, revenue, conversions, clicks, impressions, CTR, CPC, conversion rate, average order value
- Pricing data: price position (Overpriced/Competitive/Underpriced), price gap percentage, your price, benchmark price
- Feed attributes: brand, product type, availability, existing custom labels (0-4)
- Google signals: click potential (HIGH/MEDIUM/LOW)
- Computed dimensions: performance tier, spend weight
This means you can create rules like "label as Fix Price if the product has clicks but zero conversions AND is overpriced by more than 10% vs benchmark" — a rule that combines ad performance with Merchant Center pricing data. Scripts and fixed-bucket tools can't express this because they only see ad performance data.
Preview before applying
Before saving rules, you can preview the distribution — see how many products would land in each label category. This prevents launching a labeling scheme where 90% of products end up as "Cut" because a threshold was set too aggressively.
Auto-push to Merchant Center
Labels push to Merchant Center via the Content API through a dedicated supplemental datasource. You choose which custom_label slot (0-4) to use. With auto-push enabled, labels recalculate and push daily as part of the automated data refresh — no manual intervention.
Connected analytics
This is the part scripts and standalone labeling tools miss entirely. When labeling is connected to a full analytics platform, you can:
- See how each label group performs over time on the Portfolio Analytics page (10 synchronized time series charts, filterable by label)
- Track whether relabeling actually changed outcomes — did the "Scale" group grow revenue after getting higher bids?
- Cross-filter by brand, product type, and all 5 custom labels simultaneously to find patterns
- Identify products that keep cycling between labels (unstable classification suggesting threshold adjustment)
Approach Comparison
| Criteria | Scripts (Flowboost) | SaaS Tools | Analytics Platform |
|---|---|---|---|
| Label buckets | 4 fixed | 4-5 fixed | Unlimited custom |
| Condition fields | 2-3 | 3-5 | 40+ |
| MC push method | Via Sheets supplemental | Content API | Content API |
| Update frequency | Manual (run script) | Daily auto | Daily auto |
| Maintenance | High | None | None |
| Preview distribution | No | No | Yes |
| Performance analytics | No | No | Yes (13 pages) |
| Pricing data in conditions | No | No | Yes |
| Price | Free | From ~$40/mo | Invite-only |
Getting Started: Which Approach to Choose
The right approach depends on your catalog size, technical comfort, and what else you need beyond labeling.
Start with scripts if you want free and simple
The Flowboost script gets you from zero to labeled products in an afternoon. Good for learning how performance-based labels work. Expect to spend time maintaining the script and updating thresholds manually.
Use a SaaS labeling tool if you want hands-off automation
ProductHero, Shoptimised, or Optmyzr remove the maintenance burden. Labels compute and push automatically. Trade-off: you're still limited to fixed buckets and basic conditions.
Use an analytics platform if you need flexible rules and performance tracking
When you need conditions that combine performance + pricing + feed attributes, or you want to track whether your labeling strategy actually improves results over time. Also makes sense if you need title optimization, price benchmarking, or wasted spend analysis alongside labeling.
Implementation Checklist
Regardless of which approach you choose, here's what you need:
- Define your label strategy. What segments do you need? At minimum: top performers (bid up), growth opportunities (test higher bids), underperformers (reduce bids), and zero-conversion products (pause or restructure). See our custom labels guide for strategy frameworks.
- Choose your
custom_labelslot. You have 5 slots (0-4). Use one for performance labels. Reserve others for margin tiers, seasonality, brand grouping, or budget allocation segments. - Set initial thresholds. What ROAS qualifies as "Hero"? What click count means "enough data to evaluate"? Start conservative — you can always adjust after seeing the distribution.
- Build your campaign structure. Labels are pointless without campaigns to use them. Create campaign segments or ad groups that target specific label values, then apply appropriate bidding strategies per segment.
- Schedule regular reviews. Even automated labels need periodic threshold checks. Does your "Hero" threshold still make sense if your account-level ROAS shifted from 5x to 3x? Review distribution monthly.
Frequently Asked Questions
Can I automate custom labels without coding?
Yes. Several SaaS tools automate custom labels without requiring any scripting. ProductHero, Shoptimised, and SKU Analyzer all compute labels from ad performance data and push them to Merchant Center automatically. You configure rules in a visual interface and the tool handles the rest.
What is the Flowboost script for Google Shopping?
Flowboost is a free Google Ads script that labels products into four buckets (Over-index, Near-index, Under-index, No-index) based on click volume and ROAS. It outputs labels to a Google Sheet, which is then connected as a supplemental feed to Merchant Center. It's been downloaded over 5,000 times but requires manual threshold updates and script maintenance.
How often should custom labels be updated?
Daily updates work best for most accounts. Product performance changes day to day as budgets shift, competition fluctuates, and conversion patterns evolve. Daily relabeling ensures your campaign structure reflects current performance, not last week's data. Tools that auto-push labels daily eliminate the manual update cycle.
What conditions should custom labels be based on?
At minimum, use ROAS and cost (or clicks) to separate performers from non-performers. More advanced setups add conversion count, price competitiveness, click potential (a Google signal), availability, and brand. The more conditions you can combine, the more precise your label segmentation. Scripts typically support 2-3 conditions while SaaS tools support 10-40+.
Do custom label changes affect my Google Ads campaign performance?
Custom labels themselves don't affect performance — they're organizational tags. But when you use labels to segment campaigns and apply different bidding strategies per label group (higher bids for Hero products, lower for underperformers), the resulting campaign structure directly impacts performance. The label quality determines how effectively you can allocate budget.
Bottom Line
Automating custom labels is one of the highest-leverage optimizations for Google Shopping campaigns. The approach that started with free scripts has matured into a range of options from fully managed SaaS tools to analytics-integrated platforms.
If you're still manually reviewing products in Google Ads and setting labels by hand, even the simplest automation (a Flowboost script) will save hours per week. If you've outgrown scripts and want to stop maintaining code, SaaS labeling tools handle the plumbing. And if you need flexible rules that go beyond basic click-and-ROAS thresholds, or you want to track whether your labeling strategy actually moves the needle, the analytics-first approach gives you the most control.
Start with the approach that matches your current complexity. You can always upgrade as your needs grow.