June 11, 2026
5
min read

How An Ecommerce Brand Recovered ROAS After Performance Max Cannibalization


Alexander Perleman
, Head Of Product @ groas
Ex-Goldman Sachs and Stanford Computer Science

alex@groas.ai

LinkedIn
Abstract topographic landscape in deep slate tones with layered amber-lit terrain contours rising and falling, illuminated by a single soft directional light source.

Performance Max cannibalization is one of the most common reasons ecommerce brands see ROAS stall or decline despite increasing ad spend. This is the story of an ecommerce brand running around $80K per month in Google Ads that watched returns flatten over a six-month stretch, eventually traced the problem to structural issues in their Performance Max campaigns, product feed, and smart bidding configuration, and then rebuilt the account to recover profitability. The pattern here is not rare. It shows up in a significant share of ecommerce accounts that scaled quickly on Performance Max without building the structural foundation to sustain that growth. The rebuild took roughly three weeks to execute, and the results started showing within the first billing cycle.

The Situation: A Growing Ecommerce Brand With Stalling Returns

Business Profile And Ad Spend Scale

The brand in this case sells consumer goods across roughly 1,200 SKUs in a competitive vertical. They had been running Google Ads for years, starting with standard Shopping campaigns and Search, then migrating heavily into Performance Max as Google pushed that direction. Monthly ad spend had grown from around $30K to over $80K in about 18 months. Revenue grew with it initially, but the ratio started to slip.

The Symptoms: Flat ROAS Despite Rising Spend

At the $80K/month mark, ROAS had dropped from roughly 5x at its peak to hovering around 2.8x, and it was not responding to spend adjustments. The in-house team tried pulling back budget. ROAS barely moved. They tried increasing budget on what looked like the highest-performing asset groups. No meaningful improvement. The account felt stuck.

What The Account Looked Like Before The Rebuild

The account had three active Performance Max campaigns, each with broad asset groups that mixed product categories, price tiers, and margin profiles together. A single standard Shopping campaign was still running alongside them, mostly as a catch-all. Brand search terms were not isolated in any dedicated campaign. The product feed had not been meaningfully updated in over a year. Smart bidding was targeting a tCPA based on an "Add to Cart" event rather than actual purchase revenue.

This is a setup that works fine at low spend. At $80K per month across 1,200 SKUs, it falls apart.

Diagnosing The Real Problem

The surface-level complaint was "ROAS is declining." The actual problem was four distinct structural issues compounding each other. Fixing any one of them in isolation would not have recovered performance. They needed to be addressed together.

Problem 1: Performance Max Was Cannibalizing Branded And Shopping Traffic

Performance Max, by design, serves across Search, Shopping, Display, YouTube, Gmail, and Discover. When brand terms are not excluded or isolated, PMax will happily absorb branded search traffic and report it as PMax performance. In this account, a meaningful portion of what looked like PMax conversions were actually branded queries that would have converted anyway at near-zero incremental cost in a dedicated Search campaign.

The result: PMax looked like it was performing better than it actually was on prospecting, and the algorithm optimized toward more of this easy, branded traffic rather than the harder, higher-value net-new customer acquisition the brand actually needed.

This problem is explored in detail in our piece on brand term bidding incrementality, and it applies directly to any ecommerce account running PMax alongside brand search.

Problem 2: The Product Feed Was Suppressing Impression Share On High-Margin SKUs

The product feed was technically functional but strategically neglected. Product titles were generic manufacturer descriptions, not optimized for search query matching. Several high-margin SKUs had disapprovals due to GTIN mismatches and policy violations that had been sitting unresolved for months. The feed did not use supplemental feeds for enrichment.

The practical effect: Google's Shopping algorithm could not match high-margin products to high-intent queries effectively. Low-margin, commodity-priced SKUs with cleaner data were getting disproportionate impression share. The brand was spending heavily on products that barely covered their COGS after ad cost.

Problem 3: Smart Bidding Was Optimizing For Low-Value Micro-Conversions

This is one of the most damaging and common mistakes in ecommerce Google Ads accounts. The primary conversion action was set to "Add to Cart" rather than "Purchase." The reasoning at the time was probably that purchases were too infrequent to give smart bidding enough signal.

