Lock in $67
METHOD

Meta ads opportunity score: what a perfect score means

It grades how closely you follow Meta's recommendations, not how your ads are doing — and an empty recommendation list scores the same as a well-run account.

Espen Opdahl Published 6 min read
The short answer

Opportunity score measures how closely your account follows Meta's own recommendations — not how your ads are performing. Meta's help centre says that in as many words. Through the official connector, ads_get_opportunity_score hands back exactly two things: the score, and a list of recommendations. Every ad account I pointed it at on 27 August 2026 answered with a perfect score and an empty list, including a dormant one with no payment method attached. A perfect score there is not a verdict. It is an absence of suggestions.

You ask Claude how to improve your ads. It reaches for this tool before anything else, because the tool's own description tells it to, and comes back saying your opportunity score is perfect. Nothing to fix.

That reads like a report card and it is not one. It answers a much narrower question: is there anything left on Meta's recommendation list that you have not already applied or dismissed? On an account that is barely running, the answer is no — for the least encouraging reason available.

What the connector actually hands back

One argument matters, the ad account ID, and the reply is a two-key object. Here is a real one, copied out of a live account:

{"recommendations": [], "opportunity_score": 100}

That is the entire surface. No timestamp, no confidence flag, no "we have not evaluated this account yet" state. The recommendations array is where every piece of usable information lives, and when it comes back empty the number above it is doing no work at all.

I ran the same call across nine ad accounts that day — accounts spending, accounts dormant, one with no payment method on file, and one the account listing reports as unsettled and not queryable. Every single one returned the empty array and the top of the scale. The accounts I know have nothing running scored exactly like the ones that do.

The connector's instructions to the model explain why you hear about this at all. The description says Meta recommends calling the tool proactively, and directs the assistant to present the score prominently: "Your opportunity score is X out of 100". It then insists the score is always account-level and that the model must never claim it applies to a particular campaign, ad set or ad.

That last instruction sits oddly next to Meta's own help centre, which describes the same score as representing how optimised your campaigns, ad sets and ads are, and describes dismissing a recommendation on one campaign while it carries on appearing for another. Both pages belong to Meta. They do not frame the thing the same way, and only one of them is in front of the model.

worth knowing Meta says a high score can simply mean it has nothing to suggest.

From Meta's help centre article on opportunity score — which the connector will fetch for you through ads_get_help_article — a higher score suggests one of three things: you are already following the recommendations, you resolved all errors and warnings, or "there are no errors, warnings or recommendations for you at this time." The third reading is the one nobody quotes. The same page states that the score, high one included, does not reflect your actual or future performance, and describes itself as in development and liable to change.

What a high score is taken to mean, and what Meta says

The common readingWhat Meta's own pages say
A perfect score means a fully optimised accountOne of three things — and one of them is that there is nothing to suggest right now
A low score means the campaign is underperforming"You should not turn off campaigns with a low opportunity score" — it grades optimisation, not results
The score tells me how my campaigns are set upThe connector's tool description says it is always account-level and must never be read onto one campaign
If something is wrong, the score will show it"If you have an account error, your opportunity score will not show"

The last row is where my own results and Meta's page part company. The unsettled, non-queryable account in my list returned a perfect score like everything else. Whether Meta counts that state as an "account error" I cannot tell from the outside, and the connector's two-key reply has no field in which to say so. Either way, the practical lesson holds: nothing in that response distinguishes a healthy account from one the scoring engine never looked at.

Knowing which question a number answers is most of the work. See what the weekly routine checks →

One number A high opportunity score Three different causes You applied the recommendations You cleared the errors and warnings There was nothing to recommend The reply cannot tell you which. Meta's help centre lists all three as the same signal.

How to get something out of it anyway

  1. Read the recommendations, ignore the score START HERE

    The list is the product; the number is a summary of the list's length weighted by Meta's own estimate of what each item is worth. Ask for the recommendations themselves and what each one would change about your account, and you get something you can argue with. The trade: on a quiet account there is nothing in the list to read, and you have spent a call to find that out.

  2. Treat an empty list as a question

    Put the account listing beside it. An account with no payment method, no active delivery or a status that is not clean has nothing for the engine to evaluate, and it will score perfectly for that reason. The pairing takes seconds and it changes what the score means. The trade: it turns a one-line answer into two lookups, and most of the time the second one only confirms what you already knew.

  3. Ask what each recommendation costs, not only what it adds

    The tool description names the kinds of thing it suggests — scaling a good campaign, Advantage+ audience, automatic placements, campaign budget optimisation. Several of those are a transfer of control to Meta's delivery system. That can be the right call and it is still a decision, not a defect you are being told to repair. The trade: declining them holds your score down permanently, and Meta's page is explicit that a dismissed recommendation never gives its points back.

  4. Send "nothing is running" somewhere else entirely

    The description rules this tool out for delivery-blocking problems by name and points at the errors tool instead. A stopped ad is not a missed optimisation, and asking the optimiser about it gets you a confident silence.

An account with nothing to fix and an account with nothing running return the same number.

  • Reading it as a performance grade. Meta's page says the opposite twice, and adds that you should not switch off a campaign on the strength of a low score.
  • Letting an empty list close the review. It is the beginning of a question about whether the account is in a state worth evaluating.
  • Working down the list because it is ranked. The ranking is by expected point gain, which is not the same as by what is right for your business.
  • Quoting the score to a client. It looks like a KPI and it is a compliance measure against someone else's checklist.

Try this tonight Ask for the opportunity score on every ad account you hold, then ask for the account list beside it with payment method and status. Any account returning a perfect score that also shows no delivery is scoring on emptiness, and you can cross it off the list of things the number tells you anything about. Whatever is left — accounts genuinely spending, genuinely returning nothing to recommend — is the short list worth reviewing by hand this week.

This is one tool out of a long manifest, and the rest are in the full tools list. If you want the other side of single-number thinking, sorting by ROAS fails in a related way. Not connected yet? Start with the setup.

Frequently asked questions

Is a perfect opportunity score good?

It is not bad, but on its own it is not evidence of anything. Meta's help centre lists three causes for a high score and one of them is that there were no recommendations to give you at that moment. Check whether the account is actually delivering before you read it as praise.

Does the score tell me whether my ads are profitable?

No, and Meta says so directly: the score, including a high one, does not reflect actual or future performance. It measures how much of Meta's recommendation list you have adopted. Profitability is a question for your own numbers, checked against Ads Manager.

Can Claude apply the recommendations for me?

Not through this tool — it only fetches. Acting on a recommendation means changing budgets, audiences or placements, which is a write, and the ones worth having are exactly the ones you should decide yourself. Read the list in the chat, make the call, apply it where you can see what changed.

Why would a dormant account score perfectly?

Because there is nothing for the recommendation engine to evaluate, so it returns nothing, and an empty list is what a perfect score is made of. That was consistent across every account I checked on 27 August 2026, spending or not.

Numbers that look like verdicts

Most of what an ad account reports is narrower than it sounds. The course is the routine for asking better questions of it — and knowing which answers to check.

See what's inside — $67 founding price

Pre-sale: the modules are still being recorded and founding members get the checkout link first. No charge today. Public price $97.

Espen Opdahl Writes The Claude Ads Operator. I run Meta ad accounts through Claude and Meta's official ads connector, and I write down what actually happens — including the parts that don't work. Not affiliated with Meta or Anthropic.