The ad getting the most money isn't always the one earning it. We checked how often that happens.
Estimated Read Time: 4 minutes
Picture an ad set with three ads in it. The campaign is hitting its numbers, the weekly report is green, and nobody has a reason to dig in.
Open the ad set, though, and something is off. One ad is getting most of the budget. Another is getting a sliver. Sort them by cost per result, and the order flips. The ad with the sliver is the cheapest per result in the set. The one with most of the money is the most expensive.
Nobody chose that. Meta's delivery system made the call, the way it does in every ad set, and the campaign total was healthy enough that nobody looked underneath it.
The question we wanted answered was simple: how often does this happen?
So we checked. For the AdPipe Pulse Report 2026, computer vision read 21,038 Meta ads, and we compared every ad head to head against the others in its own ad set.
Across 573 ad sets, the ad Meta funded most was a bottom-third performer 23% of the time. That's nearly one ad set in four where the biggest share of budget went to one of the weakest ads.
It wasn't a rounding error, either. Across the diagnostic, how much an ad got spent on had no relationship to how efficient it was. In total, $20 million ran on ads that were at least 10% worse than the ad sitting right beside them.
Want the rest of the creative diagnostic? Get the Pulse Report.
Meta decides which ads in an ad set get funded, and it makes those calls on its own signals. Our diagnostic suggests those calls don't line up with which ad is cheapest per result often enough to leave alone.
Most reporting isn't built to catch it. Teams look at campaigns and channels, where a strong ad and a weak one average out to "fine." The comparison that would reveal the problem, one ad against the ad beside it, almost never makes it into the weekly report.
So the waste isn't between campaigns. It's the ad sitting next to your winner.
You can't set it and forget it while a campaign is still running. A few habits help catch it:
Audit inside the ad set first. Before you move a dollar between campaigns, open each ad set and sort its ads by spend, then by cost per result. If the two lists don't match, start there.
Pull the low performers. If an ad is soaking up budget while trailing the ad beside it, pause it. The platform won't reliably do it for you.
Report the right comparison. Cost per result against the ad beside it is a number your CFO can audit. It also shows problems that campaign totals hide.
Check while it's live. A misfunded ad costs money every day it runs. Finding it in the recap is too late to get that budget back.
Meta's delivery system decides who sees your ads. Deciding which ad deserves the money still takes someone looking inside the ad set, and most teams aren't looking there.
AdPipe reads each ad frame by frame against your Meta performance data, so you can see which ads are earning their spend and which aren't while the campaign is still live. For the full set of findings from the Pulse, see The AdPipe Pulse Report 2026: Six Findings on AI in Marketing.
See which ads in your ad sets are earning their spend. Get your free creative insights
The Pulse creative diagnostic covers 21,038 ads across 522 campaigns and $81.0 million in Meta spend over 90 days. Each ad was compared head to head against the others in its own ad set, on that ad set's objective.