Use case

Dayparting and overnight budget control on Meta

AdOps runs time-of-day and day-of-week conditions, so a campaign's budget can drop to a fixed overnight floor at a chosen hour and return to the daytime figure the next morning. A separate AdOps rule pauses any campaign that still overspends between midnight and 5 AM and tags it in the campaign name.

Time-of-day and day-of-week conditions that lower budgets overnight, restore them in the morning, and stop a campaign that runs away after midnight.

Updated

Situation

What changes when AdOps runs the checks?

The problem this playbook was written against, and what the account looks like once the rules are live.

Before

A campaign that spends Rp 4,000,000 a day keeps buying between midnight and 6 AM at the same rate it buys at lunchtime, and the person who would have paused it is asleep.

After

Budgets drop to a fixed overnight floor at a chosen hour, return to the day figure in the morning, and a separate rule pauses any campaign that still overspends between midnight and 5 AM.

Playbook

Which rules does this playbook actually use?

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.

  1. Drop to the night floor

    Live
    Applies to
    Campaigns
    Checks
    Sunday through Saturday

    When

    • Time > 11:00 PM

    Then

    • Set budget to Rp 300,000 Fixed amount

    Why this rule

    The campaign keeps delivering at a floor instead of being switched off and on, and the floor is a number you chose rather than whatever Meta was spending at 23:00.

  2. Restore the day budget

    Live
    Applies to
    Campaigns
    Checks
    Monday through Friday

    When

    • Time > 07:00 AM
    • AND Time < 08:00 AM

    Then

    • Set budget to Rp 2,500,000 Fixed amount
    • Remove from name [NIGHT]

    Why this rule

    The restore window is one hour wide so a single missed evaluation does not leave a campaign on its night floor all morning.

  3. Stop the overnight runaway

    Live
    Applies to
    Campaigns

    When

    • Time > 12:00 AM
    • AND Time < 05:00 AM
    • AND Spend Today > Rp 1,500,000

    Then

    • Pause campaign
    • Add to name Append mode · [NIGHT-STOP {time}]

    Why this rule

    Rp 1,500,000 spent before 5 AM means the day budget will be gone by breakfast, and the timestamp in the name records the hour it happened.

  4. Scale only inside the weekend window

    Live
    Applies to
    Campaigns
    Checks
    Saturday and Sunday

    When

    • Time > 10:00 AM
    • AND Time < 09:00 PM
    • AND Purchase ROAS Today > 2.0

    Then

    • Increase budget by 10 percent Once every 3 hours

    Why this rule

    Weekend demand is real but short, and a 3-hour cooldown allows at most 4 raises inside an 11-hour window.

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. Sample data
Or draw the hours instead. Anything outside the shape you fill in simply does not run. Read the details
Draw the hours a rule may run. Nights are off, weekend evenings are off, and nothing fires outside the shape. Six seconds, silent. 6 sec No sound

Key facts

What are the numbers behind this playbook?

Dayparting metrics
2, Time greater than and Time less than The only two metrics that accept a day-of-week selection
Hour choices per time condition
24, from 12:00 AM to 11:00 PM
Day-of-week selection
7 checkboxes, Sunday first
Boundary behaviour
Inclusive Time greater than 07:00 AM is true from 07:00 onward, not from 08:00
Scheduling modes
2, a weekly timetable or a fixed check interval Check intervals run from 15 minutes to 72 hours
Shipped template for this pattern
Night Budget Reset

AdOps controls Meta campaigns by the clock using two metrics, Time greater than and Time less than. Each carries a 24-hour picker from 12:00 AM to 11:00 PM and a Sunday-first day-of-week selection, so a rule can drop a campaign to a fixed floor budget at 11 PM and restore its day budget between 7 AM and 8 AM.

Why does overnight spend matter more than it looks?

Overnight delivery is not evenly bad, it is unevenly cheap. Meta keeps buying at 03:00 because the auction is quieter and the impressions really are cheaper. Whether the purchases and form fills follow at the same rate is an account-level question, and the hourly breakdown in Ads Manager answers it before you write a single rule.

Where they do not follow, the result is a campaign that spends part of its daily budget before the working day starts, leaving the hours that actually convert to compete for what is left.

How do time conditions work in AdOps?

