The Google Shopping Multi-Feed Segmentation Guide
Ruslan Galba
Google Ads + AI
The Google Shopping Multi-Feed Segmentation Guide
How to Use Feed Labels, Custom Labels, and the 40-Variant Rule to Stop Your Products From Cannibalizing Each Other
The Problem No One Talks About
Your Google Shopping products are fighting each other.
Every time you group 100+ variants in one segment, you're funding both sides of an internal war. Google runs a lottery among YOUR products before the external auction even starts.
The result? Your best-fit product might not show. Quality Scores drop. CPCs rise. You pay more for worse results.
We've seen it across dozens of accounts. A hammock brand with 200 SKUs? Performed better split into 8 segments of 25 variants than 2 segments of 100. Same budget. Same products. Completely different results.
The fix isn't complicated. But it requires understanding something most advertisers miss:
Feed labels and custom labels aren't the same thing. They're layers in an architecture. And when you stack them correctly, you get surgical control over which products Google shows, to whom, and with what budget.
This guide shows you exactly how to build that architecture.
What You'll Learn
- Why most Google Shopping feeds bleed money through self-cannibalization
- The 4-Layer Feed Architecture (our proprietary framework for multi-feed segmentation)
- How to set up feed labels for structural campaign control
- The 40-Variant Rule: why segment size matters more than you think
- Performance bucketing with custom labels (dynamic product routing)
- Budget orchestration: same ROAS target, different budgets
- A 4-week implementation checklist
This guide is for: E-commerce advertisers running Shopping or Performance Max with 100+ SKUs who want more control over product-level performance.
Time to implement: 2-4 weeks for full architecture. Immediate improvements from proper segment sizing.
Section 1: Why Most Google Shopping Feeds Bleed Money
The Cannibalization Chain
Here's what happens when you stuff 100+ variants into one segment:
Step 1: A search query comes in (e.g., "outdoor hammock with stand")
Step 2: Google looks at your segment. 100+ products could match.
Step 3: Google runs an internal auction among YOUR products to pick which one to show.
Step 4: Your best-fit hammock might lose to a lower-margin option or an out-of-stock variant.
Step 5: You pay for a click that converts poorly (or not at all).
Step 6: Google's algorithm learns from that bad signal. It shows similar "bad fits" in the future.
Step 7: Quality Score drops. CPCs rise. You bid more for worse results.
This is the cannibalization chain. It compounds over time. And it's invisible unless you know what to look for.
The Numbers
- Products in oversized segments see 15-30% higher CPCs than properly sized segments
- Less than 10% of your products typically generate 80%+ of your revenue
- Brands that segment properly see 10-30% ROAS improvement
- One study showed 93.65% conversion increase from proper segmentation
These aren't cherry-picked outliers. This is what happens when you give Google's algorithm fewer (but better) options.
The Confusion That Costs You
Most advertisers treat "feed labels" and "custom labels" as interchangeable terms. They're not.
Feed labels:
- Structural segmentation at the data source level
- Set when you create a feed in Merchant Center
- Immutable after creation
- One feed label per campaign
Custom labels:
- Dynamic segmentation within campaigns
- Can be updated via supplemental feeds
- Five available (custom_label_0 through custom_label_4)
- Changeable at any time
When you understand this distinction, you can build a two-layer system:
- Feed labels create hard campaign boundaries
- Custom labels create flexible product routing within those boundaries
Most advertisers use one or the other. The best results come from using both.
Section 2: The 4-Layer Feed Architecture
We call our framework "The 4-Layer Feed Architecture." It's how we structure multi-feed Shopping accounts that need maximum control without maximum complexity.
Think of it like building a skyscraper. Each layer supports the next.
Layer 1: Feed Label Foundation
What it is: Structural segmentation at the data source level in Google Merchant Center.
Why it matters: Feed labels determine which products can enter which campaigns. This is your immutable framework. Once set, you can't change a feed's label without creating a new feed.
Typical use cases:
- Separating products by country/language
- Creating brand vs. non-brand campaign boundaries
- Segmenting by product category at the highest level
- Maintaining separate feeds for different marketplaces
Impact: Creates clean campaign boundaries. Prevents cross-contamination between product universes.
Layer 2: The 40-Variant Rule
What it is: A hard cap of 40 variants per segment (target 25-35) within any campaign or asset group.
Why it matters: This is where most accounts bleed money. Too many variants = Google can't determine which to show. Quality Score drops. CPCs rise.
The numbers:
- Maximum: 40 variants per segment
- Sweet spot: 25-35 variants per segment
- Minimum: Don't go below 20 (you'll over-segment and dilute data)
Impact: 15-30% CPC reduction in properly sized segments. Immediate performance improvement.
Layer 3: Performance Bucketing
What it is: Dynamic custom labels that sort products by real-time performance.
The 4-tier system (our naming):
- Winners: Top 10% of products generating 80%+ of revenue. Maximize spend.
- Risers: High potential, near-target performance. Increase exposure to find new Winners.
- Laggards: Below target, still converting. Reduce spend, don't eliminate.
- Sleepers: Low impressions, unknown potential. Test with limited budget.
Why it matters: Products should flow between tiers based on actual results. A Sleeper can become a Winner. A Winner can become a Laggard. Static segmentation misses this.
Impact: Budget automatically flows toward what works. 10-30% ROAS improvement.
Layer 4: Budget Orchestration
What it is: Same ROAS target across all segmented campaigns, but different daily budgets.
Why most people get this wrong: They set different ROAS targets for different tiers. This creates competing optimizations. Smart bidding gets confused.
The correct approach:
- Same target ROAS for all campaigns in your architecture
- Different budgets for each tier
- Winners get 50-60% of total budget
- Risers get 15-20%
- Laggards get 15-20%
- Sleepers get 10-15%
Impact: Lets smart bidding optimize without internal conflict. Budget controls priority, not ROAS targets.
How the Layers Work Together
┌─────────────────────────────────────────────────────────────┐
│ LAYER 1: Feed Labels (GMC) │
│ ├── FEED-US-BRAND → Brand Campaign │
│ ├── FEED-US-CATEGORY1 → Category 1 Campaign │
│ └── FEED-US-CATEGORY2 → Category 2 Campaign │
│ │
│ LAYER 2: 40-Variant Rule (within each campaign) │
│ └── Each segment: 25-35 variants max │
│ │
│ LAYER 3: Performance Buckets (custom labels) │
│ ├── Winners → Asset Group 1 │
│ ├── Risers → Asset Group 2 │
│ ├── Laggards → Asset Group 3 │
│ └── Sleepers → Asset Group 4 │
│ │
│ LAYER 4: Budget Orchestration (Google Ads) │
│ └── Same ROAS target, different budgets per tier │
└─────────────────────────────────────────────────────────────┘
Section 3: Layer 1 - Setting Up Feed Labels
When to Use Multiple Feeds
Use separate feeds when:
- You sell in multiple countries/languages
- You have distinct product lines with different margin structures
- You want brand vs. non-brand campaign separation
- You need different pricing/availability by marketplace
Use a single feed when:
- You're US-only, single language
- All products have similar margin structures
- You don't need campaign-level product isolation
Feed Label Naming Conventions
Feed labels must follow Google's rules:
- Maximum 20 characters
- A-Z uppercase only
- Numbers 0-9
- Hyphens and underscores
- No spaces
Recommended format: [COUNTRY]-[CATEGORY]-[TYPE]
Examples:
US-OUTDOOR-BRANDUS-INDOOR-GENERALUK-OUTDOOR-SALEDE-ALL-PRODUCTS
Keep labels descriptive but short. You'll reference these in Google Ads.
Step-by-Step: Creating a Feed Label in GMC
Prerequisites: Enable "Advanced data source management" in Merchant Center Add-ons
- Go to Settings → Data Sources in Merchant Center
- Click "Add product source"
- Configure your data source (file upload, Google Sheets, or API)
- Scroll to bottom - find "Feed label" setting
- Click the pencil icon next to feed label
- Enter your label name (following naming conventions)
- Click Save
Important: Once created, you cannot change a feed's label. Plan your architecture before creating feeds.
Common Mistakes
Mistake 1: Creating too many feeds
- Symptom: 10+ feeds for a single country
- Fix: Use custom labels for dynamic segmentation, not feed labels
Mistake 2: Inconsistent naming
- Symptom:
US_Products,usa-brand,US-OUTDOOR - Fix: Establish convention BEFORE creating feeds
Mistake 3: Forgetting to enable Advanced data source management
- Symptom: Can't see feed label option
- Fix: Settings → Add-ons → Enable "Advanced data source management"
Section 4: Layer 2 - Applying the 40-Variant Rule
How to Audit Current Segment Sizes
In Google Ads:
- Go to your Shopping or PMax campaign
- Navigate to Product Groups (Shopping) or Listing Groups (PMax)
- Look at the "Products" column for each group
- Flag any group with 40+ products
What you're looking for:
- Groups with 100+ products (critical - fix first)
- Groups with 40-100 products (priority - fix soon)
- Groups with 40 or fewer (acceptable - verify 25-35 target)
How to Split Oversized Segments
Option 1: Use existing attributes
- Split by brand
- Split by product type
- Split by price range
- Split by category
Option 2: Create custom labels for segmentation
- Add a custom label via supplemental feed
- Label by margin tier
- Label by performance tier
- Label by seasonality
Example: Hammock brand with 200 SKUs
Before:
- Campaign 1: Hammocks (100 products)
- Campaign 2: Accessories (100 products)
After:
- Campaign 1: Hammocks - Portable (25 products)
- Campaign 2: Hammocks - With Stand (30 products)
- Campaign 3: Hammocks - Indoor (20 products)
- Campaign 4: Hammocks - Premium (25 products)
- Campaign 5: Accessories - Hardware (35 products)
- Campaign 6: Accessories - Fabrics (30 products)
- Campaign 7: Accessories - Care (25 products)
- Campaign 8: Bundles (10 products)
Same 200 SKUs. 8 campaigns instead of 2. Each segment: 25-35 products.
The 25-35 Sweet Spot
Why 25-35?
Below 20: You're over-segmenting. Not enough products for Google to learn from. Data gets diluted across too many small groups.
20-25: Acceptable for very specific, high-margin product lines.
25-35: Sweet spot. Enough variety for Google to match queries. Small enough to prevent cannibalization.
35-40: Upper acceptable range. Watch for performance drops.
40+: You're back to cannibalization. Split this segment.
When NOT to Segment
Don't segment when:
- You have fewer than 50 conversions per month total
- A product line has fewer than 20 products
- You're launching new products (let Google gather data first)
- You don't have 90+ days of performance data
In these cases, start with broader segments and refine as data accumulates.
Section 5: Layer 3 - Performance Bucketing with Custom Labels
The 4-Tier System
We use four performance tiers. Our naming differs from other systems, but the logic is consistent:
Winners (custom_label: WINNER)
- Definition: Top-performing products exceeding ROAS target
- Typical %: 10-15% of catalog generates 70-80% of revenue
- Action: Maximize exposure. These pay the bills.
Risers (custom_label: RISER)
- Definition: Products near ROAS target with high click volume
- Typical %: 15-20% of catalog
- Action: Increase budget to test if they become Winners
Laggards (custom_label: LAGGARD)
- Definition: Products below ROAS target but still converting
- Typical %: 20-30% of catalog
- Action: Reduce budget, don't eliminate. Monitor for trend changes.
Sleepers (custom_label: SLEEPER)
- Definition: Products with low impressions (unknown potential)
- Typical %: 40-50% of catalog
- Action: Test with limited budget to wake them up
Setting Up Supplemental Feeds for Custom Labels
Step 1: Create your supplemental data source
- In Merchant Center, go to Settings → Data Sources
- Click "Add supplemental source"
- Choose format (Google Sheets recommended for easy updates)
- Connect your source
Step 2: Structure your supplemental feed
Required columns:
id(must match primary feed product IDs)custom_label_X(where X is 0-4)
Example Google Sheet:
| id | custom_label_0 |
|---|---|
| SKU001 | WINNER |
| SKU002 | RISER |
| SKU003 | LAGGARD |
| SKU004 | SLEEPER |
Step 3: Map the supplemental feed
- Go to the supplemental source settings
- Connect it to your primary feed
- Map the
custom_label_Xcolumn
Step 4: Schedule updates
- Manual: Update weekly based on performance reports
- Automated: Use scripts or third-party tools to update daily
Performance Tier Criteria
How to assign products to tiers (based on last 30 days):
| Tier | ROAS vs Target | Clicks | Conversions |
|---|---|---|---|
| Winner | 125%+ of target | 50+ | 5+ |
| Riser | 75-124% of target | 25+ | 2+ |
| Laggard | Below 75% | 25+ | 1+ |
| Sleeper | Any | Under 25 | Any |
Adjust thresholds based on your volume. High-volume accounts can use stricter criteria.
Automation Options
Manual approach:
- Export product performance weekly
- Calculate tier assignments in a spreadsheet
- Update supplemental feed
- Time: 2-3 hours per week
Semi-automated approach:
- Use Google Ads scripts to export data
- Process in Google Sheets with formulas
- Upload supplemental feed via scheduled fetch
- Time: 30 minutes per week
Fully automated approach:
- Third-party tools (Producthero Labelizer, Channable, DataFeedWatch)
- Daily updates based on real-time performance
- Products flow between tiers automatically
- Time: Initial setup, then minimal maintenance
When to Manually Override
Automation is useful, but sometimes you know better than the algorithm:
Override to Winner:
- New product launch with strategic importance
- Seasonal items before peak season
- High-margin products you want to push
Override to Laggard:
- Stock running low - reduce exposure
- Margin compressed due to competitor pricing
- Known quality issues
Override to Sleeper:
- Testing new creative before broader rollout
- Gathering data on repositioned products
Section 6: Layer 4 - Budget Orchestration
Same ROAS Target, Different Budgets
This is counterintuitive. Most advertisers think: "Winners should have higher ROAS targets. Sleepers should have lower ones."
That's backwards.
When you set different ROAS targets, you create competing optimizations. Smart bidding in one campaign optimizes against a different standard than another campaign. Products can't flow between tiers cleanly.
The correct approach:
Set the SAME target ROAS for all campaigns in your segmented architecture.
Control priority through BUDGET, not ROAS targets.
Example:
- Total daily budget: $1,000
- Target ROAS: 400% (for ALL campaigns)
| Campaign | Tier | Daily Budget | % of Total |
|---|---|---|---|
| PMax-Winners | Winner | $500 | 50% |
| PMax-Risers | Riser | $200 | 20% |
| PMax-Laggards | Laggard | $150 | 15% |
| PMax-Sleepers | Sleeper | $150 | 15% |
Winners get the most budget. But the target is the same. Smart bidding optimizes toward 400% ROAS in all campaigns, with budget constraints determining which products get priority.
Budget Allocation Guidelines
Conservative approach (prioritize profitability):
- Winners: 55-60%
- Risers: 20%
- Laggards: 10-15%
- Sleepers: 10%
Growth approach (prioritize volume):
- Winners: 40-45%
- Risers: 25%
- Laggards: 15%
- Sleepers: 15-20%
Testing approach (finding new Winners):
- Winners: 40%
- Risers: 20%
- Laggards: 15%
- Sleepers: 25%
Adjust based on your goals. The percentages matter less than the principle: same target, different budgets.
Campaign Naming Conventions
Consistent naming makes reporting and management easier.
Format: [COUNTRY]_[TYPE]_[FEEDLABEL]_[TIER]
Examples:
US_PMAX_OUTDOOR_WINNERSUS_PMAX_OUTDOOR_RISERSUS_PMAX_OUTDOOR_LAGGARDSUS_PMAX_OUTDOOR_SLEEPERS
Or if you don't use feed labels for structural separation:
US_PMAX_ALL_WINNERSUS_PMAX_ALL_RISERS
Monitoring and Adjustments
Weekly check:
- Are products flowing between tiers appropriately?
- Is each tier's performance in line with expectations?
- Are budget constraints causing limited-by-budget status?
Monthly review:
- Recalculate tier assignments if using manual approach
- Adjust budget percentages based on performance trends
- Consider ROAS target adjustments (change universally, not per-tier)
Quarterly audit:
- Review overall architecture
- Check for segment bloat (40-variant rule compliance)
- Consider adding/removing feed labels based on catalog changes
Section 7: Implementation Checklist
Week 1: Audit and Planning
Day 1-2: Current State Audit
- Export all product performance data (90 days)
- Count products per segment in all Shopping/PMax campaigns
- Identify segments with 40+ products
- Calculate current tier distribution (Winners/Risers/Laggards/Sleepers)
Day 3-4: Architecture Design
- Decide on feed label structure (or confirm single feed)
- Map out campaign/asset group structure
- Define tier criteria (ROAS thresholds, click thresholds)
- Calculate target budget allocations
Day 5: Supplemental Feed Setup
- Create Google Sheet for supplemental feed
- Build tier assignment formulas
- Populate initial tier assignments
- Test supplemental feed connection in GMC
Week 2: Feed Label Setup (If Using Multiple Feeds)
Day 1-2: Create New Feeds
- Enable "Advanced data source management" in GMC
- Create feed labels following naming convention
- Upload product data to new feeds
- Verify all products are approved
Day 3-4: Validate Structure
- Confirm feed labels visible in Google Ads
- Check product counts per feed
- Verify no duplicate products across feeds
Day 5: Documentation
- Document feed label architecture
- Create reference guide for team
- Save naming conventions for future feeds
Week 3: Custom Label Implementation
Day 1-2: Supplemental Feed Go-Live
- Connect supplemental feed to primary feed(s)
- Verify custom labels appearing on products
- Spot-check tier assignments
Day 3-4: Campaign Restructure
- Create new campaigns for each tier (or asset groups)
- Set same ROAS target across all
- Configure budget allocation per tier
- Apply listing group filters for custom labels
Day 5: Variant Rule Compliance
- Split any remaining 40+ segments
- Verify all segments are 25-40 products
- Document segment structure
Week 4: Campaign Launch and Monitoring
Day 1-2: Soft Launch
- Enable new campaign structure at 50% of normal budget
- Monitor for errors or disapprovals
- Verify products showing in correct campaigns
Day 3-4: Full Launch
- Increase to full budget allocation
- Set up automated reporting
- Create performance dashboards
Day 5: First Week Review
- Document initial performance baseline
- Identify any products in wrong tiers
- Adjust tier criteria if needed
Ongoing Maintenance
Weekly (30-60 minutes):
- Update tier assignments (or verify automation)
- Check for budget pacing issues
- Review segment sizes for new products
Monthly (2-3 hours):
- Full performance review by tier
- Adjust budget allocations
- Review and update tier criteria
Quarterly (half day):
- Architecture audit
- Feed label review
- 40-variant rule compliance check
- Consider structural changes
Quick Reference: Decision Trees
Do I Need Multiple Feed Labels?
START: Do you sell in multiple countries?
├── YES → Use feed labels per country
└── NO → Continue
│
├── Do you have distinct product lines with different margins?
│ ├── YES → Consider feed labels per product line
│ └── NO → Continue
│ │
│ └── Do you need hard campaign boundaries?
│ ├── YES → Use feed labels
│ └── NO → Single feed is fine (use custom labels)
How Should I Split This Segment?
START: Segment has 40+ products
│
├── Can I split by brand?
│ └── YES → Split by brand (if creates 25-35 per group)
│
├── Can I split by product type?
│ └── YES → Split by product type
│
├── Can I split by price range?
│ └── YES → Split by price range ($0-50, $50-100, etc.)
│
└── None work? → Create custom label based on performance tier
What Tier Should This Product Be?
START: Product performance (last 30 days)
│
├── 25+ clicks AND 5+ conversions AND ROAS > 125% target
│ └── → WINNER
│
├── 25+ clicks AND 2+ conversions AND ROAS 75-124% target
│ └── → RISER
│
├── 25+ clicks AND 1+ conversions AND ROAS < 75% target
│ └── → LAGGARD
│
└── <25 clicks
└── → SLEEPER
Summary: The 4-Layer Feed Architecture
Layer 1: Feed Label Foundation
- Creates structural campaign boundaries
- Set in Merchant Center, immutable after creation
- Use for country, language, or major product line separation
Layer 2: The 40-Variant Rule
- Max 40 variants per segment, target 25-35
- Prevents internal product cannibalization
- Split oversized segments by brand, type, price, or custom label
Layer 3: Performance Bucketing
- Winners, Risers, Laggards, Sleepers
- Applied via custom labels in supplemental feeds
- Products flow between tiers based on real performance
Layer 4: Budget Orchestration
- Same ROAS target across all segmented campaigns
- Different budgets control priority
- Winners get most budget, Sleepers get least
Expected results:
- 15-30% CPC reduction from proper segment sizing
- 10-30% ROAS improvement from budget orchestration
- Products flow to their natural performance tier
- You get surgical control without managing thousands of individual products
What to Do Next
- Audit your current setup: How many products are in your largest segment?
- Identify quick wins: Any 100+ product segments? Split them first.
- Decide on architecture: Single feed with custom labels, or multiple feeds?
- Build your supplemental feed: Start with manual tier assignments.
- Implement gradually: Don't restructure everything at once.
The 4-Layer Feed Architecture isn't about complexity. It's about giving Google's algorithm the constraints it needs to make smart decisions on your behalf.
When your products stop fighting each other, your ROAS improves. When your budget flows to winners automatically, you scale profitably. When your architecture supports your goals instead of working against them, Google Shopping becomes the channel it should be.
Stop funding both sides of the war. Build the architecture. Let your products win.
For questions or implementation support, reach out on X/Twitter.