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_pausedtotrueto add paused ads and ads under a paused campaign or ad set. countscovers every ad checked.problematic_adslists only the ads you can act on:disapproved,ad_level_issuesandpending_review.- Ads held back by a paused campaign or ad set are counted under
blocked_by_parentand 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.
| Name | Type | Required | Description |
|---|---|---|---|
ad_account_id | string | Yes | Must include act_ prefix. |
include_paused | boolean | No | Also 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?”
Related tools
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.