Rules

Anatomy of a rule

The four cards of the rule builder and the fields each one writes — name, accounts, filters, tasks and schedule. This page of the AdOps documentation sits in the Rules section, last updated 20 August 2026. AdOps runs rules — conditions plus actions — against your Meta Ads campaigns on the schedule you set.

Updated

Key facts

Cards in the rule builder
4 Basic Information, Filter Configuration, Tasks & Conditions, Schedule Configuration
Actions per task
exactly 1 a rule holds as many tasks as you need, each with its own conditions
Rule levels
Campaigns or Ad sets the level sets the Insights read level; actions are executed against campaigns
Pre-filter fields
3 Campaign ID, Campaign Name and Campaign Status
Rule statuses
DRAFT and ACTIVE only ACTIVE rules are picked up by the execution engine

An AdOps rule is one document with five moving parts: a name and the ad accounts it covers, pre-filters that narrow which campaigns are in scope, a level, a list of tasks that each pair a condition set with one action, and a schedule. The builder writes all five from a single page under the header Create Rule.

Card 1 — Basic Information

Three fields.

Rule Name carries the hint “Choose a descriptive name for your automation rule” and the placeholder “e.g., Pause underperforming campaigns”. Name rules after what they do; the name is what the Rule Logs sidebar, the Activity Log and the bulk bar all show you.

Ad Accounts is a set of removable chips plus a + button, hinted “Select up to 5 ad accounts you want to manage”.

Notifications carries the hint “Get alerts about triggered actions via email” and holds an Email Address, a Recipient Name (placeholder “e.g., Marketing Team”) and a Channel Type of Email.

Card 2 — Filter Configuration

This card decides which campaigns the rule even looks at, before any metric is read.

A level button toggles between Campaigns and Ad sets. Beside it, a + button adds a filter chip on one of three fields:

FieldOperatorsValues
Campaign IDequal, not equala campaign id
Campaign Namecontains, does not containfree text
Campaign Statusis, is notACTIVE or PAUSED

Each chip renders as <Field> <operator> <value> and opens an inline editor when clicked. Underneath, a live readout shows Estimated match: N Campaigns, recalculated 500 milliseconds after any change, with a per-ad-account breakdown in its tooltip. Before you attach accounts it reads “Select ad accounts to see affected items”.

Use it. It is the only place in the product that tells you the blast radius before you save.

Card 3 — Tasks & Conditions

The toolbar holds Templates, Add Task and Generate with AI.

Each task card shows the action icon, the action name with the word “campaign” swapped for your chosen level, a one-line summary such as “Increase budget for all campaigns”, copy and trash buttons, an AND/OR pill, and a table of conditions. Every condition row is four pickers and an input: metric, period, operator, value — plus a Compare With cog and a remove button.

The stored shape is plain JSON:

{
  "level": "campaign",
  "status": "ACTIVE",
  "tasks": [
    {
      "action": "increase_budget_campaign",
      "action_frequency": "2_hours",
      "action_value": { "value_1": 100000, "value_2": 1000000, "value_3": "value" },
      "condition": {
        "operator": "AND",
        "conditions": [
          { "metric_key": "purchase_roas.omni_purchase", "period": "today", "operator": "GREATER_THAN", "value": "3", "compare": "value" },
          { "metric_key": "spend", "period": "today", "operator": "GREATER_THAN", "value": "0", "compare": "value" }
        ]
      }
    }
  ]
}

For every campaign in scope, the engine walks the tasks in order and evaluates each task’s own conditions before running that task’s own action. One rule can therefore encode a whole playbook — scale on good ROAS, pause on bad ROAS, tag either way — and each task is logged separately with its own task_id.

Card 4 — Schedule Configuration

Either Run every <interval> or Run on spesific days and time, optionally bounded by Run within a date range. On a saved rule an info alert reports the Next Scheduled Execution. See Scheduling a rule for the full detail.

Draft or live

The header has two buttons: Save as Draft stores the rule with status DRAFT, and Set Live stores it as ACTIVE. Only ACTIVE rules are selected by the execution engine, so a draft is a safe place to leave work in progress. Editing an existing live rule turns the primary button into Update Rule.

