# Dayparting and night control

> 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.

Source: https://adops.id/use-cases/dayparting-and-night-control/
Last updated: 2026-08-20
Publisher: AdOps (https://adops.id) — an independent product, not affiliated with Meta Platforms, Inc.

---

## Key facts

- **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

**Who it is for:** A high-spend advertiser whose conversions cluster in the day and whose overnight delivery mostly buys impressions.

**The problem:** 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.

**The outcome:** 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

### Drop to the night floor

- **When:** Time greater than 11:00 PM, on Sunday through Saturday
- **Then:** Set budget to Rp 300,000 as a fixed amount
- **Why:** 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.

### Restore the day budget

- **When:** Time greater than 07:00 AM AND Time less than 08:00 AM, on Monday through Friday
- **Then:** Set budget to Rp 2,500,000 as a fixed amount, and Remove from name the text `[NIGHT]`
- **Why:** The restore window is one hour wide so a single missed evaluation does not leave a campaign on its night floor all morning.

### Stop the overnight runaway

- **When:** Time greater than 12:00 AM AND Time less than 05:00 AM AND Spend today is greater than Rp 1,500,000
- **Then:** Pause campaign, and Add to name in Append mode with the text `[NIGHT-STOP {time}]`
- **Why:** 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.

### Scale only inside the weekend window

- **When:** Time greater than 10:00 AM AND Time less than 09:00 PM AND Purchase ROAS today is greater than 2.0, on Saturday and Sunday
- **Then:** Increase budget by 10 percent, with an action frequency of once every 3 hours
- **Why:** Weekend demand is real but short, and a 3-hour cooldown allows at most 4 raises inside an 11-hour window.

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?

| Time | Rule | Action |
| --- | --- | --- |
| 11 PM onward, every day | Drop to the night floor | Set budget to Rp 300,000 |
| 12 AM to 5 AM, every day | Stop the overnight runaway | Pause campaign and tag the name |
| 7 AM to 8 AM, Monday to Friday | Restore the day budget | Set budget to Rp 2,500,000 |
| 10 AM to 9 PM, Saturday and Sunday | Scale inside the weekend window | Increase 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.
