Anyone or anything with access to your Meta ad account can pause an ad: a person in Ads Manager, another app connected to the account, an automated rule on the ad account (rules apply to every business that shares the account), or Meta itself when it rejects an ad in review or the account needs its payment details.
What PromoPilot does
Every 30 minutes it checks every ad it runs on Meta: promoted posts, Create Ad ads, and the ads, ad sets and campaigns under Ads > Campaigns. When one stopped or started without PromoPilot, it reads Meta's activity history for the ad account (what Ads Manager shows as Activity history) and the account's automated rules, and records who or what made the change and when. You get a notification and an email with the answer, once per ad and cause in a week. A promoted post paused on Meta shows as paused here too, and Resume turns its ad, ad set and campaign back on.
Where to see it
- A promoted post's page shows the reason at the top, with Check with Meta to ask again now.
- A campaign's page shows the reason under each paused campaign, ad set and ad, with Why is it off?.
- PromoPilot's own pauses (yours, or auto-stop's) are shown the same way.
What the reasons mean
- Paused by a person in Ads Manager: someone with access to the ad account turned it off.
- Paused by an app: a tool connected to the ad account did it, signed in as the person named.
- Paused by an automated rule: a rule on the ad account matched it. Check the rule in Ads Manager before resuming, or it may pause the ad again.
- Paused in PromoPilot (from another brand): a brand that shares the ad account paused it in PromoPilot.
- Through PromoPilot's Meta app: the change came through PromoPilot's connection to Meta but PromoPilot has no record of it, for example one made before this history began.
- Created paused, and nobody has switched it on since: it has been off since it was made, for example a campaign PromoPilot pushed paused.
- Meta rejected the ad or stopped delivery: the reason is Meta's own review feedback or account notice.
- When Meta's history has no entry, PromoPilot checks again for about two hours, then says it could not tell. The ad's Activity history in Ads Manager has the full record.
API and MCP server
The explain_ad_status tool and POST /api/v1/ads/status/check/ read an ad on Meta now and give the reason (by boost id, wizard ad id, campaign ad, ad set or campaign id, or any Meta id). list_ad_status_changes and GET /api/v1/ads/status-changes/ list recent stops and starts. list_ads, get_boost and GET /api/v1/ads/ads/ carry the reason for an ad that is not running.