Scale the proven winner
When
- Purchase ROAS Last 7 days > 2.5
- AND Purchases Last 7 days > 20
- AND Spend Today > Rp 1,000,000
Then
- Increase budget by 20 percent Once every 6 hours
Use case
AdOps scales e-commerce campaigns by evaluating every active campaign on a fixed interval between 15 minutes and 72 hours, raising the budget of a campaign that clears its ROAS and purchase thresholds in bounded percentage steps, and pausing one that misses them — with the before and after value written to a log.
Budget-scaling rules for a D2C advertiser who needs winners to grow and losers to stop on the same schedule.
Situation
The problem this playbook was written against, and what the account looks like once the rules are live.
A winner that deserved a budget raise on Tuesday morning gets it on Thursday afternoon, and the campaign that stopped converting keeps buying impressions through two nights because nobody opened Ads Manager.
Every active campaign is evaluated on a fixed interval between 15 minutes and 72 hours, budgets move in bounded percentage steps with a cooldown between them, and each change is written to a log with the value before and after.
Playbook
Each card is one rule, printed the way the AdOps rule builder prints it: conditions on top, actions below the hairline.
Every threshold below is an example. Change the numbers to fit your account before you set a rule live.
When
Then
Why this rule
Seven days of data separates a real winner from one good Tuesday, and the 6-hour cooldown caps the campaign at 4 raises in 24 hours.
When
Then
Why this rule
A weak day inside a strong week is noise, so cutting 15 percent at most twice a day is a smaller bet than pausing a campaign that is still profitable.
When
Then
Why this rule
The tag stays visible in Ads Manager, so the next person to open the account sees which campaigns the rule stopped and on which date.
When
Then
Why this rule
A campaign that spends Rp 750,000 in a day with zero purchases inside its first 72 hours is not warming up.
When
Then
Why this rule
The campaign list in Ads Manager becomes a scoreboard, so a weekly review does not need a second tab open on the dashboard.
Sample data Key facts
AdOps scales a Meta Ads e-commerce account by rule rather than by hand. You write a condition on a live metric such as Purchase ROAS over the last 7 days, attach an action such as Increase budget by 20 percent, and AdOps evaluates that condition on an interval you set, anywhere from 15 minutes to 72 hours.
A D2C account rarely fails because nobody knows what to do. It fails because the decision arrives late. The winner that deserved a 20 percent raise on Tuesday morning gets it on Thursday afternoon, and the campaign that stopped converting keeps buying impressions through two nights and a weekend.
Rules close that gap by making the decision in advance. The threshold, the action and the cooldown are written once, and the engine applies them at the same minute every day whether or not anyone has opened Ads Manager.
A condition compares one of 45 metrics against a number, using one of 6 operators, over one of 11 reporting periods. For scaling, the shape that holds up is a long window on the quality metric and a matching window on the volume metric: Purchase ROAS over the last 7 days is greater than 2.5, and Purchases over the last 7 days is greater than 20.
The window matters more than the threshold. A campaign can post a 4.0 ROAS on 3 purchases and mean nothing. Pairing the ratio with a count is what keeps a rule from scaling noise, and both conditions are answered by the same batched Insights read, so the second one costs no extra wait.
Two mechanics do the work. The first is the action frequency, a per-action cooldown with 11 settings from 15 minutes to once in a lifetime, offered on Increase budget, Decrease budget, Set budget, Duplicate and Notify. A 6-hour cooldown allows at most 4 budget raises in 24 hours, however often the rule itself runs.
The second is a rule pointed the other way. Decrease budget by 15 percent when Purchase ROAS today is below 1.5 while Purchase ROAS over the last 7 days is still above 2.0 trims a bad day without ending a good week. Before any budget action writes, the engine re-reads the campaign’s live Daily Budget from Meta, so the percentage applies to the number Meta holds at that moment rather than a stale copy.
Add to name writes text onto a campaign in one of three modes: Text, Append or Overwrite. The text can contain shortcodes resolved at execution time, including {date}, {time} and {metric|purchase_roas.omni_purchase|last_7d}.
Appending [LOW-ROAS {date}] when a rule pauses a campaign leaves the reason and the day in the place everyone on the account already looks. Appending the ROAS figure itself turns the campaign list into a scoreboard. The three name actions re-read the live campaign name from Meta before writing, so two rules tagging the same campaign do not erase each other.
A rule carries either a weekly timetable of days and times, or a plain check interval chosen from 10 values between 15 minutes and 72 hours. The dispatcher sweeps for due rules every 10 seconds and fans work out as one queued job per ad account.
| Rule | Check interval | Action frequency |
|---|---|---|
| Scale the proven winner | 1 hour | 6 hours |
| Trim a bad day | 3 hours | 12 hours |
| Pause the campaign that stopped paying | 30 minutes | not available |
| End the audition for a new campaign | 15 minutes | not available |
Pause, Start, Delete and the three name actions take no action frequency. They do not need one: adding a pre-filter of Campaign Status is ACTIVE keeps the rule from re-examining a campaign it has already paused.
Every pass writes a batch record plus one result per campaign per task. The Rule Log Detail screen shows an Executed, Not Executed or Skipped badge for each campaign, every condition marked Pass or Fail next to the value it read, the parameters the action used, the execution time in seconds, and the next scheduled execution. Budget and name changes additionally record the value before and after.
A rule joins its conditions with one AND or one OR, so a policy needing both is split into two rules. Rules target Campaigns or Ad sets, and the actions the engine writes are campaign-shaped, so plan around campaign budgets rather than ad-level edits. Percentages apply to Increase budget and Decrease budget only; Set budget takes a fixed amount or a custom metric. AdOps connects to Meta Ads today, and lists TikTok Ads, Google Ads and Snapchat Ads as coming soon.
Questions
Yes. AdOps ships three budget actions, Increase budget, Decrease budget and Set budget. Increase budget and Decrease budget accept either a fixed Rupiah amount or a percentage, and Set budget accepts a fixed amount or a value read from a custom metric.
AdOps evaluates a rule on the check interval set on that rule, which can be as short as 15 minutes, and the dispatcher sweeps for rules that are due every 10 seconds. A rule on a 15-minute interval is evaluated up to 96 times a day.
Each budget action carries its own action frequency, a cooldown with 11 settings from 15 minutes to once in a lifetime. A 6-hour cooldown limits a campaign to 4 budget raises in 24 hours regardless of how often the rule itself runs.
Yes. A rule joins all of its conditions with a single AND or a single OR, using six comparison operators. Two-level condition groups are not available, so a policy that needs both AND and OR is written as two separate rules.
Purchase ROAS in the AdOps rule builder reads Meta's purchase_roas field for the omni_purchase action type, over whichever of the 11 reporting periods the condition selects. Website Purchases ROAS is a separate metric in the same list.
Related
Every rule on this page is built from conditions and actions that ship in AdOps. Point them at one ad account and watch the log before you widen the scope.
Inside the product
Nine screens from the working dashboard — the rule builder, the metric picker, the dayparting grid and the log that records what happened. Scroll the strip.
Every figure is rebuilt from the product’s own interface and filled with invented data — no customer name, ad account or spend figure appears anywhere on this site. See how a run works