When a CPM climbs, there are three plausible causes: the creative, the audience, or the landing page and offer. Meta publishes a ranking for each one, and none of them appear in the default performance preset.
The three
For each ad with enough delivery, Meta compares it against ads competing for the same audience and assigns a ranking - typically above average, average, below average (bottom 35%), below average (bottom 20%), or below average (bottom 10%).
| Ranking | What it compares |
|---|---|
| Quality ranking | Perceived quality of the ad against ads competing for the same audience |
| Engagement rate ranking | Expected engagement rate against the same set |
| Conversion rate ranking | Expected conversion rate against ads with the same optimisation goal |
They are relative, not absolute. An ad can hold steady while its ranking falls, because the competition improved.
The five labels are not evenly spaced. Above average and average each cover a wide band, and then the bottom three split the lowest 35 percent into progressively narrower slices: bottom 35%, bottom 20%, bottom 10%. So a move from average to below average (bottom 35%) is a smaller real change than a move from bottom 35% to bottom 10%, even though both look like one step in the interface. Read the parenthetical, not the words in front of it.
There is also a sixth state, and it is easy to misread: blank. A ranking is only assigned once the ad has cleared a minimum impression volume, which Meta sets out on its ad relevance diagnostics page. Below that, the column is empty or returns a null. Blank means not yet measured. It does not mean average, and it does not mean fine.
What each meta ad diagnostic ranking is measured against
The three rankings are not three grades on the same exam. Each one has a different comparison set, and knowing which set matters more than knowing the label.
Quality ranking compares perceived quality against other ads that competed for the same audience. Perceived is the operative word. It is built partly from how people reacted to the ad, including negative signals such as hiding it or reporting it, and partly from content properties Meta treats as low quality regardless of reaction.
Engagement rate ranking compares expected engagement against the same set of ads competing for that audience. Expected, not observed. This is a forecast Meta makes about how likely a person is to click, react, comment, share or expand the ad, and it is produced before the impression is served. That is why an ad can have a healthy click-through rate on the report and a below average engagement rate ranking at the same time: the report is history, the ranking is a prediction about the next auction.
Conversion rate ranking compares expected conversion rate against ads with the same optimisation goal. Not the same audience. Same goal. An ad optimised for landing page views is ranked against other landing-page-view ads, not against the purchase-optimised ads it sits beside in your own account. Change the optimisation event on an ad set and you have changed the peer group, which can move the ranking without anything about the creative or the page changing.
This is why the three do not have to agree. They are answers to three different questions asked of three different reference populations.
Why these three exist at all
Meta's auction does not simply award the impression to the highest bid. Total value is composed of the bid, estimated action rates, and ad quality. Two of those three inputs are not under the advertiser's direct control at bid time, and the rankings are the only public window into them. Engagement rate ranking and conversion rate ranking sit on the estimated-action-rate side. Quality ranking sits on the ad quality side.
Where to find meta ad diagnostic rankings in Ads Manager and the API
They exist at the ad level only. There is no meaningful diagnostic ranking for a campaign or an ad set, because the comparison is made against the creative in an auction. If you are looking at the campaign view and the columns are empty, that is why.
In Ads Manager: switch the view to Ads, then use Columns and customise, and add Quality ranking, Engagement rate ranking and Conversion rate ranking. They are not in the default performance preset, so an account can run for years without anyone seeing them.
Via the Marketing API they are three fields on ad-level insights: quality_ranking, engagement_rate_ranking and conversion_rate_ranking. The values come back as enums rather than numbers, in the shape ABOVE_AVERAGE, AVERAGE, BELOW_AVERAGE_35, BELOW_AVERAGE_20, BELOW_AVERAGE_10, plus UNKNOWN when the ad has not cleared the impression threshold.
Two practical consequences of the enum shape. First, you cannot average them. There is no arithmetic that turns AVERAGE and BELOW_AVERAGE_10 into a meaningful middle. Second, UNKNOWN is a real value that must be stored as itself. Coercing it to null, to average, or to a zero score silently corrupts every trend you later build on top, because a new ad in learning and a genuinely bad ad end up looking identical.
How to read them together
This is the useful part. The combination narrows the fix:
- Quality low, others fine → the creative is the problem. Often engagement bait, clickbait framing, too much text, or low production quality relative to the competitive set.
- Engagement low, quality fine → the creative is decent but wrong for this audience. The mismatch is targeting, not craft.
- Conversion low, quality and engagement fine → the ad is doing its job and what follows the click is not. Landing page, offer, form length, price.
- All three low → do not iterate. Rebuild.
Without these, diagnosing a rising CPM means testing each hypothesis in turn, and each test costs a cycle and a budget.
What to do for each meta ad diagnostic ranking combination
The four lines above are the summary. Here is what each combination actually implies and what the next action is. Throughout, "low" means below average at any of the three depths, and the depth tells you urgency rather than diagnosis.
Quality low, engagement and conversion average or above
People are engaging and converting, and Meta still rates the ad poorly. That gap points at content properties rather than performance. Review the ad against the things Meta treats as low quality independent of results: engagement bait such as asking for a tag, share or comment to unlock something; withholding information so the user has to click to find out what is being sold; sensationalised or shock framing; and before-and-after style imagery in categories where it is restricted.
Also check negative feedback. In the interface this is the ad's hide and report activity. An ad can be profitable and still be accumulating hides from the people it annoys, and those hides feed quality while conversions stay healthy for the people it fits.
Action: rewrite the hook and the first frame, keep the offer and the targeting untouched, and run the new version as a new ad rather than editing the existing one so the two can be compared.
Engagement rate ranking low, quality average or above
Meta rates the ad as decent content but expects this audience not to interact with it. The creative is not broken, the pairing is. Editing the video again will not move this.
Action: change the audience before you change the ad. Move the same creative to a different interest set, a lookalike built from a different seed, or a broader unconstrained audience, and compare the ranking across the placements. Also check placement breakdown: a static image built for feed placed into Reels or Stories will underperform on expected engagement for reasons that have nothing to do with the idea.
Conversion rate ranking low, quality and engagement average or above
The ad has done its job. Something after the click has not. This combination is easy to leave alone, because every column the client sees looks healthy and the failure is on a page the ad report never measures.
Action: walk the click path yourself on a phone, on cellular data, from the ad itself rather than by typing the URL. Check load time, whether the offer on the page matches the offer in the ad word for word, form length, whether a price appears sooner than the visitor expects, and whether the page requires an account before it delivers anything.
Then confirm the optimisation goal is the one you think it is. Because conversion rate ranking is judged against ads with the same goal, an ad optimised for a cheap upper-funnel event is being compared against a population that converts easily, and it will look worse than the same ad optimised for purchase.
Quality and engagement low, conversion average or above
A narrow, unattractive ad that nonetheless sells to the few it reaches. This survives while spend is low and degrades as you scale, because the rising CPM caused by weak quality and engagement eats the margin that the conversion rate was providing.
Action: treat it as a scaling ceiling rather than a failure. Keep it running at current spend, and build the next creative around whatever the converting audience responds to rather than trying to repair this one.
Conversion and engagement low, quality average or above
Well-made, well-liked, and commercially inert. This is the shape of a brand asset being asked to do direct response work.
Action: do not rebuild the creative. Change the ask. Weaker commitment on the call to action, a lead form in place of a website click, or an offer that is worth stopping for. If the ad is genuinely a brand asset, move it to a campaign with an objective that matches, where conversion rate ranking stops being the measure.
All three low
Rebuild, and be specific about what rebuild means: a different angle, not a different edit. New hook, new offer framing, new audience hypothesis. If the rankings were reacting to the concept, a better-produced version of the same concept gives them the same thing to react to.
Before you rebuild, check one thing: whether every ad in the account dropped at the same time. If they all did, look at the account and the auction period rather than the creative.
All three average
Average across the board is not a problem to solve. If the cost per result is acceptable, average rankings simply mean the ad is competitive rather than exceptional. Leave it, and spend the testing budget on a new angle instead of on polishing this one.
Rankings blank or UNKNOWN
The ad has not accumulated enough impressions to be assessed. There is nothing to diagnose. If an ad has been live for a while and still has no ranking, the question is why it is not getting delivery: budget spread across too many ad sets, an audience too small to serve, or an ad still in review.
What actually lowers a quality ranking
Quality ranking has two distinct inputs, and conflating them leads to the wrong fix.
The first is user reaction, which you observe indirectly. Hides, reports, and negative feedback pull it down. This is a rate rather than a count, so a high-volume ad is not penalised simply for accumulating more hides in absolute terms.
The second is content properties that Meta assesses regardless of reaction. These are set out in its advertising guidance, and the recurring categories are engagement bait, withholding information to force a click, sensationalised language, and low quality or disruptive ad experiences such as excessive text, heavy watermarking, or a destination page that is unfinished or covered in interstitials. That last one matters: the landing page is part of the ad experience Meta assesses, not only the creative.
If your quality ranking is low and the creative is clean, look at the destination.
Do meta ad diagnostic rankings affect your CPM
They do not act as a penalty applied after the fact. They are a readout of inputs the auction already used. That distinction changes what you can expect from a fix.
Because total value in the auction is composed of bid, estimated action rates and ad quality, an ad with weak estimated action rates needs a larger bid contribution to win the same impression. In practice that surfaces as a higher CPM for the same placement and audience. Improving the ad does not retroactively refund anything, but it does change the price of the next impression.
It also means a rising CPM and a falling ranking are two views of one event rather than cause and effect in one direction. If you only watch CPM you will see the symptom several days after the ranking would have shown you the cause.
Why they need to be stored, not read
Meta shows the current ranking. It does not show you the ranking last Tuesday.
Engagement rate ranking is a forecast rather than a record of spend, so it can degrade while cost per result still looks acceptable. Stored daily per ad, a slide from "above average" to "average" to "below average" is a visible trend line and you can act on it before the cost moves. Read once in the interface, it is a single letter grade with no context.
Inflowave stores all three per ad per day. That is part of the 58-field metric set.
How to store meta ad diagnostic rankings so the history is usable
Three things make the difference between a history you can act on and a table you never open.
Store the label, not a score. Mapping BELOW_AVERAGE_20 onto a number so it can be charted feels tidy and destroys the information, because the gaps between labels are not equal and the scale has no unit. Keep the enum and count instead: days at above average, days at average, days at each below average depth.
Store UNKNOWN as UNKNOWN. It is the state of an ad that has not been assessed yet, and it needs to be distinguishable from an ad that was assessed and rated badly.
Pull daily, at ad level, with the date range set to a single day rather than a rolling window. A ranking pulled for the last 30 days is one value describing the whole window. Pull it per day and you get the trend line. This is the step that turns the metric from a grade into a signal.
The question to ask the history
The useful query is not what is the ranking. It is on which day did this ad last change level, and what else changed on that day. A ranking that stepped down the day a new audience was added is an audience result. A ranking that stepped down on the day the landing page was redeployed is a page result. Both are invisible without the date.
Meta ad diagnostic rankings and creative fatigue
Fatigue is the case where these rankings earn their keep, because the alternative signals arrive later.
Frequency tells you an audience has seen the ad repeatedly. It does not tell you whether they have started ignoring it. Cost per result tells you they have, but only after enough spend has gone through at the worse rate for the average to move. Engagement rate ranking is a forecast, so it can degrade while the cost per result is still acceptable.
Read them as a pair. Rising frequency with a stable engagement rate ranking means the audience is still responding and there is room left. Rising frequency with a falling engagement rate ranking is the creative wearing out on that audience, and the fix is a new creative rather than a wider audience or a bigger budget. Stable frequency with a falling engagement rate ranking is not fatigue at all, and you should look at what changed in the competitive set or the placement mix instead.
Quality ranking sliding on a previously stable ad is worth a separate check, because it can indicate accumulating negative feedback rather than indifference. The remedies differ. Fatigue is solved by refreshing the same idea for the same audience. Negative feedback is solved by changing the idea, because running it again in a new edit produces the same reaction.
The caveat
These rankings only appear once an ad has enough impressions, and they are relative to a competitive set that changes. A ranking drop during a high-competition period - Black Friday, an election, a major sale event - may reflect the auction rather than your ad.
That is another argument for history. A drop that recurs every November is seasonal. A drop that started in March and never recovered is a creative problem.
There are two more limits worth stating plainly, because acting on a ranking you have misread costs a rebuild you did not need.
A ranking is a relative position, so it cannot tell you whether the whole competitive set is good or bad. Above average in a category where everyone runs weak creative is not a compliment, and below average in a fiercely contested category can sit next to an acceptable cost per result. The rankings diagnose; the cost per result decides. If cost per result is fine and a ranking is poor, the ranking is telling you about your headroom, not about your profitability.
And a change of optimisation goal, audience or placement mix moves the comparison set underneath the ad. When a ranking changes on the same day you changed one of those, suspect the comparison before you suspect the creative. This is the reason to make one change at a time on an ad that is being diagnosed, and to launch variants as new ads rather than as edits, since editing resets delivery and restarts the assessment against a set you may not have intended to enter.
Related
- Meta ads reporting for agencies: the 58 metrics
- Reading video quartiles
- Link clicks vs landing page views
Explore More
- Feature: Facebook & Instagram Ads - Every client's ad account in one view, with leads attributed back to the ad that produced them
- Feature: Analytics - Pipeline, conversion and revenue next to ad spend, per client
- Meta Ads Reporting for Agencies - Building the report clients actually read
- Pricing - Plans built for agencies running multiple ad accounts
\
More on running ads for clients\
Start here: Meta ads reporting for agencies - 58 metrics explained, and which ones a client actually cares about.
\
- Ad tracking and attribution software - knowing which ad produced the revenue.\
- Meta Business Portfolio explained - how agency access actually works.\
- Facebook ad account agency access - setup and permissions without the guesswork.\
- Google Ads manager account (MCC) - the same job on the other platform.\
- Automated ad rules - pausing a losing campaign without watching it.\
- Meta ad diagnostic rankings - quality, engagement and conversion, decoded.\
- Link clicks vs outbound clicks - the metric mix-up that flatters a report.\
- Video ad quartiles - where your creative actually loses people.\
- Cost per outcome on Meta - the number to report on.\
- Ad creative library for agencies - why it should not live inside Meta.\
- Meta partnership ads - setup, permissions and pitfalls.\
- What agencies charge for Facebook ads - pricing benchmarks.\
- Moving off Meta Business Suite - and what you gain by doing it.\

