Here's what happens in most PMax accounts:
You have 500+ products. They're split across 3-4 asset groups, maybe multiple campaigns. Google shows you campaign ROAS. Asset group performance. Pretty charts.
But ask Google: "Which specific products are driving profit vs. bleeding budget?"
Silence. (Helpful, right?)
We've audited 20+ brands. The pattern is consistent:
The problem isn't your bidding. It's not your assets. It's not even your budget.
The problem is you can't see what's actually happening at the product level. (And Google isn't going to help you.)
Google's PMax structure fragments your products across campaigns and asset groups - then gives you no native way to aggregate that data back together.
A product might be a winner in one campaign and a loser in another. Neither shows the full picture.
You're flying blind on the metrics that matter most.
A PPC specialist at CXL analyzed a client's PMax campaign. What they found:
The fix: Segmented products by performance, increased budget on winners.
Why it worked: When you stop averaging winners with losers, Google's algorithm can bid more aggressively on proven products.
The high performers were subsidizing the underperformers. Separating them let each tier optimize to its actual potential.
Results:
Same budget. Same products. Different allocation. (This is the whole game.)
Acquisit worked with Lancôme on their PMax structure. Initial setup followed Google's recommendation: all products in one asset group. (Sound familiar?)
The fix: Segmented inventory into 5 distinct asset groups by product category.
Why it worked: Different product categories have different buyer intent and conversion patterns. Skincare buyers behave differently than fragrance buyers.
Lumping them together forced Google to find a single "average" bidding strategy that worked poorly for everything. Separating them let each category develop its own optimized signal.
Results (Jan - June 2024):
Google's "best practice" of consolidation was actively hurting performance. (Shocking, I know.)
Producthero's automated segmentation system labels products as Heroes, Sidekicks, Villains, and Zombies based on performance.
Consistent finding: 30%+ ROAS improvement when advertisers shift spend from underperformers to top products.
Why it works: Google's bidding algorithm optimizes for campaign-level ROAS - it doesn't care which individual products convert.
If your target is 3x and your campaign hits 3x, Google is satisfied. But that 3x might be 8x winners averaging out with 0.5x losers.
Labeling forces visibility and lets you intervene before Google's algorithm "solves" the wrong problem.
The pattern: Top 10% of products (Heroes) deliver 80% of revenue. But without per-product visibility, you're treating all products equally.
We developed this framework after auditing 20+ brands. The sequence matters - each phase builds on the previous one.
P = PROFILE → Extract per-product data across ALL campaigns
A = AGGREGATE → Combine data to see true performance
C = CLASSIFY → Label products by performance tier
E = EXECUTE → Apply optimization tactics per tier
Why this sequence? You can't aggregate what you haven't profiled. You can't classify without aggregate truth. And you can't execute tier strategies without classification.
Skip a step and you're back to guessing. (We've watched people try. It doesn't work.)
Each phase has specific actions. Initial setup: 2-4 hours. Weekly maintenance: 30 minutes.
Goal: Get performance data for every product, from every campaign.
For each product (by item_id or SKU):
Option A: Google Ads Interface
Option B: Google Ads Scripts Use a script to automatically pull product performance across campaigns. Mike Rhodes' PMax scripts are a good starting point.
Option C: Third-Party Tools
You need to export SEPARATELY for each campaign, then combine. Google's default view shows aggregate - but you need campaign-level product data to spot fragmentation.
Example: Product ABC might show 3x ROAS aggregate. But when you check by campaign:
The "3x aggregate" hides both an opportunity and a problem. (This is what we find in almost every account.)
Before moving to Phase 2:
Goal: See how each product actually performs when you combine all campaign data.
Step 1: Create a Master Sheet
Columns needed:
| Column | Description |
|---|---|
| product_id | Unique SKU/item_id |
| product_title | Name for reference |
| total_impressions | Sum across all campaigns |
| total_clicks | Sum across all campaigns |
| total_cost | Sum across all campaigns |
| total_conversions | Sum across all campaigns |
| total_revenue | Sum across all campaigns |
| aggregate_roas | total_revenue / total_cost |
| campaign_count | How many campaigns product appears in |
| best_campaign_roas | Highest single-campaign ROAS |
| worst_campaign_roas | Lowest single-campaign ROAS |
Step 2: Calculate Aggregate Metrics
For each product:
Aggregate ROAS = Total Revenue ÷ Total Cost (across ALL campaigns)
CTR = Total Clicks ÷ Total Impressions
CPA = Total Cost ÷ Total Conversions
Step 3: Identify Fragmentation
Flag products where:
These are your biggest opportunities.
In a typical 500+ product catalog (based on our audits):
The winners need more budget. The losers are stealing from them.
Before moving to Phase 3:
Goal: Label every product by performance tier using custom_labels in your feed.
HEROES (Scale Aggressively)
SIDEKICKS (Optimize Carefully)
VILLAINS (Reduce Spend)
ZOMBIES (Test or Remove)
Step 1: Define Your Target ROAS
What ROAS do you need to be profitable after:
Example: If you need 3.5x ROAS to break even, your target might be 4x.
Step 2: Set Tier Boundaries
| Tier | ROAS Range (4x target example) | Logic |
|---|---|---|
| Hero | >5x | 25%+ above target |
| Sidekick | 3.2x - 5x | Within ±20% of target |
| Villain | <3.2x | 20%+ below target |
| Zombie | <100 impressions | Insufficient data |
Adjust based on your margins and targets.
In Google Merchant Center:
Create a supplemental feed with:
Upload as supplemental feed
Schedule refresh (daily or weekly)
Feed Structure Example:
item_id,custom_label_0,custom_label_1
SKU001,hero,roas_8x_plus
SKU002,sidekick,roas_4x_to_6x
SKU003,villain,roas_under_3x
SKU004,zombie,low_impressions
Manual: Update spreadsheet weekly, upload to GMC Semi-Automated: Google Sheets + scheduled supplemental feed upload Fully Automated: Tools like Producthero, BlueWinston, or custom scripts
For accounts with 1000+ SKUs, automation is essential. Manual labeling doesn't scale.
Before moving to Phase 4:
Goal: Apply different strategies to each product tier.
Recommended Setup:
Campaign 1: Heroes (Scale)
├── Asset Group: Hero Products
├── Budget: 60% of total PMax budget
├── tROAS: Aggressive (below target to maximize volume)
└── Goal: Capture maximum conversions from proven winners
Campaign 2: Sidekicks (Optimize)
├── Asset Group: Sidekick Products
├── Budget: 30% of total PMax budget
├── tROAS: Target (at your actual target)
└── Goal: Maintain efficiency, test for Hero promotion
Campaign 3: Villains + Zombies (Contain/Test)
├── Asset Group A: Villain Products
├── Asset Group B: Zombie Products (optional separate)
├── Budget: 10% of total PMax budget (combined)
├── tROAS: Conservative for Villains, standard for Zombies
└── Goal: Break even or identify candidates for removal/graduation
The 60/30/10 Rule:
Why these ratios? Based on the 80/20 pattern we see in audits - your top products drive disproportionate revenue.
Matching budget allocation to revenue potential is the optimization Google won't do for you. (It sounds obvious. It's rarely implemented.)
Adjust based on your catalog. If you have few Heroes, start with 50/35/15 until more products prove themselves.
Heroes: Lower tROAS than target
Sidekicks: Target tROAS exactly
Villains: Higher tROAS than target
Zombies: Maximize Clicks or standard tROAS
Every week, review and adjust:
Heroes:
Sidekicks:
Villains:
Zombies:
Once per month:
Products move between tiers. A Hero can become a Villain (seasonality, competition). A Zombie can become a Hero (trends, reviews).
Monthly relabeling keeps your structure aligned with reality.
Day 1-2: Extract product data from all campaigns Day 3-4: Build master sheet, aggregate by product Day 5: Identify fragmentation, calculate variance Day 6-7: Review findings, define tier thresholds
Day 8-9: Classify all products into 4 tiers Day 10-11: Create supplemental feed Day 12-13: Upload to GMC, verify labels showing Day 14: Build new campaign structure
Day 15: Launch tier-based campaigns Day 16-21: Monitor daily, don't make major changes Day 21: First performance check
Day 22-28: Weekly optimization based on data Day 28-30: First monthly relabeling cycle Day 30: Document results, set ongoing schedule
Based on the case studies above and our audit data:
The brands hitting 30%+ ROAS improvement (like the CXL case study's 39% revenue increase) aren't doing anything magical.
They're looking at product-level data that Google doesn't show by default.
Now you can too. (Takes 2-4 hours to set up. Worth every minute.)
The P.A.C.E. Method exists because we made expensive mistakes first. (The recurring theme of this business.)
Mistake: Over-segmenting too early. We used to create 8+ tier campaigns immediately. Bad idea.
Google's algorithm needs data density. With too many campaigns, each one starved for conversions and never learned. Now we start with 3 campaigns (Heroes, Sidekicks, Villains+Zombies combined) and only split further once each hits 50+ monthly conversions.
Mistake: Relabeling too frequently. Weekly relabeling felt proactive. Turns out it caused chaos - products bounced between tiers before the algorithm could optimize.
Monthly is the right cadence. Let the data accumulate.
Mistake: Ignoring margin data. Early versions only classified by ROAS. But a 5x ROAS product with 10% margin is worse than a 3x ROAS product with 40% margin.
Now we layer margin data into classification. Some "Villains" by ROAS are actually profit Heroes.
These failures shaped the method. Follow P.A.C.E. and you skip the learning tax we paid.
We help e-commerce brands implement per-product PMax optimization. Our typical engagement:
Want us to audit your account? Reach out at tegra.co
Google's PMax structure fragments your products across campaigns - then hides the aggregate truth.
The fix:
The data shows 3.4% of products often generate 61% of value. Without per-product visibility, you're treating all products equally - and bleeding budget on products that don't convert.
Stop optimizing campaigns. Start optimizing products.
This guide is based on analysis of 20+ brands and validated by case studies showing 15-40% ROAS improvement from per-product optimization.
We built a Google Sheet that does the aggregation and classification automatically. Drop in your exports, it spits out your Heroes, Sidekicks, Villains, and Zombies.
Reply "PACE" and I'll send it over.
(Must be following)