How do I get an alert the moment Meta rejects one of my ads or it stops delivering?
TofuAnswer by the Tofu team · checked

For instant alerts, use Meta's effective_status ad account webhook, announced July 21, 2026. It tells your server when an ad is rejected or stops delivering. A small service then forwards each event to Slack or email. You need a Meta developer app and an ad account admin token. Without code, you still get Meta's rejection emails, which you can't switch off, and Error notices in Ads Manager when an ad isn't delivering. Automated rules can't watch for rejections, and Meta's webhook docs promise no delivery time or retries.
Ask Tofu next
Pick a question and Tofu Ads Agent answers it in chat.
- Which of my Meta ads are rejected or not delivering right now?
- Why was my Meta ad rejected, and should I edit it or request a review?
- Flag any Meta ad in my account that got zero impressions today
- Why is my Meta campaign active but not spending its budget?
- How do I get Slack alerts when someone changes a budget in my Meta ad account?
As of November 2026.
What does Meta tell me on its own when an ad is rejected or stops?
More than most people notice, but only by email and inside Meta's tools.
| What happens | What Meta sends | Where you see it |
|---|---|---|
| Meta rejects an ad | An email with a link to Business Support Home, where you find the reason | Your inbox and Business Support Home |
| Something blocks an ad | An Error notice. Meta's example: "your ad is not delivering because its image contains too much text" | Business notifications in Ads Manager and Business Suite |
| Delivery or results change suddenly | A Warning. Meta's example: "your campaign faced a sudden change in delivery or performance" | Business notifications |
| Your ad account hits its spending limit | Your ads pause and you get a notification, "but ads will still be listed as active" | Notifications, not the Delivery column |
Business notifications have an Ads category for "status updates, results and tips for your ads," and you can click a notice to fix the issue. The last row matters too: a status check alone won't catch a spending limit pause, so keep that notification on. Meta also re-reviews running ads, and "you won't be notified unless it's found to violate our Advertising Standards." Why Meta rejects ads that ran fine covers that case.
How do I make sure those notices reach me?
Check two places.
- Ads Manager. Click the menu icon, select All tools, then under Advertise select Ad account settings and click Notification settings. You can click Edit email address or Edit mobile number, then expand each category and turn on the notification types you want. Selections save automatically.
- Meta Business Suite. Go to Settings, select Notifications, and under Business updates switch each type on or off for Business Suite or email.
You can't mute the important ones. Meta says it "will still send you important notifications outside of these settings," and names ad approvals and rejections, payment issues and invoices. Neither page says whether these settings apply to you alone or to everyone on the account, so ask each person who owns launches to check theirs.
What changed in July 2026?
On July 21, 2026, Meta's developer blog showcased its ad account webhooks and announced new ones as "available immediately." The new one for this job is effective_status: "Receive an alert when an ad is not being delivered due to delivery blocks, policy rejections, or sync delays." Webhooks push a notice to your server, so you no longer have to poll the Marketing API, and Meta says this avoids a hit to your rate limit.
The webhooks that matter here:
| Webhook field | What triggers it, per Meta's docs | What the notice includes |
|---|---|---|
effective_status | A campaign, ad set or ad changes delivery status, "such as a rejection, a delivery block, or a return to active delivery" | The object's ID and level only, not the new status |
with_issues_ad_objects | An object "entered an issue state during operation or publishing" | An error_code, error_summary and error_message |
Meta also offers in_process_ad_objects (an object finished publishing or processing), creative_fatigue and ad_recommendations. A separate subscriptions webhook fires when an object is created or updated, or when a metric such as spend crosses a threshold you set. The blog says it covers "over 88 notifications related to ad object changes and insights updates."
How do I send Meta's webhook alerts to Slack?
Meta doesn't post to Slack. It sends an HTTPS POST to a callback URL you run, and your code passes it on. Meta's setup guide, in short:
- Build the endpoint. It must answer Meta's verification request by echoing
hub.challenge, or "the subscription is not created." Check each POST'sX-Hub-Signature-256header against an HMAC-SHA256 of the body, keyed with your app secret. - Subscribe your app. Call
POST /<APP_ID>/subscriptionswith an app access token, your callback URL, a verify token and the fields, such aseffective_statusandwith_issues_ad_objects. - Connect each ad account. Call
POST /act_<AD_ACCOUNT_ID>/subscribed_appswith an admin token for that account (an admin user or a system user). Repeat for every account. - Look up the status. The effective_status notice "tells you that the effective status changed but not the new value." So call the ad with
effective_status,configured_statusandreview_feedback, as Meta's guide shows (the Ad reference lists that last field asad_review_feedback). Meta saysconfigured_statustells a pause you made apart from a problem, andreview_feedbackgives the rejection reason. - Post to Slack. Slack's incoming webhooks are "a way to post messages from apps into Slack." They need a Slack app.
An ad's effective_status can be ACTIVE, PAUSED, DELETED, PENDING_REVIEW, DISAPPROVED, PREAPPROVED, PENDING_BILLING_INFO, CAMPAIGN_PAUSED, ARCHIVED, ADSET_PAUSED, IN_PROCESS or WITH_ISSUES. Alert on DISAPPROVED, WITH_ISSUES and PENDING_BILLING_INFO, and ignore pauses where configured_status shows someone on your team did it.
Permissions. Connecting an account needs the ads_management permission, and receiving events needs ads_read or ads_management. For your own ad accounts, standard access to those permissions is enough. An agency managing clients' accounts needs advanced access, approved through App Review. Meta labels its default Limited access tier "for development only."
What Meta doesn't promise. Meta says webhooks notify you "immediately," but its docs give no delivery time, retry rules or delivery guarantee. They also don't say whether a spending limit pause changes effective_status, though the effective_status guide lists raising the account spend cap as one example response. So "the moment" means as soon as Meta sends it.
Can Meta's automated rules alert me instead?
Only for numbers, not for rejections. Rules have a Send notification only action, which "sends a notification to yourself or other people on your ad account." Rule notices show up in the business notifications menu in Ads Manager. A subscriber you add must be an admin on the ad account with full control of the business portfolio.
But Meta's list of rule conditions has no delivery status or ad review condition. The closest you can get is a rule on Impressions for a time range you choose, set to notify you when an ad that should be running gets almost none. Meta allows up to 250 rules per ad account, and rules can't run on ads about social issues, elections or politics.
Is there a tool that does this without code?
Some monitoring tools post Meta problems to Slack for you. Our roundup of AI tools that alert you in Slack compares them. To watch for settings Meta changes on its own, see tools that alert you to Advantage+ changes.
What do I do when the alert comes in?
- Rejected: open Business Support Home, read the reason, then edit the ad or click Request review. Meta aims to decide on a review within 48 hours. More in what to do when Meta rejects ads that ran fine.
- Still in review for days: see why a Meta ad is stuck in review.
- Active but not spending: see why a Meta campaign is active but not spending.
- Page can't advertise: see why a Facebook Page is restricted from advertising.
Sources (19)
- Stop Polling, Start Pushing: The Case for Webhooks (Meta for Developers blog, July 21, 2026), checked November 4, 2026
- Ads Webhooks (Meta for Developers), checked November 4, 2026
- Effective status, Ads Webhooks (Meta for Developers), checked November 4, 2026
- With-issues ad objects, Ads Webhooks (Meta for Developers), checked November 4, 2026
- Get started, Ads Webhooks (Meta for Developers), checked November 4, 2026
- Ad, Marketing API reference (Meta for Developers), checked November 4, 2026
- Authorization, Marketing API (Meta for Developers), checked November 4, 2026
- How to troubleshoot a rejected ad (Meta Business Help Center), checked November 4, 2026
- How to change notification settings in Meta Ads Manager on your computer (Meta Business Help Center), checked November 4, 2026
- About business notifications (Meta Business Help Center), checked November 4, 2026
- Change your notification settings in Meta Business Suite (Meta Help Center), checked November 4, 2026
- About ad account spending limits (Meta Business Help Center), checked November 4, 2026
- Why some ads are approved, then rejected (Meta Business Help Center), checked November 4, 2026
- About actions for automated rules in Meta Ads Manager (Meta Business Help Center), checked November 4, 2026
- Available conditions for automated rules in Meta Ads Manager (Meta Business Help Center), checked November 4, 2026
- Create an automated rule in Meta Ads Manager (Meta Business Help Center), checked November 4, 2026
- Receive notifications for an automated rule in Meta Ads Manager (Meta Business Help Center), checked November 4, 2026
- Limits to automated rules in Meta Ads Manager (Meta Business Help Center), checked November 4, 2026
- Sending messages using incoming webhooks (Slack developer docs), checked November 4, 2026