Strategy Breakdown7 min read

What 12,000 Performance Max campaigns taught us about asset groups

We pulled asset group data across 200+ accounts and 12,000 PMax campaigns. The findings break a few popular rules. Here's what actually moves performance.

We pulled asset group data across 200+ ZenoX-managed accounts and 12,000 Performance Max campaigns over the last 18 months. The goal was simple. Stop guessing about asset group structure. Look at what actually correlates with conversion volume and ROAS at scale.

The findings broke a few rules the broader Google Ads community keeps repeating. Some of them are wrong. Some of them are right but for reasons different than people assume. This is what the data said.

Campaigns

12,304

Accounts

200+

Min run length

90d

Min conversions

50

12,304 PMax campaigns, 200+ ZenoX accounts, 18 months

The premise and the honest caveat

We looked at every campaign that ran for at least 90 days, had at least 50 conversions, and stayed structurally stable (no major restructure mid-run). That filter left us with 12,304 campaigns across fashion, jewelry, home decor, beauty, and a handful of niche DTC categories.

Caveat up front: this is one agency's data. We work with a specific kind of brand (6-figures+ monthly Google Ads spend, ecom, mostly fashion-adjacent). The findings may not generalize to lead-gen, B2B, or accounts running under €10k/month spend. Take what is useful, leave what is not.

Finding 1: Two asset groups beat one. Five do not beat two.

The most consistent finding. Single-asset-group campaigns underperformed two-asset-group campaigns by an average of 17% on ROAS. Five-asset-group campaigns underperformed two-asset-group campaigns by an average of 9% on ROAS.

The pattern holds across categories. The shape is a clear inverted U: too few asset groups starves the algorithm of variety, too many fragments learning across signal-thin buckets.

Why two and not three or four? Our hypothesis: with two asset groups split by a meaningful axis (typically price tier or product type), each group gets enough conversion volume to learn while staying distinct enough to not blur. At three or four, you start splitting volume below the threshold the algorithm needs to bid confidently.

The popular advice of "test 4-6 asset groups for variety" was not borne out by our data. It produced more reporting noise and worse outcomes.

Finding 2: The split axis matters more than the count

The two-asset-group campaigns that outperformed split on one of three axes:

  • Price tier (45% of winners): top 30% of catalog by price vs the rest
  • Product type (32% of winners): clearly distinct buyer intents (e.g. necklaces vs rings)
  • Margin band (18% of winners): high vs mid/low margin

Splits that did not work: brand vs non-brand within a single-brand account, seasonal vs evergreen, image style.

The reason the working axes work is they create real auction differences. A €50 ring competes in a different auction than a €600 ring with different competitors and different searcher intent. Splitting the asset group lets the algorithm calibrate creative and signals to that specific auction.

Splits that did not work share a property: they were brand-internal categorizations that did not change the auction the product showed up in.

Finding 3: Asset count plateaus hard at 8 to 10 per group

We measured ROAS lift as a function of total assets per asset group. The curve flattens between 8 and 10 assets per type (image, headline, description). Adding the 11th, 12th, or 15th asset produced statistically insignificant lift in 73% of campaigns, and produced negative lift in 14%.

The negative lift surprised us. Our best guess: at high asset counts, the algorithm has too many low-quality combinations to test, and burns budget on bad pairings before it can prune them. More research needed here.

The headline-level recommendation: stop chasing 20 assets. Get to 8 strong ones per type and stop.

Finding 4: Final URLs influence asset performance more than assets do

This was the one that surprised us most. We segmented by final URL strategy:

  • Single landing page across an asset group
  • Product-level landing pages (one per product in the listing group)
  • Category landing pages
  • Mixed (a fallback)

Product-level final URLs outperformed single landing pages by an average of 22% on ROAS, even when the asset creative was identical.

The why: PMax uses the final URL to infer page intent and adds it to its quality signal for the auction. A product-specific page tells Google "this product, this query, this audience." A homepage URL gives the algorithm a thinner signal.

This is the highest-ROI structural change most accounts could make today and almost no one is doing it because it requires a tag or a URL template change at the feed level.

Finding 5: Audience signals are useful but not the way most people use them

The data showed audience signals correlated with ROAS lift only when:

  • The signal was a customer list of recent purchasers (last 90 days)
  • OR the signal was a custom segment built from search queries (not URL or app categories)

Affinity audiences, in-market audiences, demographics, and "people similar to your customers" lists showed no statistically significant lift across the dataset.

We had been recommending custom segments built from search queries for the last year. The data confirmed it. Affinity and in-market audiences are reporting theater, not performance levers.

Finding 6: Brand campaign exclusion is more important than you think

Campaigns where brand search terms were excluded at the account level outperformed campaigns where they were not by 14% on incremental ROAS. The non-brand-excluded campaigns were eating brand traffic that would have converted anyway, inflating reported ROAS while hiding poor non-brand performance.

This is not a new finding but the magnitude was bigger than we expected. If you are not excluding brand from PMax, you are reading distorted numbers and making decisions on noise.

What this means for how we run PMax now

We changed our default playbook based on this data:

  • Default to 2 asset groups per campaign, split on price tier or product type
  • Cap assets at 8-10 per type
  • Force product-level final URLs at the feed level (Merchant Center URL template)
  • Run only customer-list and search-based custom segment audience signals
  • Always exclude brand at the account level for PMax

This is now in our process for every new account.

The questions we still cannot answer

A few things the data was not clean enough to settle:

  • Optimal asset rotation cadence. We do not know if refreshing 20% of assets monthly outperforms refreshing 50% quarterly. Need a controlled test.
  • Video asset impact in non-Demand Gen contexts. Video assets seemed to lift YouTube placement performance but the attribution is messy.
  • Campaign budget thresholds for the 2-group rule. The 2-group rule held above €5k/month spend per campaign. Below that, the data was too thin to draw conclusions.

We are running structured tests on all three this quarter. We will publish findings on the results page and in future posts here.

What to do with this

If you are running PMax campaigns at any meaningful spend, audit them this week against these five rules:

  1. Are you running 2 asset groups split on a real auction-differentiating axis?
  2. Are your assets capped around 8-10 per type per group?
  3. Are your final URLs product-level, not category or homepage?
  4. Are your only audience signals customer lists and search-based custom segments?
  5. Is brand excluded at the account level?

If you fix even three of those five, you will see lift inside 30 days. If you want us to run the audit and the rebuild, our pricing is structured to scale with your spend and we are direct about who fits.

The data does not lie, but most accounts are running on conventional wisdom that the data has already retired.