Skip to Content
Tool referenceGet ad review status

Get ad review status (adsap_get_ad_review_status)

Platform: Meta · Read or write: Read · Plan: All plans · Consumes a task: No · Preview supported: No

What it does

Reviews the policy status of every active ad in an account, and paused ads if you ask. It returns counts by review status plus details for problem ads only: disapproved, with issues or pending. Use it in audits to surface policy violations and delivery blockers.

When to use it

  • Use it to sweep a whole account for policy problems in one call. It reads up to 4,000 ads.
  • By default it checks ads that are active, in review, disapproved or flagged with issues. Set include_paused to true to add paused ads and ads under a paused campaign or ad set.
  • counts covers every ad checked. problematic_ads lists only the ads you can act on: disapproved, ad_level_issues and pending_review.
  • Ads held back by a paused campaign or ad set are counted under blocked_by_parent and are not listed.
  • For one ad, with its parent statuses and a delivery summary, use adsap_get_ad_status.

Worked example

You ask

“Are any ads in act_1234567890 disapproved or stuck in review?”

The assistant calls adsap_get_ad_review_status

{ "ad_account_id": "act_1234567890" }

Adsap returns

The field names are the ones Adsap returns. The values are examples.

{ "ad_account_id": "act_1234567890", "total_checked": 25, "counts": { "active": 24, "disapproved": 0, "pending_review": 1, "blocked_by_parent": 0, "ad_level_issues": 0, "not_delivering": 0 }, "problematic_ads": [ { "ad_id": "120210000000000", "ad_name": "Summer collection, image 2", "campaign_name": "Summer collection", "ad_set_name": "Prospecting US", "effective_status": "PENDING_REVIEW", "classification": "pending_review", "review_feedback": null, "issues_info": null, "issue_description": "Awaiting Meta review" } ], "human_readable_summary": "Checked 25 ads. 24 active, 1 pending review." }

How to read it

Read counts first. Here nothing is disapproved and one ad waits for Meta’s review. Each entry in problematic_ads has a classification and a plain issue_description. When Meta gives a reason, review_feedback holds its policy messages and issues_info holds its delivery issues. Both are null when Meta reports none.

A disapproved ad appears in the same list with classification set to disapproved. To look closer at one ad, the assistant can call adsap_get_ad_status with its ad_id.

Parameters

Descriptions are shortened from the tool schema. Your assistant sees the full text.

NameTypeRequiredDescription
ad_account_idstringYesMust include act_ prefix.
include_pausedbooleanNoAlso check paused ads. Default false.

Example prompts

  • “Are any of my ads disapproved right now?”
  • “Check the review status of all ads in this account, including paused ones.”
  • “Which ads are stuck in review?”
  • adsap_create_ad: Create a Meta ad (image/video) in an ad set.
  • adsap_duplicate_ad_set: Duplicate an existing Meta ad set into 1-10 copies, keeping ALL its ads (including ads with no delivery yet).
  • adsap_get_ad: Read ONE ad in full, live from Meta: its creative content (primary texts, headlines, descriptions, CTA, destination link, URL parameters…
  • adsap_get_ad_set: Read ONE ad set in full, live from Meta: complete targeting spec (geo incl. regions/cities, age, genders, custom audiences…
  • adsap_get_ad_status: Check the current delivery, review, and effective status of a single Meta ad.
  • adsap_list_ad_accounts: List Meta ad accounts the user manages.

Guide

Read Building the ads for the workflow around this tool, and the Tool reference for every tool.

The Meta Ads MCP server  page shows how to connect Meta Ads to Claude, ChatGPT or Perplexity.

Last updated on