Time greater than and Time less than are two of the 45 metrics in the rule builder, and they are the only two that accept a day-of-week selection. They compare the current hour against the hour you pick, and the comparison is inclusive: Time greater than 07:00 AM is satisfied from 07:00 onward, not from 08:00.

Because a rule joins all of its conditions with one AND or one OR, a daytime window is a pair of conditions in a single rule. Time greater than 10:00 AM AND Time less than 09:00 PM covers 10:00 through 21:59 on the days you tick.

A window that crosses midnight cannot be written that way, since no hour is both greater than 22 and less than 4. Split it: one rule for the evening hours, one rule for the early-morning hours. That is two rules to review instead of one, which is the honest trade for a single-level condition group.

What does a night control setup look like?

TimeRuleAction
11 PM onward, every dayDrop to the night floorSet budget to Rp 300,000
12 AM to 5 AM, every dayStop the overnight runawayPause campaign and tag the name
7 AM to 8 AM, Monday to FridayRestore the day budgetSet budget to Rp 2,500,000
10 AM to 9 PM, Saturday and SundayScale inside the weekend windowIncrease budget by 10 percent

Set budget takes a fixed amount or a value resolved from a custom metric. It does not take a percentage, which is the right constraint here: the point of a night floor is that it is the same number every night, not a proportion of whatever the budget happened to reach during the day.

Before writing, the engine re-reads the campaign’s live Daily Budget from Meta, so the restore rule sets the day figure even if something else changed the budget overnight.

How precise is the timing?

Two settings decide it. A rule runs either on a weekly timetable of days and times, or on a plain check interval chosen from 10 values between 15 minutes and 72 hours. The dispatcher sweeps for rules whose next execution time has passed every 10 seconds and enqueues one job per ad account.

A 15-minute interval means the 11 PM drop lands somewhere in the 23:00 to 23:15 window. If that matters for a very high-spend account, keep the interval at 15 minutes and give the restore rule an hour-wide window rather than a single hour, so one missed evaluation cannot leave a campaign on its night floor through the morning.

Should the campaign name record what happened?

It helps. Add to name in Append mode with [NIGHT-STOP {time}] writes the hour the overnight rule fired directly onto the campaign, and Remove from name clears the tag when the morning rule restores the budget. Both name actions re-read the live campaign name from Meta before writing.

Every run also writes a batch record and a result per campaign per task, so the Rule Log Detail screen shows which campaigns were Executed, Not Executed or Skipped, what the time condition evaluated to, and the execution time in seconds.

What to check before trusting a night rule

A time condition compares the current hour against the hour you picked, so run one campaign through a full night before applying the rule to a whole account and confirm the hour behaved as you expected. Test with a single campaign and a 15-minute interval for one night before applying the rule to a whole account. And keep the pause rule and the floor-budget rule separate, because a campaign that is paused overnight needs a matching Start rule in the morning, while a campaign on a floor budget does not.

Questions

Common questions about this use case

Can AdOps change a Meta campaign budget at a specific hour?

Yes. AdOps has two time metrics, Time greater than and Time less than, each with a 24-hour picker from 12:00 AM to 11:00 PM and a Sunday-first day-of-week selection. Combined with the Set budget action they move a campaign to a fixed overnight figure and back.

Is it better to pause a campaign overnight or lower its budget?

AdOps supports both, with Pause campaign and with Set budget to a fixed amount. Setting a low floor budget keeps the campaign delivering at a controlled rate, while pausing stops delivery entirely and requires a matching Start rule in the morning.

Does a Time greater than condition include the hour you name?

Yes. The comparison is inclusive on the boundary hour, so Time greater than 07:00 AM is satisfied from 07:00 onward and Time less than 09:00 PM is satisfied up to and including the 21:00 hour.

How do you build a window that crosses midnight?

Split it into two rules. An AdOps rule joins all of its conditions with a single AND or OR and has no nested groups, so a window from 10 PM to 4 AM is written as one rule for the evening hours and a second rule for the early-morning hours.

How often does a dayparting rule need to be evaluated?

Match the check interval to the precision you need. A rule on a 15-minute interval evaluates up to 96 times a day, so an 11 PM budget drop lands within 15 minutes of the hour, and the dispatcher sweeps for due rules every 10 seconds.

Rebuild this playbook in your own account.

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.

Contact us See pricing

14 days free · no card required · billed in Rupiah

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