The problem is that Add to Cart and Purchase have very different value profiles. A customer who adds a $12 accessory to their cart gets weighted the same as one who adds a $200 bundle. Smart bidding was chasing volume of cart additions, not revenue from completed transactions. It was succeeding at the wrong objective.

This connects directly to the broader pattern of smart bidding misfiring when conversion tracking and attribution are misconfigured. The algorithm does exactly what you tell it to do. If you tell it the wrong thing, it optimizes brilliantly in the wrong direction.

Problem 4: No Custom Label Segmentation By Margin Or Velocity

The feed had zero custom labels. Every product was treated identically by bidding algorithms. A SKU with a 60% margin and strong repeat-purchase behavior got the same treatment as a loss-leader priced item with 8% margin. Without margin-aware segmentation, smart bidding had no way to distinguish between a conversion worth $80 in gross profit and one worth $3.

This is the structural gap that makes feed quality as important as bidding strategy in ecommerce. You can get bidding perfectly right and still lose money if the algorithm treats all products as equally valuable.

The Rebuild: What Changed And Why

The fix was not a single tactic. It was a coordinated restructuring of campaigns, feed data, conversion tracking, and bidding targets. Here is what changed.

Restructuring Performance Max Asset Groups Around Product Categories

The three broad PMax campaigns were replaced with a category-based structure. Each major product category got its own asset group with category-specific creative assets, audience signals relevant to that category's buyer profile, and listing groups filtered to only include products from that category.

This gave the algorithm cleaner signals per asset group. Instead of trying to optimize across 1,200 mixed SKUs with a single set of audience signals and creative, each asset group could learn what works for its specific product set.

Fixing The Feed: Custom Labels, Title Optimization, And Disapproval Cleanup

Five custom labels were implemented:

  • Margin tier (high, medium, low)
  • Sales velocity (fast-moving, steady, slow)
  • Price bracket
  • Seasonal relevance flag
  • Promotional status

Product titles were rewritten to front-load the most relevant search terms. For instance, a title like "Model XR-200" became "Wireless Bluetooth Headphones - Model XR-200 - Noise Cancelling Over-Ear" (representative example). Every disapproval was resolved, and a supplemental feed was set up for ongoing enrichment without touching the primary feed.

Moving Smart Bidding Target To Revenue Value With Margin-Adjusted Conversion Values

The primary conversion action was switched from Add to Cart to Purchase with dynamic revenue values. But the team went further: they implemented margin-adjusted conversion values using the custom label data. High-margin products reported a higher conversion value to Google's bidding algorithm than low-margin products at the same revenue.

This is the single most impactful change in the rebuild. It aligned what smart bidding was optimizing for with what actually made the business money. Instead of chasing revenue, the algorithm was now chasing profitable revenue.

Separating Branded Search Into A Standalone Campaign With A Cap

All brand terms were moved into a dedicated Search campaign with exact match keywords and a daily budget cap. A brand exclusion list was applied to Performance Max campaigns (using the available brand list feature). This ensured that branded traffic converted at its natural rate without inflating PMax performance metrics or consuming PMax budget that should have been spent on prospecting.

The math behind brand bidding incrementality made the case clearly: most branded clicks would have happened organically. Paying PMax rates for them was pure waste.

The Results

ROAS Trajectory Over 90 Days Post-Rebuild

Within the first 30 days, ROAS climbed from 2.8x back to approximately 3.5x. By day 60, with smart bidding fully re-learned on the new conversion values, ROAS stabilized around 4.2x. By day 90, the account was approaching its previous peak performance but at nearly three times the spend level where that peak originally occurred.

To be clear: these are representative of the trajectory for this type of rebuild, not precise figures from a named customer. The rate of recovery depends on account history, vertical competitiveness, and how much data the algorithm had to re-learn.

How Shopping Impression Share Changed

High-margin SKUs saw a significant increase in impression share after the feed cleanup and custom label segmentation. Products that had been effectively invisible due to disapprovals or poor title matching began serving consistently. The proportion of total impressions going to high-margin products shifted meaningfully upward.