The AdOps rule builder: a rule name field, two ad accounts as removable chips, email notification fields, a filter reading Campaign name contain retail with an estimated match of 89 campaigns, and the first task card below. Sample data
Name it, point it at up to five ad accounts, narrow it with a filter — and see how many campaigns that filter matches before you save.

Questions about this page

What is the difference between a rule and a task?

A rule is the container that holds the ad accounts, filters, schedule and status. A task is one action plus the condition set that must pass before that action runs, and a rule can hold several tasks that are evaluated in order for every campaign.

Can one rule both scale winners and pause losers?

Yes. Add two tasks to the same rule — one with an Increase budget action and a high-ROAS condition set, one with a Pause action and a low-ROAS condition set. Each task is evaluated and recorded separately for every campaign.

What does the Ad sets level change?

It changes the level the Meta Insights read is issued at, and it is stored on every rule result. Actions are executed against campaigns, so do not plan on ad-level writes.

How do I copy a rule to another ad account?

Use Duplicate from the rule's three-dot menu. AdOps opens the builder pre-filled with the whole rule, with " (Copy)" appended to the name, as a new unsaved rule you can point at different accounts.

Read it once, then write the rule.

Everything in this manual describes a screen you can open today. Start a trial and follow along in the product rather than on the page.

Start free trial Documentation

14 days free · no card required

Inside the product

What the screens actually look like

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.

  • The AdOps Performance Dashboard showing a Purchase ROAS card at 2.380x and an Aggregated ROAS card at 2.088x, both badged Profitable, a Monthly Budget card at Rp 155jt, and a Spend Breakdown ranking the top five ad accounts against a budget utilisation bar at 45.5 per cent.
    Performance Dashboard. Two ROAS figures to three decimals, a budget meter, and spend ranked by ad account — over Today, Last 7 days, Last 30 days or This month.
  • The AdOps rule list showing twelve automation rules, each with an on/off toggle, the ad accounts it manages, and when it last triggered — some minutes ago, others on a dated timestamp.
    Rule List. Every rule, what it manages and when it last fired. The toggle is the only thing between draft and live.
  • The AdOps condition builder showing a task with time-of-day conditions across seven day tags, a nested AND group holding a lifetime spend condition under 400,000, and a second task with four stacked metric conditions.
    Conditions. Metric, period, operator, value — joined with AND or OR, and nestable, so a rule can say something a dropdown cannot.
  • The AdOps metric picker open over a condition row: a panel with Meta Ads and Custom metrics tabs, a search box, and a scrolling list of metrics with Spend selected.
    Metric picker. Forty-five Meta metrics and your own sheet columns in the same list, each carrying a reporting period and any of six operators.
  • The AdOps dayparting timetable: a grid of hours against the seven days of the week, with the daytime hours filled navy for every day and the night hours and weekend evenings left empty.
    Dayparting grid. Or draw the hours instead. Anything outside the shape you fill in simply does not run.
  • An AdOps execution log detail: one campaign, two action panels badged Not Executed, each listing the action parameters and every condition evaluated with its actual value, its expected value and a Pass or Fail badge.
    Rule Log detail. Why a rule did nothing is recorded as carefully as why it did something — actual against expected, condition by condition.
  • The AdOps activity log listing budget increases and campaign renames, each row naming the affected campaign by id, the rule that caused it and how long ago it happened.
    Activity Log. One row per change AdOps made in your account, naming the campaign and the rule responsible.
  • The AdOps ad account list: eighteen Meta ad accounts with on/off toggles, account ids, Active or Inactive badges and this month’s spend in rupiah.
    Ad Accounts. Accounts discovered from Meta arrive switched off. Nothing is read, and nothing is changed, until you turn one on.
  • The AdOps custom metric editor mapping a Google Spreadsheet: a spreadsheet id, a sheet name, a column to match campaigns on and a column holding the values.
    Custom metric. Point AdOps at a sheet, name the matching column and the value column, and your own number joins the metric list.

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