← All articles
Automation6 min read

Which time range should a Facebook rule use?

The time range decides what a Facebook automated rule reacts to. Short ranges suit spend and frequency, CPA and ROAS rules need enough conversions.

Tuesday, 9:40. A kill rule paused your best ad set overnight. Cost per purchase above €50, it said. You open the ad set and see €38 across the last week, steady as anything. The rule wasn't reading the last week. It was reading yesterday, and yesterday had two purchases on €110 of spend.

The thresholds were fine. The broken part was the one setting almost nobody changes: the time range.

Short answer: A Facebook automated rule should read a time range that holds enough events for its metric to mean something. Spend and frequency rules can run on today or yesterday, because those numbers are never thin. Cost per purchase and ROAS rules need several days of conversions behind them, plus a minimum-spend condition, before they act.

The takeaways

  • One time range covers every condition in a rule. Meta's Marketing API documentation says only one time preset is allowed and it applies to all stats filters, so your spend floor and your cost threshold always read the same window.
  • "Last 7 days" in a rule includes today. Per Meta's API reference it means six full days plus today, and a separate preset covers seven full days without today.
  • Size a cost rule's range by conversions. At €120 a day and three purchases, one lost sale moves yesterday's cost per purchase from €40 to €60, and the 7-day figure only to about €42.

What does the time range in an automated rule decide?

The time range in a Facebook automated rule decides which slice of data every condition is checked against. "Cost per result above €50" over yesterday and the same condition over the last 7 days are two different rules. They will pause different ads.

Meta's Marketing API documentation adds a detail: only one time preset is allowed per rule, and it applies to all stats filters in the rule. Your spend guard and your cost threshold read the same window. "Spent €300 in total and expensive this week" cannot live inside one rule.

So the range is a trade between speed and noise. A short range reacts within hours and fires on ordinary bad days. A long range stays calm and lets a dying ad run for days before its average crosses your line.

Which time range fits spend and frequency rules?

Spend and frequency rules can use short ranges, today or yesterday, because neither number is noisy. If a rule sees €400 against a €150 daily budget, something happened, however small the window. Frequency climbs slowly instead of jumping around. And a runaway budget burns money every hour you wait, so a 7-day average would hide today's problem under six normal days.

One trap sits in the labels. Meta's API reference describes "last 7 days" for rules as six full days plus today, and "last 3 days" as two full days plus today. Separate presets cover full days with today left out. Today is in there because rules can run several times a day, so a rule checking at 6am mixes a few hours of today into its average. The rule builder's wording moves around, so check what your version calls each option.

How long should the range be for CPA and ROAS rules?

A CPA or ROAS rule needs a range long enough that one sale more or less barely moves the number. My working habit: count the purchases the ad set usually gets per day, and pick the shortest range that holds at least ten. At five a day, the last 3 days is enough. At two a day, you need the last 7.

The arithmetic is why. An ad set spending €120 a day at three purchases sits at €40 per purchase. Lose one sale and yesterday reads €60. Over seven days the same ad set has about 21 purchases on €840, and one lost sale moves it to roughly €42. Same ad, same bad afternoon, very different verdict.

The newest days are also the least complete. Purchases get credited back to the click day, sometimes days later, so yesterday looks worse this morning than it will by the weekend. I went through that lag in why Facebook ads results change after the day is over. For cost rules it argues for a preset that leaves today out.

Why does a minimum-spend condition matter as much as the range?

A minimum-spend condition sets how much evidence a rule needs before it acts, whatever window it reads. "Cost per purchase above €50" with no spend floor will fire on an ad that spent €60 and got one purchase. That is one data point dressed up as a verdict.

I add a floor of about three times the target cost per purchase to every cost rule. With a €40 target, the rule does nothing until the ad has spent €120 inside the window. Below that, a missing sale is luck.

Because the floor shares the rule's single time range, the two settings are one decision. On a 3-day range, the ad must spend €120 in those three days to qualify. On a small ad set that may never happen, and the rule goes quiet, which is the right outcome for thin data. It also explains why a rule can sit unused for weeks, the case I took apart in why a Meta automated rule is not working.

Why do two rules disagree about the same ad?

Two rules disagree about the same ad when they read different time ranges, and each is right about its own window. A 3-day rule sees last weekend's slump and wants to pause. A 7-day rule sees a decent week and wants to raise the budget. If both are armed, the ad set swings between them.

The fix is to give each window its own job. Short ranges own the protective actions: a spend cap broken, frequency past your limit. Longer ranges own the judgment calls: pausing on cost, scaling on return. Before arming a new rule, list the rules already touching that ad set and the range each reads. Two windows on the same metric means one rule goes.

Meta publishes no recommended range, and I would distrust anyone quoting one number for every account. Your conversion volume picks it.

How Adscalr handles the "too early" problem

In Adscalr, rules fire on 8 metrics, and every evaluation is logged, so when a rule acts you can see the number it read. The learning-phase lockout blocks any action on an ad younger than 5 days or below €200 of spend: a built-in version of the range plus spend floor described above. The rest of the safeguards are on the Automation page.

This is the thinking behind Adscalr.

See the product →