Black box campaigns: how I steer Performance Max and Advantage+ when I cannot see inside
TL;DR
Difficulty: Intermediate
- In Performance Max and Advantage+ your real levers are the conversion value you send, the product feed, and a few hard fences: budget, location, brand exclusions, negative keywords, placement exclusions.
- Send margin, not revenue, as the value, or the machine chases your lowest margin products.
- Audience signals and search themes are hints the campaign may ignore. Asset groups enforce only their products, pages and words.
- The 2025 search terms and channel reports show where the money went, never whether it caused the sale.
- Only a holdout or a geo experiment shows the incremental return. Set budgets on that, not on the dashboard ROAS.
Performance Max on Google and Advantage+ on Meta decide where, when and to whom your ads run, and show you only part of why. In this article I show what you still control, what the reports now reveal and what they never will, and how to test whether the campaign adds anything at all, with every step worked through on an invented coffee roaster in Cork.
Automated campaigns swap levers for inputs
A paid search account used to be a cockpit: your keywords, your bids, your placements. Performance Max on Google and Advantage+ on Meta took most of those levers away. You hand over a goal, a budget, creative and some hints, and the machine decides where, when and to whom.
That is a black box campaign: a box whose inside you cannot inspect, and whose behaviour you can still shape from the outside. So what do I still control, what can I see, and is the machine earning its money or taking credit for sales I would have had anyway?
The short answer: the goal you give it, the feed you give it and the few hard fences around it are your real controls, and only a test with a group that saw no ads tells you what the campaign adds.
Worked example: the shop I will use throughout
Shandon Roast is an invented coffee roaster in Cork, selling online at shandonroast.example. It sells 48 single origin and blended coffees at around €11 a bag, a coffee subscription, and six grinders from €120 to €240. The owner is Aoife. Nobody real, no client, every number made up so that every step can be shown.
Aoife spends €6,000 a month on Performance Max and about €4,000 a month on a Meta Advantage+ sales campaign. Both dashboards say things are going well. She would like to know whether that is true.
What the old version of this article got wrong
The first version of this piece was written when Performance Max hid almost everything. A lot has changed, and some of it was never quite right.
"No keyword level reporting" is out of date. Google now has a search terms report for Performance Max, with data from March 2023, and added full search terms reporting on top of the older search term insights in 2025.12
"No placement exclusions" is out of date. Account level placement exclusions apply to every campaign in the account, Performance Max included.3
"Discovery campaigns with manual bidding" no longer exist. Google upgraded Discovery campaigns to Demand Gen, with the last ones moved automatically between January and March 2024.4
"Standard Shopping campaigns with keyword prioritisation" was muddled. Standard Shopping has no keywords. And the old rule that Performance Max always beat a Standard Shopping campaign for the same products is gone: where campaigns overlap, Google now serves the one with the highest Ad Rank.5
The list of channels was short. Performance Max serves on Search, YouTube, Display, Discover, Gmail and Maps from one campaign.6 And on Meta, the product the old text would have called Advantage+ shopping campaigns is now Advantage+ sales campaigns, which I come to below.7
The goal you set is the strongest lever you have
A machine optimises exactly what you tell it to. Performance Max bids towards your conversion goals. By default a campaign uses the account's goals, and you can override them per campaign, though Google recommends the account defaults where possible so campaigns can learn from each other.8 Each conversion carries a value, and with a target return on ad spend the campaign chases value, not count.
So the value is the instruction. If the value is revenue, the machine hunts revenue, and it does not care whether that revenue carries a 40% margin or a 15% one.
Return on ad spend is a ratio:
Here is the return on ad spend, is the conversion value the campaign reports for a period, and is what the campaign spent in the same period. A value of 1.0 means every euro came back once. It is one quantity divided by another, as in Foundations: ratios and rates.
Worked example: revenue says 4.5, margin says 1.43
Last month Aoife's Performance Max campaign spent and reported €27,000 of revenue: €18,000 from coffee and €9,000 from grinders.
Here is €27,000 of revenue and is €6,000. It looks grand.
Now the margin. Coffee earns Aoife about 40% after beans, roasting, packaging and delivery. Grinders earn about 15%, because she buys them in. So the margin is from coffee and from grinders, €8,550 in all.
Here is now €8,550 of margin and is still €6,000. Every euro of spend brings back €1.43 of margin, before any other cost of running the shop. Still positive, but a third of the revenue came from the product that earns her least, because a €180 grinder looks like a better conversion than an €11 bag of coffee.
The fix is to send margin, not revenue, as the conversion value. The plumbing for that is in auto bidding on your own data. Once the value is margin, the same machine starts preferring coffee without being told to.
Value rules and new customer goals adjust the instruction
Sometimes a conversion is worth more than its margin today. A new subscriber is the obvious case for Aoife, because a subscriber reorders for months.
Google gives you two tools for this. Conversion value rules adjust the value of a conversion by location, device or audience, and Smart Bidding uses the adjusted value in real time for target ROAS and maximise conversion value. They apply to Search, Shopping, Display and Performance Max.9 Customer lifecycle goals let a campaign bid higher for new customers than existing ones, or only for new customers, with existing customers defined by your own customer list and site tag. Both modes are available in Performance Max.10
Use them gently. Smart Bidding already accounts for location, device and audience, so a rule that repeats it just inflates the numbers.9
An example: a new Shandon Roast subscriber stays seven months on average and earns about €4.40 of margin a month after the first order, so of future margin. Handing the machine all of that would be risky, because it is an average with real uncertainty, and the campaign will bid as if every new customer delivers it. So the example uses Aoife's own, more careful estimate: a fixed €10 added for a new customer, about a third of the average. She then watches the share of new customers in the shop database, not the dashboard, for six weeks.
Your product feed is your targeting
For a shop, the product feed in Google Merchant Center does much of the work keywords used to do. Performance Max reads it to decide which searches a product is relevant for.6 A vague title is a vague targeting instruction.
Google's product data specification allows titles of up to 150 characters and asks you to describe the product accurately and match the landing page, without promotional text.11 It also gives you five custom labels per product, of up to 100 characters each, "to help organise bidding and reporting".11 Custom labels are where I put the things the machine cannot know: margin band, stock depth, seasonal lines.
Then I use them. An asset group can carry a listing group, the slice of the feed it advertises, so a margin label turns into a structure: high margin products in one place, thin margin ones in another, or out of Performance Max altogether.
Worked example: rewriting a title and labelling margin
Aoife's bestseller was titled "Shandon Roast Ethiopia", the shop's name, which strangers never search for, and a country. Her rewrite reads "Ethiopia Yirgacheffe whole bean coffee, light roast, 250g". That is 57 characters, well inside 150, and every word is one a buyer might type.
Next the labels. She sets custom_label_0 to "margin_high" for the 48 coffees and the subscription, and "margin_low" for the six grinders. Performance Max gets one asset group whose listing group contains only "margin_high" products. The grinders move to a Standard Shopping campaign with its own, lower budget, where Ad Rank decides between the two if they ever compete.5
Why not one asset group per coffee origin? Each needs its own conversions before its reports mean anything, so with Aoife's volumes one or two is honest. The arithmetic is in the Performance Max asset groups article.
Asset groups and audience signals steer, they do not fence
Some settings are rules the machine must obey. Others are hints it is free to ignore. Knowing which is which saves the most money.
Audience signals are hints. Google states plainly that "Performance Max may show ads to relevant audiences outside of your signals" when it predicts they will convert.12 Search themes are hints too: up to 50 per asset group, "optional and additive", with the same priority as phrase and broad match keywords.13
What an asset group does enforce is what it contains: its products, its landing pages and its words. So the old advice of one asset group for "cold audiences" and one for "remarketing" does not work. Both can be shown to anyone.
An example: Aoife uploads her 2,400 subscribers as an audience signal. Four weeks later her ads still reach a good few people unlike them, and that is not a fault: the signal said where to start looking, never where to stay. To keep existing subscribers out, she needs the new customer goal from above, which is a rule, not a hint.
The fences that hold
Some controls are real fences. These are the ones I set before I let a campaign learn anything.
Budget and location sit on the campaign and are obeyed. Brand exclusions keep Performance Max off searches for your brand on Search, Shopping and YouTube search inventory, with an option to still allow Shopping ads on those searches.14 Negative keywords now work in Performance Max, for one campaign or for all, on Search and Shopping inventory only, and account level negatives apply automatically.15 Placement exclusions at account level keep it off sites and apps you do not want.3 And a Search campaign with a keyword that exactly matches the query is preferred over Performance Max.5
The brand fence matters most for honest numbers. People who already know your shop search for it by name, and most of those sales would have happened anyway. If Performance Max collects them, it looks better than it is.
Worked example: taking the brand out of the return
Aoife's search terms report for last month shows searches containing "shandon roast" cost €300 and brought €2,100 of margin. Take them out of the margin return from earlier:
Here is the campaign's €8,550 of margin, the €2,100 from brand searches, the €6,000 of spend and the €300 spent on brand searches. A ratio of two differences, as in Foundations: ratios and rates.
Without her own name, every euro returns €1.13 of margin. She adds a brand exclusion to Performance Max and a small Search campaign with "shandon roast" on exact match. While she is in the search terms, she adds two campaign negatives for searches that never buy: "barista jobs" and "coffee machine repair".
What you can now see, and what you still cannot
The reporting is much better than it was. Since 2025 Google has added search terms reporting, impressions, clicks and cost on assets, and a channel performance page.1 The channel report shows results per channel for any date after 6 June 2025.16
What you still cannot do is move the money between channels. Google says it directly: "you can't directly control budget allocation per channel". You can only influence it, through the assets you supply, the signals, the conversion values and the exclusions.16 You also cannot see why the machine chose one auction over another, or what it would have done with a different budget. Those answers stay inside the box.
Worked example: where Aoife's money went
Aoife opens the channel performance report for last month.
The horizontal axis shows the channels the campaign served on. The vertical axis shows what each cost last month, in euro, adding up to €6,000. Search took 60% of the money. YouTube and Display took 29% between them, and the report shows they brought few conversions that were clicked, which is not the same as bringing none.
That is the limit of reporting. It tells Aoife where the money went, not whether the YouTube views made people search for her later, or whether the Search clicks went to people who would have bought anyway. Those are questions about cause.
Advantage+ on Meta follows the same logic, with fewer fences
Meta's automation is built on the same bargain. What used to be the Advantage+ shopping campaign is now the Advantage+ sales campaign. Meta's own documentation calls the new campaigns "the updated, streamlined versions" of the old ones.7 Since 29 May 2025 advertisers no longer choose between an Advantage+ shopping campaign and a manual one: a sales campaign is in the Advantage+ state when it uses Advantage+ audience, Advantage+ campaign budget and Advantage+ placements.177 The old campaign type can no longer be created through Meta's API from version 25.0.7
One control went with the rename. The existing customer budget cap, which limited how much an Advantage+ shopping campaign spent on people who already bought from you, is not available for new Advantage+ campaigns. Meta's suggested replacement is two ad sets in the campaign.717
The levers are the same family as on Google: the conversion event and its value, the catalogue, the creative and the location. The fences are fewer, because placements and most targeting are handed over.
An example: Aoife rebuilds her Meta campaign with two ad sets, one for a custom audience of her existing subscribers and one for everyone else. After a month, the existing customer ad set spent €1,100 of the €4,000, so of her Meta money went to people who already buy from her. That is the number the old cap used to hold down, and now she can at least see it.
Platform ROAS is not proof that the ads worked
A platform counts a conversion when someone who saw or clicked an ad later buys. It does not ask whether they would have bought without the ad. A subscriber who reorders every month very often would.
What you want is the incremental effect: the sales that happened because of the ads, and would not have happened without them. This is not a niche worry. Gordon and colleagues compared common observational measurement methods against 15 large randomised experiments at Facebook, and found that "the observational methods often fail to produce the same effects as the randomized experiments", even with extensive data about users.18 The wider argument about cause and correlation is in causal inference in marketing.
The only clean way to see the incremental effect is to keep a group from seeing the ads and compare. Google calls this Conversion Lift and reports incremental conversions and incremental ROAS, though it is not available in every account.19 Meta runs the same kind of randomised test. Three formulas carry the whole idea.
The lift is the relative difference between the groups:
Here is the conversion rate of the test group, the people who could see the ads, and is the conversion rate of the control group, the people held out. The result is a percentage change, as in Foundations: percentages.
The incremental conversions are what the difference in rates adds up to across the test group:
Here is the number of conversions the ads caused, is the number of people in the test group, and is the extra conversion rate the ads produced. A rate applied to a count, as in Foundations: ratios and rates.
And the incremental return divides the value of those conversions by the spend:
Here is the incremental return on ad spend, is the average margin per conversion, and is the spend on the test group. Google defines its iROAS the same way, incremental conversion value divided by spend.19 Both are ratios, as in Foundations: ratios and rates.
Worked example: a holdout on Aoife's Meta campaign
Aoife runs a six week lift test on her Meta campaign with a 10% holdout. Of 1,000,000 people in her audience, could see her ads and 100,000 could not.
The test group made 2,250 purchases, so . The holdout made 200, so .
Here is 0.25% and is 0.20%, so the ads raised the purchase rate by a quarter, a relative change as in Foundations: percentages. In absolute terms:
So 450 purchases happened because of the ads. Ads Manager had attributed 1,100 purchases to the campaign over the same six weeks, so only of what the dashboard claimed was caused by the ads.
With an average margin of per purchase and spend of over six weeks:
The dashboard view, , was more than twice as rosy. But 1.45 is still above 1.0. The campaign pays for itself on margin. Aoife keeps it, and now knows by how much.
Worked example: is the difference real or noise
A lift from 0.20% to 0.25% could be luck. The two proportion z test tells us how surprising the gap would be if the ads did nothing:
Here is the test statistic, and are the two conversion rates, and the sizes of the test and control groups, and is the pooled conversion rate of both groups together. The method, with its p value, is in Foundations: hypothesis tests.
The pooled rate is . The bracket is . Under the square root that gives , and the square root is 0.000165. So .
A z of 3.03 has a two sided p value of about 0.002. If the ads did nothing, a gap this large would turn up about twice in a thousand tests. Aoife can trust the lift. With a tenth of the audience, she could not have: how much data you actually need has the sums for planning that before you start.
Geo experiments test what a user holdout cannot
A user holdout needs the platform to keep individual people from seeing ads. Where that is not available, or where you want to test the whole of Performance Max across every channel, you can hold out places instead.
In a geo experiment, regions that do not overlap are assigned to a test or a control condition, and the ads are switched on or off by region.20 Google offers this as Conversion Lift based on geography, for campaigns including Performance Max that target a single country. It rates each study's feasibility before it starts, and does not recommend running one rated low.21 Google also offers Performance Max experiments, including uplift experiments that measure what adding Performance Max to your other campaigns brings.22
You can run a simple version yourself. Split the country into two sets of similar regions (counties work well). Before the test, measure how the two sets' orders relate to each other. During the test, switch the campaign off in one set only. The other set tells you what the first would have done with the ads still on:
Here is the predicted number of orders in the test regions had nothing changed, is the actual orders in the control regions during the test, and and are the orders in the test and control regions over the same length of time before it. The fraction is the ratio between the two sets, as in Foundations: ratios and rates.
Worked example: switching Performance Max off in half of Ireland
Aoife sorts the Irish counties into two sets with similar orders and a similar mix of cities and towns, for instance Cork and Limerick in one set and Galway and Waterford in the other. In the six weeks before the test, the test set had orders and the control set .
She switches Performance Max off in the test set for six weeks. The control set, still running it, has orders.
So with Performance Max still on, the test set would have had about 3,000 orders. It actually had 2,700. The campaign was causing about orders in those regions over six weeks, while the dashboard had credited it with 620 there in the six weeks before.
Switching it off saved €4,200 of spend in the test regions. At €20 of margin per order, the 300 lost orders were worth :
Here is €6,000 and is €4,200, a ratio as in Foundations: ratios and rates. Performance Max adds real margin, a little under half of what it claims. Two cautions. A home made geo test is noisier than a user holdout, so I would repeat it, or ask for Google's own geo study, before cutting a budget on one result. And the regions must be matched before the test, never picked afterwards.
The horizontal axis shows the two campaigns Aoife tested, each with two bars: what the platform credited to itself, and what the holdout or geo test showed the ads actually caused. The vertical axis shows purchases over six weeks. On both platforms the measured effect is well under half the claim, and still worth paying for. The gap is the part of the dashboard you should never budget on.
Test where the answer would change a budget
Lift tests cost the sales you lose in the holdout and weeks of patience. So the sensible place to test is where the answer would change a budget.
The flow runs from setup at the top to the budget decision at the bottom. Its three thresholds are starting assumptions for the example, not platform rules, and each has a reason. A fifth of the paid budget, because a test costs lost sales and weeks of patience, and below that share the answer rarely changes a decision worth the cost. About 10% held out, because the holdout must be large enough to give the test power: with a smaller control group, a real lift drowns in noise, as Foundations: sample size shows. At least four weeks, to cover several full weekly cycles of buying and the lag between an ad and the order it leads to. Google does not publish a fixed minimum here. Its geo study instead rates feasibility before you start, depending among other things on the budget, the dates and the campaigns included, and does not recommend running one rated low.21 Where a platform gives you such a rating, it beats any rule of thumb. Setup comes first because a test of a campaign with revenue as its value and your brand searches inside measures the wrong thing very precisely.
An example: Aoife's Performance Max takes €6,000 of her €10,000 paid budget, 60%, and Meta 40%. Both are above a fifth, so both got the tests above. Her €300 brand Search campaign does not.
Where code still earns its place
The old version of this article made a lot of Python and the Google Ads API. I still use both, but for plumbing: writing margin and stock into custom labels every night, sending true margin back as the conversion value, and pulling search terms into my own database so the history outlives the platform's. How I wire that together is in a unified campaign automation stack. What I no longer recommend is generating hundreds of campaigns or asset groups through the API. Every split thins the conversions each part learns from.
An example: Aoife's nightly job sets custom_label_1 to "stock_low" when a coffee drops below 20 bags, and her listing group excludes "stock_low". The campaign stops spending on a coffee she is about to run out of, and nothing was rebuilt.
What I would set up on Monday
In order: margin as the conversion value. Feed titles written for the buyer, margin and stock in custom labels. Few asset groups, with signals and search themes treated as hints. The fences: a brand exclusion with brand Search on exact match, negatives, placement exclusions. The reports read before anything changes. On Meta, existing customers in their own ad set. Then, for every campaign carrying a real share of the budget, a holdout or a geo experiment, and a budget set on the incremental return.
The machine is good at finding buyers. It is less good at telling you which of them it found. That second job stays yours.
Footnotes
-
Tal Akabas, Channel performance and more reporting coming to Performance Max, Google, The Keyword, 30 April 2025, https://blog.google/products/ads-commerce/channel-performance-reporting-coming-to-performance-max/
-
Google, About the search terms report in Performance Max, Google Ads Help, 2026, https://support.google.com/google-ads/answer/16327396
-
Google, Exclude placements at the account level, Google Ads Help, 2026, https://support.google.com/adwords/answer/7331110
-
Google, Get ready to upgrade your Discovery ads to Demand Gen, Google Ads Help, 2023, https://support.google.com/google-ads/answer/13859703?hl=en-GB
-
Google, How Performance Max interacts with other campaigns in your account, Google Ads Help, 2026, https://support.google.com/google-ads/answer/13810170
-
Google, About Performance Max campaigns, Google Ads Help, 2026, https://support.google.com/google-ads/answer/10724817
-
Meta, Advantage+ campaign experience for sales, app and leads, Marketing API documentation, Meta for Developers, 2026, https://developers.facebook.com/docs/marketing-api/advantage-campaigns
-
Google, About campaign specific conversion goals, Google Ads Help, 2026, https://support.google.com/google-ads/answer/9143218
-
Google, About conversion value rules, Google Ads Help, 2026, https://support.google.com/google-ads/answer/10518330?hl=en-GB
-
Google, About customer lifecycle goals, Google Ads Help, 2026, https://support.google.com/google-ads/answer/12080169
-
Google, Product data specification, Google Merchant Center Help, 2026, https://support.google.com/merchants/answer/7052112?hl=en-GB
-
Google, About audience signals for Performance Max campaigns, Google Ads Help, 2026, https://support.google.com/google-ads/answer/14530785
-
Google, Use search themes with your Performance Max campaign, Google Ads Help, 2026, https://support.google.com/google-ads/answer/14767319
-
Google, Apply brand exclusions to Performance Max or Search campaigns, Google Ads Help, 2026, https://support.google.com/google-ads/answer/14505308
-
Google, Negative keywords in Performance Max campaigns, Google Ads Help, 2026, https://support.google.com/google-ads/answer/15726455
-
Google, About the channel performance report, Google Ads Help, 2026, https://support.google.com/google-ads/answer/16260130
-
Meta, Advantage+ campaign experience for sales and app, Meta for Developers blog, 3 June 2025, https://developers.facebook.com/blog/post/2025/06/03/advantage-plus-campaign-experience-for-sales-and-app/
-
Brett R. Gordon, Florian Zettelmeyer, Neha Bhargava and Dan Chapsky, A Comparison of Approaches to Advertising Measurement: Evidence from Big Field Experiments at Facebook, Marketing Science 38(2), 2019, https://econpapers.repec.org/RePEc:inm:ormksc:v:38:y:2019:i:2:p:193-225
-
Google, About Conversion Lift, Google Ads Help, 2026, https://support.google.com/google-ads/answer/12003020?hl=en-GB
-
Jon Vaver and Jim Koehler, Measuring Ad Effectiveness Using Geo Experiments, Google Research, 2011, https://research.google/pubs/measuring-ad-effectiveness-using-geo-experiments/
-
Google, Set up Conversion Lift based on geography, Google Ads Help, 2026, https://support.google.com/google-ads/answer/14097193?hl=en-GB
-
Google, About Performance Max experiments, Google Ads Help, 2026, https://support.google.com/google-ads/answer/12997711?hl=en-GB