Most Performance Max underperformance is not an algorithm problem. It is an input problem. Performance Max product feed optimization, asset group structure, and audience signal quality determine whether PMax amplifies profitable spend or just burns budget at scale. This case study follows a DTC ecommerce brand running roughly $45K/month through a single Performance Max campaign that had watched ROAS decline for three consecutive months despite increasing spend. After rebuilding the entire PMax setup from the product feed up, replacing auto-generated creative, restructuring asset groups, and loading proper audience signals, the brand recovered ROAS and improved conversion rates within 60 days. The lesson is transferable to any ecommerce brand running PMax today: the algorithm is only as good as what you feed it.

A Scaling DTC Brand With A Performance Max Problem

The brand sells home and kitchen products direct to consumer, with an average order value around $65 and a catalog of roughly 400 SKUs. They had scaled from $15K/month to $45K/month in Google Ads spend over six months, almost entirely through Performance Max. At the $15K level, things worked. ROAS sat comfortably above their profitability threshold. The team assumed that more spend would mean more of the same results, just at a larger scale.

That is not what happened.

What The Setup Looked Like

The account ran a single Performance Max campaign covering the entire product catalog. There were two asset groups, loosely split between “kitchen” and “home,” but the product lines inside each group overlapped significantly. The creative assets were minimal: a handful of lifestyle images, a few product shots pulled directly from the Merchant Center feed, and headlines that mixed brand messaging with product-specific claims in no coherent pattern.

Video assets were entirely auto-generated by Google, stitching together product images with default transitions and generic text overlays. No customer match lists were uploaded. No GA4 remarketing audiences were connected. The audience signals section was effectively empty.

The Symptoms

Three things were happening simultaneously. Impressions were growing, which looked like progress in the dashboard. But conversion rate had dropped steadily over three months. And ROAS, which had started above the brand’s target, was now sitting below breakeven on a blended basis. The brand was spending more and earning less from every dollar. The team’s instinct was that Performance Max “stopped working,” but the reality was that PMax was doing exactly what it was designed to do: it was optimizing for the signals it had. The problem was that those signals were garbage.

The Diagnosis: What Was Actually Wrong

When you audit a failing PMax campaign, you have to look at the inputs before you touch the bidding or budget. In this case, there were four distinct input problems stacking on top of each other.

Asset Groups That Conflated Product Categories

The two asset groups mixed products with fundamentally different buyer intent. A ceramic knife set and a decorative wall shelf were sitting in the same group, competing for the same audience signals. Google’s algorithm had no way to differentiate who was likely to buy which product, so it served a muddled creative experience to a muddled audience. This is one of the most common reasons pmax asset groups are not converting: when the algorithm cannot match a clear product category to a clear buyer profile, it defaults to broad reach and low-intent placements.

Auto-Generated Video That Hurt More Than It Helped

Google will auto-generate video for Performance Max if you do not provide your own. The result is almost always poor: slow pans across product images, robotic text overlays, no brand coherence. These videos were running on YouTube and Discovery placements, consuming meaningful budget while contributing almost nothing to conversions. Worse, they were actively training the algorithm that YouTube placements produced impressions but not purchases, which distorted how PMax allocated budget across channels.

No Audience Signals

The audience signals section was empty. No customer match list from existing buyers. No GA4 audiences for cart abandoners, repeat purchasers, or high-value sessions. No interest or affinity signals. Performance Max uses audience signals as a starting point for its targeting, not a hard constraint. But without any signals, the algorithm starts from scratch and tests broadly, which means it burns budget on low-quality traffic while it figures out who actually converts. For an ecommerce brand with thousands of existing customers and months of GA4 data, this was a major missed opportunity.

Feed Quality Issues

The Merchant Center feed had several problems that compounded everything else. Around 30% of SKUs were missing GTINs, which limited their eligibility for Shopping placements. Product descriptions were thin, often just the product title restated in a slightly different order. Category mapping used Google’s default suggestions rather than the most specific available product categories. And several product titles lacked critical attributes like material, size, or use case that help Google match products to specific search queries. Feed quality is the foundation of Performance Max for ecommerce. If the feed is weak, every layer built on top of it underperforms. This is where performance max product feed optimization becomes the single highest-leverage fix available.

The Fix: Rebuilding Performance Max From The Feed Up

The rebuild followed a specific sequence. Feed first, then asset groups, then creative, then audience signals, then negative keywords. Order matters because each layer depends on the one beneath it.

Step 1: Merchant Center Feed Rebuild

Every product title was rewritten to front-load the most searchable attributes: product type, material, key feature, size, and brand. Descriptions were expanded to 150 or more words per product, written for both Google’s algorithm and the shopper who reads them on the Shopping tab. Missing GTINs were sourced and added. Every product was remapped to the most granular Google product category available. Custom labels were added to segment products by margin tier, best-seller status, and seasonal relevance.

This step alone changed how Google matched products to search queries and determined which products were eligible for premium Shopping placements.

Step 2: Asset Group Restructure By Product Category And Intent

The two catch-all asset groups were replaced with seven, each mapped to a specific product category: chef knives, kitchen accessories, wall decor, table linens, and so on. Each asset group contained only the products, images, headlines, and descriptions relevant to that single category. This gave Performance Max a clean signal: this asset group exists to sell this type of product to this type of buyer.

The restructure also enabled meaningful performance comparison across product lines for the first time, something that is impossible when everything sits in one or two bloated groups.

Step 3: Purpose-Built Video Creative

