Skip to content
bigrobot.
Google Ads

Performance Max: taking back control of the campaign

The complaint has been identical for three years: I have no idea where the budget goes. That is true of the reporting layer only. Which products get exposure, and in which placements, is decided by your feed, your account structure and your exclusion lists, not by the settings screen.

Tomasz Bielecki10 min read

Your feed is the real control panel

In its retail form, Performance Max matches on the title, the description, product_type and the Google product category. A title built as brand, model, defining spec, variant outperforms the marketing name from your catalogue by a measurable margin. On an interiors retailer, rewriting 4,200 titles to that pattern lifted impressions for spec-led queries by 31 per cent within three weeks on an unchanged budget.

The product_type attribute is your own taxonomy and the only place where you can impose a structure that reflects how the business actually makes money. Google's category drives matching, product_type drives your segmentation and your listing groups. Three levels of depth is usually enough; beyond that you fragment the data to a point where the bidding model has nothing to learn from.

Custom labels 0 to 4 should carry information the product page does not have: margin band, 90-day sell-through, stock level buckets, season, clearance status. We generate them with a nightly job that joins ERP data and pushes a supplemental feed into Merchant Center. Without those labels no sensible campaign split is possible, and Performance Max will keep pushing budget towards whatever is easy to sell rather than whatever is worth selling.

One campaign for everything is the expensive option

The default arrangement, whole catalogue in one campaign under one target ROAS, applies the same profitability rule to a product at 12 per cent margin and one at 46 per cent. The algorithm knows nothing about margin unless you send it in the conversion value. Splitting campaigns by margin band with a separate target for each is the simplest change that moves profit rather than revenue.

Where you stop splitting is a practical question, not an ideological one. A campaign needs roughly 30 conversions in a rolling 30-day window for the bidding strategy to have anything to work with. If your split produces four campaigns at eight conversions a month, that is not optimisation, it is signal destruction. On smaller accounts start with two campaigns and add a third once volume justifies it.

Brand traffic belongs in its own campaign, otherwise it inflates the blended ROAS and hides weak prospecting performance. Use a brand exclusion list at campaign level plus a dedicated exact-match search campaign on the shop name. The result is usually uncomfortable, with prospecting ROAS dropping from 900 to 380 per cent, but that is the number decisions can actually be made on.

  • Split by margin band: premium, standard, thin margin, each with its own target ROAS
  • A separate campaign for bestsellers, the 15 to 20 per cent of SKUs that usually carry 60 to 70 per cent of revenue
  • A long-tail campaign on a lower target and a smaller budget, treated as a testing ground
  • Clearance and end-of-line in their own campaign, optimised on revenue rather than ROAS
  • Do not split if a campaign would drop below 30 conversions a month

Asset groups are not ad groups

An asset group has no budget and no bid of its own. You cannot bid on it separately or pause spend for it, so treating it like an ad group from a search campaign leads nowhere. What it actually is: one coherent creative story attached to a slice of the catalogue through a listing group, plus an optional audience signal.

The minimum viable set is fifteen headlines, five long headlines, five descriptions, images in 1:1, 1.91:1 and 4:5, and at least one video you produced yourself. Leave the video out and Google will generate one from product photography, and the output generally looks like a 2011 slideshow. We also switch off automatically created text and image assets, otherwise reports fill up with headlines nobody on the team wrote.

Asset performance ratings are useful but need reading with care, since a low rating often just means too few impressions. We rotate assets every six to eight weeks, one element at a time, and log the date, so later swings can be tied back to a specific edit. Replacing the whole set at once wipes the learning history and sets the campaign back a fortnight.

The exclusions that actually move money

Account-level negative keywords now apply to Performance Max and hold up to 1,000 entries. That is the first place to put informational queries such as manual, repair, reviews, second hand and rental, along with competitor names if you are not deliberately running a competitive campaign. Additional lists can be attached at campaign level directly from the interface, so intent segmentation no longer requires a support ticket.

Placement exclusions are underrated, because Performance Max reaches into display inventory and mobile apps by default. An account-level exclusion list covering children's app categories, games and parked domains routinely removes a low double-digit percentage of spend with no measurable loss of conversions. Review it quarterly using the placement report, which lives under reports rather than in the campaign view.

With a new customer acquisition goal, the choice between bidding higher and new customers only has real consequences. The exclusive mode cuts off returning buyers, which on a high-retention shop lowers total campaign revenue even when cost per acquisition looks better. We use it where budget is constrained and the actual goal is base growth rather than this quarter's number.

  • Account-level list: service queries, second hand, rental, jobs, wholesale
  • Own-brand exclusion in prospecting campaigns so ROAS stays readable
  • Account-level exclusions for app categories and sensitive content
  • Customer Match lists as an audience signal, not as a hard exclusion
  • A quarterly review of the placement report with list updates

The report the interface will not give you

The UI shows search categories rather than terms and does not break spend down by channel. You get round that with a Google Ads script that queries the API through GAQL and dumps the result into a sheet or into BigQuery. The views we lean on are campaign_search_term_insight, asset_group_product_group_view and asset_group_top_combination_view. We run them daily and keep our own history, because Google shortens availability on parts of the data.

The most important number the panel hides is the split between shopping formats and display or video. Publicly available reporting scripts approximate it from asset-level data, and the approximation is good enough to act on. If it turns out that 55 per cent of budget goes to display impressions converting at a tenth of the shopping rate, you have a concrete reason to trim visual assets or separate the campaigns.

Building this takes half a day and then runs itself. Add a threshold alert that emails you when daily campaign spend deviates more than 35 per cent from the seven-day average. Performance Max reacts to feed changes faster than to settings changes, and most billing surprises start with a broken product export.

When Performance Max is the wrong tool

An account below roughly 20 conversions a month gives the model nothing to learn from and will swing week to week for no reason that exists in the market. In that situation a standard shopping campaign with manual bidding plus a generic search campaign produces a far more predictable first six months. Performance Max comes later, once there is conversion history to work with.

The second case is lead generation with a long sales cycle and lead quality scored in a CRM. Without offline conversion import, Performance Max optimises towards submitted forms, and forms get filled in at volume by low-quality display traffic. If the CRM is not connected yet, postpone Performance Max and stay on search, where keywords still control intent.

  • Below 20 conversions a month: standard shopping instead of Performance Max
  • Lead generation without offline conversion import: connect the CRM first
  • Regulated or tightly seasonal products: a manually scheduled campaign
  • Test markets on minimal budget: exact-match search only

Key takeaways

  • The feed and custom labels shape the campaign more than any setting in the interface.
  • Split by margin, but never below 30 conversions per campaign per month.
  • Turn off automatically created assets if you care about controlling the message.
  • Account-level exclusions apply to Performance Max and are the cheapest traffic-quality lever you have.
  • Without a GAQL reporting script you are working with half the data.

Common questions

Yes, unless you exclude brand terms from prospecting campaigns. Performance Max will happily absorb cheap brand queries because they convert best, which inflates the reported ROAS. Moving brand into a dedicated search campaign and adding brand exclusions gives you a clean view of what acquiring a new customer really costs.

Usually two to three weeks with a stable budget and at least 30 conversions a month. During that period avoid changing the target ROAS by more than 15 per cent at a time or swapping the entire creative set. Feed changes take effect faster, because they alter product matching independently of the bidding strategy.

Yes. Account-level negative keyword lists apply to Performance Max and hold up to 1,000 terms, and additional lists can be attached at campaign level straight from the interface. Brand exclusions and placement exclusions are also available, and in practice they often save more budget than the keywords do.

It starts with an audit

Tell us in two sentences what you want to achieve. We reply within one business day.