Tattva Docs
Use casesPerformance marketing

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

  • ads with daily performance: spend, revenue, clicks, impressions, CTR, CR
  • ad_creatives with 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:

AdSpend (7d)NRoAS (7d)TrendDays liveRecommendationWhy
ad-4521₹2.1L0.8↓ 28%18KillNRoAS 0.8 < threshold 1.0, no recovery in 14d, hook decay confirmed
ad-4189₹3.4L2.9↑ 12%7ScaleAbove scale-band 2.5x, hook rate improving, CR steady
ad-4012₹0.9L1.4flat32HoldMature, performing at expected decay rate
ad-4733₹1.7L1.1↓ 8%5Reduce 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: Hold

Kill / 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:

  1. Week 1-4 — Platform recommends. Human reads, applies own judgement, executes. Track acceptance rate per recommendation type.
  2. Week 5-8 — If acceptance ≥ 70% on "Kill" recommendations, auto-execute kills. Humans still review scale / reduce.
  3. 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.