Every ad set in a Meta campaign you manage in PromoPilot (Ads > Campaigns) has an auto-stop setting and a start and end time. Open the campaign, press Edit on the ad set, and you will find them under the budgets.
Auto-stop for underperforming ads
- Off: nothing is judged.
- Flag ads that underperform: every time the results sync (every 30 minutes), each ad in the set is judged on its last 7 days. When one fails you get a notification and an email, and the ad keeps running.
- Pause ads that underperform: the same, and the ad is also paused on Meta. The rest of the ad set keeps running.
How an ad is judged
An ad shows Learning until it has 2,000 impressions and a full day of delivery. It fails when its hook rate (video plays per impression) is under 15% or its click-through rate is under 1%, the same rules as promoted posts. Just above those lines it shows Watch, and above 20% hook rate and 1.2% click-through rate Healthy. The campaign page shows each verdict and its reason.
What auto-stop leaves to you
- It pauses an ad once. Turn it back on and it stays on.
- An ad already paused, or with no delivery since yesterday, is left alone. If it fails while it is off, you hear about it once it runs again.
- You hear about an ad once, not on every sync, and again only after it has recovered to Healthy (or had a week with no delivery) and failed anew.
Start and end times
Times are in the ad account's time zone, shown under the fields. Meta stops delivering the ad set at its end time. A lifetime budget needs an end time; a daily budget can run with no end. The start time can be set until the ad set is on Meta. On a live ad set you can move the end time but not remove it: set a later one, or pause the ad set. Changing only the auto-stop setting of a live ad set sends nothing to Meta.
API and MCP server
PATCH /api/v1/ads/adsets/<id>/ and the update_adset and create_adset tools take auto_stop_mode (off, advisory or enforce) and end_time. Changing only auto_stop_mode sends nothing to Meta and needs no confirmation. list_ads, get_campaign and GET /api/v1/ads/ads/ show each ad's verdict.