The auto-generated videos were removed and replaced with short-form video assets built specifically for each asset group. These were not elaborate productions. They were 15 to 30 second clips showing the product in use, with clear text overlays highlighting the primary value proposition and a direct call to action. The key difference was relevance: a video for chef knives showed a chef using the knives, not a slideshow of every product in the catalog.

Step 4: Loading Customer Match And High-Value Audience Signals

The brand’s existing customer list was uploaded as a customer match audience. GA4 audiences were created for cart abandoners (last 30 days), repeat purchasers, and high-session-duration visitors. Interest signals were added based on the brand’s actual customer profile: cooking enthusiasts, home decor shoppers, and gift buyers during key seasonal windows.

These signals gave Performance Max a starting point that reflected actual buyer behavior rather than forcing the algorithm to discover it from zero. For ecommerce brands wondering how to improve Performance Max ROAS, loading high-quality audience signals is consistently one of the fastest wins available.

Step 5: Account-Level Negative Keywords

Performance Max historically lacked robust negative keyword support, but account-level negatives were applied to block irrelevant queries that had been consuming spend: DIY tutorials, competitor brand names, wholesale and bulk queries, and informational terms that attracted clicks but not purchases. This step immediately reduced wasted spend on traffic that was never going to convert.

What Happened Over 60 Days

The first two weeks after the rebuild were a recalibration period. Performance Max needs time to relearn when you change inputs at this scale, and there was a brief dip in volume as the algorithm adjusted to the new asset groups and audience signals. This is normal and expected. Understanding how to exit Google Ads learning phase faster helps set expectations during this window.

ROAS Trajectory

By week three, ROAS was back above the brand’s profitability threshold. By week six, it had surpassed the peak ROAS from six months earlier, when the account was running at a third of the current spend. The improvement was not gradual. It inflected sharply once the algorithm locked onto the cleaner signals, which is typical when you fix input quality rather than fiddle with bid adjustments.

Conversion Rate By Asset Group

The restructured asset groups made it possible to see which product categories were actually driving performance. Two of the seven groups, chef knives and kitchen accessories, delivered conversion rates significantly above the account average. Two others underperformed and were paused, freeing budget for the categories that were working. This kind of visibility is impossible when products are jammed into one or two undifferentiated groups.

Impression Quality

Total impressions actually decreased slightly after the rebuild. But conversion rate improved meaningfully, which means the impressions that remained were higher quality. The algorithm was placing products in front of shoppers who were more likely to buy, rather than casting a wide net and hoping for the best. This is exactly what happens when you give Performance Max better inputs: it stops chasing volume and starts chasing value.

Budget Efficiency

The brand spent roughly the same amount over the 60-day period as it had in the prior 60 days. The difference was allocation. More spend flowed to Shopping and Search placements, less to low-performing Display and YouTube auto-placements. The same budget produced meaningfully better results because Performance Max finally had the signal quality to allocate intelligently.

How groas Handles This End To End

Everything described above, the feed rebuild, asset group restructure, custom creative, audience signal strategy, and negative keyword management, is exactly the kind of work that falls through the cracks when a brand is trying to manage PMax internally or through an agency that treats Performance Max as a “set it and forget it” campaign type.

With groas DFY, a dedicated strategist owns the entire Google Ads account end to end, including the Merchant Center feed, landing pages, and creative assets that sit underneath Performance Max. The proprietary groas engine, trained on over $500 billion in profitable ad spend, runs execution around the clock, continuously optimizing asset group performance, reallocating budget across placements, and surfacing feed issues before they become performance problems. The strategist handles everything from the first click to the final conversion.

The core difference versus doing this internally or through a traditional agency: a human strategist working alone is capped at whatever they can physically get through in a week, and you pay full rate for that ceiling. groas puts a senior strategist on top of an engine that never stops executing, so feed optimization, asset group restructuring, and audience signal management happen continuously rather than in quarterly “audits” that come too late.

For brands running DWY with groas, the same engine powers the execution while a strategist works alongside your in-house team. Your team stays in control, but the heavy lifting, feed quality monitoring, creative performance analysis, audience signal refresh, runs underneath without consuming your team’s hours.

There is no onboarding fee, no long-term contract, and the month-to-month structure means groas earns the next month by delivering results this month.

What This Means For Brands Running Performance Max Today

The pattern from this case study repeats across ecommerce accounts of all sizes. Performance Max is a powerful campaign type, but it amplifies whatever you give it. Give it a thin feed, conflated asset groups, no audience signals, and auto-generated creative, and it will amplify waste. Give it clean inputs, and it will find profitable scale.

Three Questions To Audit Your Own PMax Setup

First: are your asset groups structured so that each one represents a single product category with its own creative, headlines, and descriptions? If you have fewer asset groups than you have distinct product lines, you almost certainly have a signal clarity problem.

Second: are you uploading customer match lists and GA4 audiences as signals? If the audience signals section of your PMax campaigns is empty, the algorithm is starting from zero every time it optimizes, and you are paying for that learning curve.

Third: when was the last time someone audited your Merchant Center feed for missing GTINs, thin descriptions, and incorrect category mapping? If the answer is “never” or “at launch,” your feed is likely holding back your Shopping performance.

If you want groas to handle all of this, including the feed, creative, audience strategy, and ongoing optimization, apply for DFY and let the team figure out the right plan on the call. If you have an in-house team that knows the account and wants the engine plus a strategist working alongside them, DWY gets you started with checkout for smaller accounts or an application for larger ones. Either way, the first step is the same: stop feeding Performance Max garbage and start giving it the inputs it needs to scale profitably.