Revenue Mix Shift Toward High-Margin Categories

The most commercially significant result was not just the ROAS number. It was the composition of revenue. A larger share of conversions came from high-margin categories. The business was not just selling more. It was selling more of the right things, the products that actually built the bottom line.

What This Means For Ecommerce Advertisers Running PMax And Shopping Together

The Hidden Cannibalization Risk In Combined Campaigns

Performance Max will absorb any traffic it can if you let it. Without explicit brand exclusions and structured asset groups, PMax cannibalizes your cheapest, highest-converting traffic (brand search and high-intent Shopping queries) and reports it as its own success. The prospecting work, the incremental growth that justifies PMax's existence, gets crowded out. If your PMax ROAS looks great but total account performance is flat, this is probably why.

Why Feed Quality Is As Important As Bidding Strategy

Google's algorithm can only optimize against the data you give it. A neglected feed with generic titles, unresolved disapprovals, and no margin segmentation forces the algorithm to fly blind on product-level value. You end up spending on whatever product Google can most easily match, which is rarely the product you most want to sell.

The Case For Margin-Aware Conversion Values

Revenue-based tROAS is better than CPA-based bidding for ecommerce, but it still treats a dollar of revenue from a 60% margin product the same as a dollar from a 10% margin product. Margin-adjusted conversion values close that gap. It is more work to implement, but it is the difference between an algorithm that optimizes for your P&L and one that optimizes for your top line.

This is also one of the structural requirements that most accounts miss when trying to get Google's AI bidding to actually work.

How groas Handles Ecommerce Account Architecture

The rebuild described above took a competent in-house team roughly three weeks of focused work to diagnose, plan, and execute. That is a realistic timeline for a team that knows what it is doing. The problem is that most ecommerce brands either do not have that level of in-house expertise or their team is stretched across too many responsibilities to dedicate three weeks to a structural overhaul.

This is exactly the scenario groas is built for. For brands that want full ownership handed off, the DFY (Done For You) service means a dedicated senior strategist takes over the entire account and owns every structural decision, from campaign architecture and feed optimization to conversion value configuration and brand traffic isolation. The proprietary engine trained on over $500 billion in profitable ad spend runs execution around the clock, catching cannibalization patterns, feed issues, and bidding misalignment before they compound into months of wasted spend.

For brands with a capable in-house team that wants to stay in control, the DWY (Done With You) product pairs that same engine with a senior strategist who works alongside your team. You keep driving. The engine handles the heavy lifting underneath, and the strategist flags structural problems like the ones in this case study during biweekly strategy calls, before they erode your returns.

For agencies managing multiple ecommerce accounts, the DIY product gives your media buyers direct access to the groas engine across unlimited client accounts. You keep your brand, your client relationships, and your margin. The engine powers the execution that would otherwise bottleneck at whatever one person can physically get through in a week.

Every groas product is month-to-month with no long-term contract and $0 onboarding. The comparison to most agencies is stark: typical onboarding fees of $5K or more, 6-12 month lock-ins, and a single account manager juggling too many accounts to catch the structural issues that actually determine performance.

The problems in this case study, PMax cannibalization, neglected feeds, wrong conversion targets, missing margin segmentation, are not rare edge cases. They are the default state of most ecommerce Google Ads accounts that scaled quickly. The question is whether they get caught and fixed in weeks or whether they silently drain budget for months.

If your ecommerce brand is spending meaningfully on Google Ads and ROAS has plateaued or declined, the structural issues described here are the most likely culprits. For brands that want the rebuild handled end-to-end, apply for DFY. For teams that want to stay in the driver's seat with the engine and a strategist behind them, get started with DWY. For agencies, start your 7-day free trial.

Frequently Asked Questions

What Is Performance Max Cannibalization In Ecommerce Google Ads?

Performance Max cannibalization happens when PMax campaigns absorb branded search traffic and high-intent Shopping queries that would have converted at lower cost through dedicated campaigns. PMax reports these conversions as its own, making prospecting performance look stronger than it actually is. The result is inflated PMax metrics while total account ROAS stalls or declines. The fix requires separating brand terms into standalone campaigns, applying brand exclusions to PMax, and restructuring asset groups so the algorithm focuses on genuinely incremental traffic rather than harvesting the cheapest conversions available.

