Ad action decisions
Which ads to kill, pause, scale, or reduce spend on — and why. The action layer that today consumes a Meta specialist's full attention.
The question, verbatim: "Which ads to kill, which ads to pause, which ads to reduce spend, which ads to scale, when to start deskilling, when to start scaling — all of that. If this is reliable, I don't need a person to do it."
This is the perf team's bread and butter — the daily decisions a Meta specialist spends their day making. Meta's API for ad changes has existed for 15 years; Meta's auto-rules exist; but the rules are noisy enough that humans still do it. This use case is what closes that gap.
Who asks
- Perf team lead — running the daily ops review
- Each perf executive on their portfolio of ads
Frequency
Daily for active campaigns; multiple times a day during sale weeks.
Data you need
adswith daily performance: spend, revenue, clicks, impressions, CTR, CRad_creativeswith hook rate, hold rate (Meta-derived)ads.first_live_date— to compute days-since-launch (decay context)ads.scale_band— bucketed spend levels (a derived field; if you don't have it, the platform infers from spend percentiles)
How to ask it
- "For the active Meta ads, recommend kill / pause / reduce / hold / scale for each one, with reasoning."
- "Which 10 ads should I scale tonight? Which 10 should I kill? Show me the reasoning per recommendation."
- "Top spenders this week with NRoAS below 1.2 — are they killable, or is decay temporary?"
What you'll get back
A ranked action list, one row per ad:
| Ad | Spend (7d) | NRoAS (7d) | Trend | Days live | Recommendation | Why |
|---|---|---|---|---|---|---|
| ad-4521 | ₹2.1L | 0.8 | ↓ 28% | 18 | Kill | NRoAS 0.8 < threshold 1.0, no recovery in 14d, hook decay confirmed |
| ad-4189 | ₹3.4L | 2.9 | ↑ 12% | 7 | Scale | Above scale-band 2.5x, hook rate improving, CR steady |
| ad-4012 | ₹0.9L | 1.4 | flat | 32 | Hold | Mature, performing at expected decay rate |
| ad-4733 | ₹1.7L | 1.1 | ↓ 8% | 5 | Reduce 30% | Early decay warning; preserve capital, don't kill yet |
Each row's "Why" is fully expandable — you can see the underlying metrics, the trend chart, the comparable ads, and the rule the platform applied.
The logic tree this maps to
For each active ad:
├── Is spend < ₹X (statistically thin)?
│ └── Skip — needs more data
├── Is NRoAS < kill-threshold AND trending down 7d?
│ └── Kill
├── Is NRoAS > scale-threshold AND trending up 7d?
│ ├── Is current spend at scale-band ceiling?
│ │ └── Hold (already maxed)
│ └── Scale (raise spend by configured step)
├── Is NRoAS ok but hook-rate decaying past avg decay period?
│ └── Pause (creative fatigue)
├── Is CR dropping while NRoAS holds?
│ └── Investigate landing/payment (don't touch ad)
└── Default: HoldKill / scale thresholds and step sizes are configurable per product and per campaign type.
How to roll this out — the dormancy protocol
Per the perf leader's plan: the action agent stays dormant initially. The platform produces recommendations; humans execute them. Once humans accept ~50% of recommendations consistently, switch the agent to auto-execute the highest-confidence recommendations, with humans reviewing the rest.
Phase the rollout:
- Week 1-4 — Platform recommends. Human reads, applies own judgement, executes. Track acceptance rate per recommendation type.
- Week 5-8 — If acceptance ≥ 70% on "Kill" recommendations, auto-execute kills. Humans still review scale / reduce.
- Week 9+ — Expand auto-execute to other action types as their acceptance rates clear the bar.
Every auto-executed action is logged to the platform's audit log with the underlying reasoning.
How to make it recurring
Save as a tracker:
- Cadence: daily at 9 AM IST (before the team's stand-up)
- Output: ranked action list, pushed to the perf channel
- Linked goal: Marketing efficiency
Pitfalls
- Killing too early. A 5-day-old ad with one bad day isn't a kill — it's noise. Configure minimum days-live before kill is in play.
- Scaling on a thin sample. An ad with 3 days at high NRoAS but low spend is a candidate to test-scale, not full-scale.
- Ignoring decay context. Mature ads should decline; flagging them as kill candidates wastes attention.
- Treating all products the same. A Shilajit ad's decay curve is different from a Karela Jamun ad's. The platform learns per-product curves over time — give it 30-60 days.
Related
- NRoAS drop RCA
- Creator pattern trends
- Custom tools — connect Meta's API for auto-execution
NRoAS drop RCA
The weekly perf-marketing question. "Why is my acquisition NRoAS not holding up?" — answered with the right tables, the right segmentation, and a citation trail.
Audience overlap diagnosis
Are two ad sets eating each other's new-customer reach? The most common deep-dive within an NRoAS drop.