Why Is My Google Shopping ROAS Stalling Despite Increasing Budget?

Stalling ROAS at higher spend levels usually points to structural problems rather than bidding issues. The most common culprits are PMax cannibalizing branded traffic, a neglected product feed suppressing your best SKUs, smart bidding optimizing for the wrong conversion event, and no margin segmentation in your feed. Increasing budget into a broken structure just amplifies the inefficiency. The fix requires diagnosing which of these issues are present and addressing them together, because they tend to compound each other.

How Do Margin-Adjusted Conversion Values Work In Google Ads?

Margin-adjusted conversion values assign different values to purchases based on the profit margin of the products sold, not just the revenue. A $100 sale on a 60% margin product reports a higher value to smart bidding than a $100 sale on a 10% margin product. You implement this using custom labels in your product feed to tier products by margin, then pass adjusted values through your conversion tracking. This aligns what Google's algorithm optimizes for with what actually makes your business money.

How Long Does It Take To Recover ROAS After Rebuilding Google Ads Account Structure?

A typical recovery timeline after a structural rebuild is 30 to 90 days. The first 30 days usually show initial improvement as feed fixes and campaign restructuring take effect. By day 60, smart bidding has re-learned on new conversion signals and performance stabilizes at a higher level. By day 90, the account should be approaching or exceeding previous peak performance. The exact timeline depends on your vertical, account history, and how much data the algorithm needs to recalibrate.

What Custom Labels Should Ecommerce Brands Use In Their Product Feed?

The most impactful custom labels for ecommerce are margin tier (high, medium, low), sales velocity (fast-moving, steady, slow), price bracket, seasonal relevance, and promotional status. These labels let you segment products in campaign listing groups and, critically, let smart bidding differentiate between products that build your bottom line and products that barely cover costs. Without these labels, the algorithm treats every SKU identically regardless of profitability.

Should I Use Add To Cart Or Purchase As My Primary Conversion Action?

Use Purchase with dynamic revenue values as your primary conversion action. Add to Cart generates more conversion volume, which seems helpful for smart bidding signal, but it treats a $12 accessory cart add the same as a $200 bundle. Smart bidding then optimizes for cart volume rather than revenue or profit. If purchase volume is genuinely too low for smart bidding to learn, the correct fix is expanding your conversion window or using enhanced conversions, not downgrading your primary conversion to a lower-quality event.

How Does groas Handle PMax Cannibalization For Ecommerce Brands?

groas catches PMax cannibalization patterns early because the proprietary engine, trained on over $500 billion in profitable ad spend, runs execution around the clock and monitors for exactly these structural issues. For DFY (Done For You) clients, a dedicated senior strategist owns the entire account architecture, including brand traffic isolation, feed optimization, and conversion value configuration. Problems that would silently drain budget for months in a typical account get flagged and fixed within weeks. The combination of continuous engine monitoring and senior human oversight means structural issues rarely get the chance to compound.

Can I Fix Performance Max Cannibalization Without Rebuilding My Entire Account?

In most cases, no. PMax cannibalization is rarely an isolated problem. It typically co-exists with feed quality issues, wrong conversion targets, and missing margin segmentation because they share the same root cause: the account scaled faster than its structural foundation. Fixing brand exclusions alone helps, but if your feed is still suppressing high-margin SKUs and smart bidding is still targeting the wrong event, you will not recover meaningful ROAS. The rebuild needs to address all four layers together.

Is groas A Good Fit For Ecommerce Brands With Complex Product Catalogs?

groas is built for exactly this scenario. Complex catalogs with hundreds or thousands of SKUs across different margin tiers, categories, and velocity profiles are where structural account architecture matters most and where generic management breaks down. The groas DFY service handles everything from feed optimization and custom label strategy to campaign architecture and margin-adjusted bidding. DWY works for brands with capable in-house teams that need the engine and a strategist to handle the heavy structural work. Both are month-to-month with $0 onboarding, so there is no risk in starting.

Related Posts