Adset.ProAdset.ProKnowledge base
Home/Autorules/Why a rule did not fire: reasons, limitations and questions

Why a rule did not fire: reasons, limitations and questions

This article is for cases when a rule behaves differently than you expected: it did not pause an ad set, did not raise a budget, did not enable an object, or sent an error. First go through the checklist, then find the text from the log in the reasons table. At the end — beta limitations and FAQ.

Step-by-step diagnostics

  1. Is the rule enabled and in the right mode? In the rule list (Meta / TikTok → Autorules), check the status and “Mode” columns. A paused rule does not run. A rule in Dry-run changes nothing in Facebook and only writes “Simulated (dry-run)” to the log.

  2. Does the plan allow it? The “Meta autorules (beta)” feature is required. Without it, runs are skipped with the reason “Autorules are not on the team plan”, and the log opens in read-only mode.

  3. Are there runs in the log? Open the log → “Runs”. If there are no rows for the time you need, the rule was disabled, outside the “Active windows”, or its scheduled time has not come yet. The schedule and windows are calculated in the time zone of each ad account, not yours.

  4. What is the run status? “Skipped: stale data” — the data lags more than allowed. “Skipped” or “Error” — the reason is shown under the status (tables below).

  5. Did objects fall under the rule? “In scope: 0” — the filters excluded everything. For a specific object, open “Why not now?” and check the “Scope” block: which filter excluded it.

  6. Were the conditions met? Hover over the “Matched” number — the “Did not match” tooltip lists the reasons: “Conditions not met”, “Not enough data to decide”, “Below the minimum volume”. For a specific object, see the “Conditions now” table in “Why not now?”.

  7. The object matched, but there is no action? Expand the run and check the outcome: a guard (“cooldown”, “daily limit”, “manual change”), a conflict with another rule, “not applicable”, “no profile can make changes”.

  8. For Live: can the rule change the ad account? Check in social profiles that the ad account is connected via a token or a browser agent (not only via the Chrome extension) and that “Allow autorules to change statuses and budgets of this profile's campaigns” is enabled on the profile. Check that the campaign, ad set and ad ID macros are mapped in the sources, otherwise Live is blocked for the ad account.

  9. Facebook or token errors? The “Errors” column in runs and the error text in the action row. Most often the profile needs to be reconnected.

Tip. The fastest way is the “Why not now?” tab: enter the ad set ID, and a single check shows whether it is in scope, which conditions are “Yes”, “No” or “Unknown”, and what the rule would do now. Just keep in mind that this check does not account for guards and conflicts.

Reasons: UI text → what it means → what to do

Below are all the reasons the log can show, grouped by meaning. Search by the exact UI text (Ctrl+F).

The run did not start, was skipped or failed

UI text

What it means

What to do

No runs yet

The rule has never run yet: it is disabled or its scheduled time has not come.

Enable the rule and wait for the next scheduled time.

Skipped: stale data

The ad account data is older than the “Allowed data lag” (90 minutes by default). The reason is in the “Data” column (see the “Stale data” table below).

Deal with the reason; if the sync is fine but regularly lags slightly beyond the threshold, increase the threshold on the “Guards and notifications” step.

Ad account is not available to the rule owner

The rule owner no longer sees this ad account: the profile was disconnected or transferred to someone else, or access changed. Such an ad account is checked once an hour, and the owner receives an error notification.

Restore access or remove the ad account from the rule.

Ad account time zone is unknown

Without the time zone, “today”, the schedule and windows cannot be calculated.

Usually it is picked up by the next ad account sync. If it persists for long, check the profile sync.

Rule owner is unavailable

The rule owner is blocked, removed from the team or is an admin. The rule runs on the owner's behalf, so it does not run without them. There are no notifications about this.

Recreate the rule under an active team user.

Autorules are not on the team plan

The team does not have the “Meta autorules (beta)” feature. There are no notifications about this.

Contact the team owner or support: the beta is enabled on request.

Rule changed during the run

The rule was saved again while the run was in progress. The old decision is not applied.

Nothing, the next run will use the new version.

Rule configuration is no longer valid

The saved rule does not pass the current validation (for example, limits or the ad account changed). Such a rule is checked once an hour and fails every time.

Open the rule, fix the highlighted fields and save.

Planning failed · Conflict resolution failed · Execution failed · Run failed · Could not re-read the rule

An internal failure at the calculation stage, while combining the ad account's rules, or while sending.

Nothing: the rule will run on schedule. If it repeats for several hours in a row, contact support.

Could not write the log

The decisions could not be saved to the log.

Same as above. If in Live, check the ad account's objects in Ads Manager.

Run was interrupted · The run was interrupted: another process took it over

The run did not complete, for example due to a server restart. No changes were sent after the interruption.

Nothing, the next run will check everything again.

Rollback failed

The rollback run ended with an error.

Refresh the log and repeat the rollback; if that does not work, fix the object manually.

Stale data

The reasons are shown in the “Data” column tooltip, in “Why not now?” and in the stale data notification.

UI text

What it means

What to do

No profile syncs this ad account

The rule owner does not see any profile through which the ad account is connected.

Connect a profile with this ad account or check the rule owner's access.

Facebook sync failed on every profile

All profiles of the ad account are in a sync error.

Open social profiles and reconnect the profile.

Facebook spend has not been synced yet

The profile has not had a single full spend sync yet. This happens right after connecting. Chrome extension profiles sync only while the browser is open.

Wait for the first full sync; for the extension, open the browser with the profile.

Facebook spend sync is behind

The last full spend sync is older than the threshold. Freshness is calculated for the profile as a whole: if one ad account in the profile constantly returns an error, the profile sync is not considered full, and all its ad accounts lag.

Check the profile sync and the problematic ad accounts in it. If the sync simply runs less often than the threshold, increase the “Allowed data lag”.

Tracker conversion freshness is unknown

It could not be confirmed that the tracker data has been updated. Usually temporary.

Wait. If it persists for more than an hour, contact support.

Tracker conversions are behind

Conversion data was updated a long time ago.

Wait. If it persists for more than an hour, contact support.

The object did not fall under the rule (scope)

UI text

What it means

What to do

In scope · Matches the filters / Added manually / All objects of the level

The object is under the rule: via filters, added manually, or there are no filters at all.

Check the conditions.

Not in scope · Filtered out

The object did not pass a filter. Which one exactly is shown in the “Filters that excluded the object” block. Common cases: a mask without asterisks (nutra instead of *nutra*), a “Status: Active” filter on an enabling rule, “Only new objects” on an old campaign.

Fix the filter on the “Which objects” step. See Scope.

Not in scope · Excluded

The object is in the rule's exclusion list.

Remove it from the exclusions if needed.

Not in scope · Not among the manually added objects

The rule works only on manually added objects, and this one is not among them.

Add the object or set filters.

Filters could not decide

The filter has no data about the object. For example, for “Only new” the age is unknown: the object was spending before the ad account was connected, and its first spend is unknown.

Add the object manually or use a different filter.

Object not found in the ad account

There is no object with this ID in the selected ad account, or it has not been synced yet.

Check the ID, level and ad account; a new object will appear after the sync.

Scope is cut at the object limit

There are more than 5000 objects under the rule in the ad account; some are not evaluated.

Narrow the scope: masks, status, “Only new”.

The object did not match the conditions

UI text

What it means

What to do

Conditions not met

Based on the data, the conditions return “No”.

Compare the values and thresholds in “Why not now?”. Check the units: ROI in percent, spend in USD, budget in the ad account currency.

Not enough data to decide

At least one required condition is “Unknown”. The rule does not decide on unknown data.

See the “Unknown” reason for the condition (table below).

Below the minimum volume

The “Minimum volume” (for example, 100 clicks) has not been reached in the default window, or the window is still empty (the first hour of the day). This protects against decisions based on noise.

Nothing, or lower the threshold.

Volume metric is unavailable

The window for the minimum volume check could not be built (for example, the first spend is unknown for the “Lifetime” window).

Change the default window or the volume metric.

Condition is “Unknown”

UI text

What it means

What to do

No data

The object has no spend in the window, or the denominator is zero: CPD with 0 deposits, ROI and ROAS with zero spend, CTR with 0 impressions, CPI with 0 installs.

For “no deposits”, write the condition “Deposits = 0”, not “CPD greater than X”. Add a spend threshold.

No complete hours in the window yet

The window is still empty: right after the ad account's midnight, with a large “Exclude last hours” value, or for an object launched in the current hour.

Wait or reduce the number of excluded hours.

Window is unavailable

The window for the object could not be built. Why — see the window reason (below).

See the window reason.

Only a lower bound is known

For “Hours since budget/status change”, only “at least N h” is known: the object was created before the ad account was connected, and the last change is not visible. If the bound does not decide the comparison, the result is “Unknown”.

Over time, once changes start being tracked, the condition will become decidable.

No value to compare with

The right-hand side is unknown: another metric or the same metric in the baseline window (for example, CTR for past days on a new ad).

Wait for the object to build up history or compare with a constant.

Parent data is unavailable

There is no data for comparison with the parent campaign or ad set, or the parent has a zero denominator.

Check the parent; if it is new, wait.

Value type mismatch · Operation does not apply · This metric cannot be referenced · Unknown metric

An error in the condition: for example, “greater than” for a status (statuses only support “equals”) or comparing a counter with the parent (only ratios such as CTR and CR are allowed).

Open the rule, fix the condition and save.

Window reasons:

UI text

What it means

What to do

Empty window

The window has no complete hour of data.

Wait.

Invalid time zone

The ad account has an incorrect time zone.

Wait for the ad account sync; if it persists, contact support.

Start of the lifetime is unknown

For the “Lifetime” window, neither the first spend nor the object creation time is available.

Use the “Last N days” window.

Last budget change is unknown

For the “Since budget change” window, the rule has never seen a budget change for the object.

Use day- or hour-based windows.

Anchored window limit reached

The “Lifetime” and “Since budget change” windows are individual for each object. If there are too many such groups, the oldest objects get an “Unknown” condition. This is accompanied by the warning “Too many anchored windows: some conditions are unknown”.

Narrow the scope or replace the window with “Last N days”.

Window starts before the tracker conversion history

The tracker stores conversions for rules for about 190 days. For older objects, “Lifetime” deposits, revenue and ROI are not calculated, otherwise ROI would be understated.

For long-running setups, use “Last N days” (up to 90).

The action was skipped by guards

Outcome · reason

What it means

What to do

Skipped: cooldown · Cooldown after the previous action

The “Pause after an action” (24 hours by default) has not passed since this rule's previous action on the object.

Nothing. If you need it more often, reduce the pause.

Skipped: cooldown · The previous action is not confirmed yet

The previous change is awaiting confirmation from Facebook. Repeating it on the same data would double the change (for example, +20% twice).

Nothing, wait for the confirmation.

Skipped: daily limit · Daily action limit reached

The rule has already performed the “Actions per object a day” number of actions on the object (2 by default; notifications count too).

Nothing, the limit resets at 00:00 in the ad account's time zone.

Skipped: recent manual change · Recent manual status change / budget change

The status or budget was recently changed manually (in Ads Manager, in adset.pro or via a rollback), and the rule waits out the “Pause after a manual change” (24 hours by default).

Nothing, this protects your decisions.

Skipped: recent manual change · Status was changed manually

The “Enable” action: the object was disabled not by a rule. A rule enables only what rules disabled; it does not lift a manual pause.

Enable the object manually if needed.

Skipped: recent manual change · Unknown who changed the status

The “Enable” action: it is unknown who disabled the object (for example, it happened before the ad account was connected). To be safe, the rule does not enable it.

Enable it manually.

Conflict with another rule

If several rules meet on one object in one run, the rule with the higher priority wins (1–100, 50 by default). With equal priority, the older rule wins. A pause beats enabling and budget increases regardless of priority. The losing action shows “Won by rule X” with a link.

Reason

What it means

A pause wins over this action

Another rule pauses the object, so the enabling or budget action is not performed.

Another rule pauses the object permanently

Another rule's regular pause beats the “Pause until end of day”.

Status is changed by a higher-priority rule

The object's status is managed by a higher-priority rule.

Object is paused or enabled by a higher-priority rule

While a higher-priority rule changes the status, the lower-priority one does not touch the budget. Even pausing an already paused object “occupies” it.

Budget is changed by a higher-priority rule

The object's budget in this run is managed by a higher-priority rule.

What to do: if the wrong rule won, change the priorities or separate the rules by masks.

The action does not apply to the object

Reason

What it means

What to do

Object is deleted · Object is archived · Object is disabled by Facebook · Object is in review or processing

The rule does nothing with such an object, not even notify.

Exclude such objects with the “Status” filter.

Ads have no budget

A budget action at the ad level.

Change the budget at the ad set or campaign level.

Budget is set on ad sets (ABO)

A budget action on a campaign whose budget is set on its ad sets.

Make the rule at the ad set level.

Budget is set on the campaign (CBO)

A budget action on an ad set of a CBO campaign: the ad set has no budget of its own.

Make the rule at the campaign level.

Budget type (CBO/ABO) is unknown

The sync does not yet know where the campaign's budget is.

Wait for the sync or exclude such objects with the “Budget type” filter.

Object uses the other budget kind (daily or lifetime)

The action changes the daily budget, but the object has a lifetime budget, or vice versa.

Add an action for the required budget kind.

Current budget is unknown · Target budget is unknown

The current budget could not be determined or the new one could not be calculated.

Wait for the sync; if it repeats, contact support.

Ad account currency is unknown

Without the currency, the budget cannot be converted correctly; the error could be 100x.

Wait for the ad account sync.

Ad account time zone is unknown

Without the time zone, the day and the “pause until end of day” cannot be calculated.

Wait for the ad account sync.

Tracker attribution is not set up for this ad account

Live is blocked for the ad account: no source passes the ID of the required level (campaign, ad set or ad) to the tracker, and all objects would have zero deposits.

Map the macros in the sources.

The day ended before the action

The “Pause until end of day” was decided before the ad account's midnight but could only be sent after it: it would have disabled the object for the new day.

Nothing.

No decision for the action

An internal safeguard: the action did not pass the full guard and conflict check, so it was not sent.

Nothing, the object will be re-evaluated on the next run.

Budget: limits and the ad account cap

Outcome · reason

What it means

What to do

Skipped: budget would not change · New budget equals the current one

After the calculation, the budget stayed the same.

Check the change step.

… · Minimum budget limit / maximum budget limit

The budget is already at the “Not below” or “Not above” boundary.

Move the boundaries if needed.

… · Daily growth limit

The “Daily growth limit” is exhausted. Growth is calculated from the budget at the start of the ad account's day.

Nothing, it can grow further tomorrow.

Skipped: ad account budget cap · Ad account budget cap

The total daily budget of the ad account's active campaigns and ad sets would exceed the cap after the action. Objects waiting to be enabled at 00:00 are also counted.

Raise the cap or cut weak objects.

… · Ad account budget total is unknown

The ad account's total budget could not be calculated. The increase is not performed as a precaution.

Wait for the sync.

If the log shows “Applied” but the budget grew less than you set, one of the boundaries kicked in: “Not above”, “Daily growth limit” or the ad account cap.

The object changed

Outcome · reason

What it means

No action needed · Object is already in the target status / Budget already has the target value

The object is already in the state the rule wanted.

Skipped: object changed · Status changed after the decision / Budget changed after the decision

Before sending, the rule re-read the object in Facebook, and it was already different. A decision based on old data is not applied.

Skipped: object changed · Object data changed during the run

The object data was updated while the ad account's rules were being calculated.

What to do: nothing — the object will be re-evaluated on the next run.

No profile or no permission to make changes

Reason

What it means

What to do

Autorule changes are turned off for the profiles

None of the ad account's profiles has the change permission. In Live, the rule only notifies.

Social profiles → profile → “Allow autorules to change statuses and budgets of this profile's campaigns”. It can be enabled by the team owner, team lead or admin. The permission is tied to the connection method: after reconnecting with a different method, it must be enabled again.

No profile can change this ad account (only the Chrome extension or an agent without a proxy)

The ad account is available only via the Chrome extension or an agent without a proxy.

Connect the ad account via a token or a browser agent with a proxy.

No connected profile manages this ad account

The rule owner does not see any active profile of the ad account.

Reconnect the profile.

Profile has no proxy

The browser agent does not send changes without a proxy.

Assign a proxy to the profile.

Profile is not ready

The profile changed while the rule was selecting it.

Nothing, it will be selected again on the next run.

Profile is busy with another operation · Profile sync is running · Could not check whether the profile is free: the change was not sent

A sync or another action is currently running through the agent profile, and the rule does not send requests in parallel so as not to put the account at risk.

Nothing, the rule will retry.

Could not choose a profile to apply changes

A failure while selecting the profile.

Nothing, the rule will retry.

No permission to make changes (ads_management on the token or a role in the ad account) · No permission for the object

Outcome “Skipped: no permission”: the token lacks the ads_management permission, or the profile user does not have the required role in the ad account.

Reconnect the profile with the ads_management permission or grant a role in the ad account.

Facebook and token errors

Reason

What it means

What to do

Profile token is no longer valid · Profile token or session is invalid · Profile has no token

Outcome “Token error”. The profile is marked as requiring reconnection; the profile owner receives a notification.

Reconnect the profile; for an agent, open the anti-detect profile so that the agent picks up a fresh session.

Facebook rate limit · Ad account paused after Facebook rate limits

Facebook throttled the requests. The ad account is paused (15 minutes by default, up to a day), and the ad account's other actions wait.

Nothing. If it happens often, make the rule schedules less frequent.

Facebook temporarily blocked changes · Ad account paused after a Facebook block

Facebook returned an action block (code 368). Changes in the ad account are stopped for an hour.

Check the profile and the account in Ads Manager.

Facebook rejected the parameters · Invalid request

Facebook did not accept the change, or the request failed validation before sending.

Check the rule action and the object in Ads Manager.

Object is unavailable to the profile

Facebook cannot find the object, or the profile has no access to it. Whether the object was deleted will be visible after the sync.

Check the object and the profile's access.

Network or Facebook error · Not sent to Facebook

A network failure, or the request was not sent (for example, after a rate limit or token error, the ad account's other actions are not sent).

Nothing, the rule will retry.

Could not read the object state from Facebook · Facebook did not return the object · Could not read the change history

Before the change, the rule could not check the object's current state, so it sent nothing.

Nothing, the rule will retry.

Result is unknown

Facebook did not confirm the change, and the check did not find the object in the target state. The change may have been partially applied.

Check the object in Ads Manager.

Unknown error

An unclear response from Facebook.

Check the object in Ads Manager; if it repeats, contact support.

Awaiting confirmation

Reason

What it means

Being sent to Facebook

The change is being sent right now.

Facebook did not confirm the change · Facebook returned no response

No response arrived. The change may have been applied; the rule will reconcile with Facebook in about 10 minutes.

Checking the result

Reconciliation with Facebook is in progress.

Confirmed by the Facebook state

Reconciliation showed that the change was applied: outcome “Applied”.

Until the outcome is clear, do not edit the object manually. The rule does not repeat a change blindly. If the check fails for a day, the entry is closed with the reason “Result is unknown”.

Scheduled enables at 00:00

Reason

What it means

What to do

Object was changed after the pause

The object is no longer paused, or someone else changed its status after the pause. Enabling is cancelled.

Nothing: the object is in the state a person or another rule left it in.

Object was edited in Facebook after the pause

According to Facebook, the object was edited after the pause (for example, enabled and disabled again between syncs). Enabling is cancelled, and the rule owner receives a notification.

Check the object and enable it manually if needed.

The pause was rolled back

The pause was rolled back in the log; there is nothing to enable.

Nothing.

Another rule pauses the object permanently

After the pause until end of day, another rule set a regular pause. Enabling is cancelled.

Nothing.

Enabling was cancelled before it was sent (another rule's pause or a rollback)

The cancellation came before the enabling attempt.

Nothing.

Rule owner is unavailable

Neither the current rule owner nor the owner at the time of the pause can act in adset.pro. Attempts continue for a day.

Enable the object manually.

Internal error

The attempt failed; it will be retried.

Nothing.

Ad account paused after Facebook rate limits · Ad account paused after a Facebook block

The attempt waits for the ad account pause to end.

Nothing.

No profile, token, no permission, changes turned off for the profiles

The same reasons as for regular actions. The rule owner receives an is still paused notification; attempts continue for a day.

Fix the cause or enable the object manually.

Rule warnings

An orange triangle next to the run, the “Warnings” block in “Why not now?” and in the preview.

UI text

What it means

What to do

No minimum volume threshold

The rule can fire on noise: 1 click and 0 deposits already means “CR 0%”.

Set a “Minimum volume” or a threshold on spend, clicks or impressions.

Today's revenue by event time is understated

Deposits arrive with a delay, and today's revenue by event time has not matured yet. The rule may mistake a live ad set for a losing one.

Use a cohort, the “Yesterday” window or “Last N days” without today, or “Exclude last hours”.

Budget action without an ad account budget cap

Budget increases are not limited at the ad account level.

Set the “Ad account budget cap”.

Ad accounts use different currencies

Budgets in the rule are numbers in each ad account's currency: “500” is $500 in a USD ad account and ₴500 in a UAH ad account. Spend and revenue in conditions are in USD.

Split the rule by currency.

Budget type of some objects is unknown

Budget actions on these objects will be skipped.

Wait for the sync.

Tracker attribution is not set up: live is blocked for this ad account

None of the ad account's sources passes the required ID. In Live, the rule changes nothing.

Map the macros in the sources.

Tracker attribution covers only part of the traffic

Some sources do not pass the ID: their objects will have zero conversions. This also happens when the rule owner does not see all of the ad account's profiles. Live is not blocked.

Map the macros in all of the ad account's sources.

Scope is cut at the object limit

More than 5000 objects in the ad account.

Narrow the scope.

Too many anchored windows: some conditions are unknown

See “Anchored window limit reached”.

Narrow the scope or change the window.

Some objects are older than the tracker conversion history: their lifetime conversion conditions are unknown

See “Window starts before the tracker conversion history”.

Use “Last N days”.

Cannot enable a rule or switch it to Live

UI text

What to do

Some ad accounts of the rule are not available to its owner, so it cannot be enabled or switched to live · Ad account is not available to the rule owner

Remove the ad account from the rule or restore the owner's access.

Some ad accounts of the rule are not available to you … · Ad account is not available to you

Ask a manager who has access to all of the rule's ad accounts.

Your role cannot switch rules to live

Rules are switched to Live by the team owner, team lead, tech specialist and admin. A buyer can only view rules.

The rule configuration no longer passes validation…

Open the rule, fix it and save.

Beta limitations

  • Facebook only. TikTok ad accounts are not supported by autorules, even though the section is called “Meta / TikTok”.

  • Chrome extension profiles do not execute actions. Rules for such ad accounts only notify and work in Dry-run. For a rule to change objects, the ad account must be available via a profile with a token or a browser agent, with the change permission enabled.

  • Spend is updated at the sync interval. The rule sees spend as of the last full sync (“Data as of …”), not “right now”. Until the profile has completed its first full spend sync, runs are skipped. If the ad account is synced only by the Chrome extension, data freshness depends on whether the browser is open, and runs may often be skipped due to stale data.

  • Conversions arrive with a delay. A deposit may arrive hours or days after the click. Today's revenue is understated, and the cohort of today's clicks is still maturing. Make budget decisions based on “Yesterday” or “Last N days”.

  • Conversion history for rules is about 190 days. “Lifetime” revenue, deposits and ROI for older objects are “Unknown”.

  • Notification texts are in English.

  • Rule limits: up to 50 ad accounts, up to 8 actions, up to 6 different “window × attribution” pairs in conditions, up to 5 masks in the name filter. Per run, the rule checks up to 5000 objects per ad account.

  • Schedule — no more often than once every 15 minutes. The check starts within a few minutes after the scheduled time. There is no “run now” button.

  • There are no filters by offer, flow or geo. On the tracker side, you can filter only by tracker campaign and source.

  • The rule owner cannot be an admin. If the owner is blocked, the rule stops running without notifications.

  • The ad account budget cap takes only daily budgets into account; lifetime budgets are not checked. The total is calculated from the latest data synced to adset.pro.

  • “Hours since budget/status change” for objects created before the ad account was connected are known only as a lower bound for a long time: the condition may be “Unknown”.

  • Log: executions are stored for 90 days, runs — for 180. After the rule owner changes, old entries are shown under the old owner.

FAQ

Why does the spend in the rule not match Ads Manager?

  • Data time. The rule sees spend as of the last sync — see “Data as of …” in the log. Ads Manager shows fresher data.

  • Currency. Spend in conditions is in USD, converted from the ad account currency. Ads Manager shows spend in the ad account currency.

  • Window boundaries. Windows are calculated in the ad account time zone and in whole hours. “Last 6 h” in practice covers 5 to 6 hours, and “Exclude last hours” cuts off the most recent hours. Exact boundaries are in “Why?”.

  • Metric. “Spend incl. fee” includes the agency fee. To reconcile with Ads Manager, use “Spend”.

  • Facebook sometimes recalculates spend retroactively, and the numbers differ until the next sync.

Why is ROI (or CPD) “Unknown”?

The most common reasons: the object had no spend in the window (nothing to calculate ROI from); CPD has zero deposits (no division by zero); the window is still empty after midnight; the “Lifetime” window is older than the conversion history; “Since budget change” without a known budget change. The exact reason is written under the condition result in “Why?”. For stop-losses, use “Deposits = 0” plus a spend threshold, not CPD.

The Meta section table shows ROI as “—”, but the rule calculates −100%. Why?

The table shows “—” while the object has no tracker data at all. With spend and no conversions, the rule calculates honestly: profit = −spend, ROI = −100%. Otherwise a stop-loss would not fire exactly when a setup brings nothing. To avoid zeros caused by unconfigured attribution, Live is blocked if the required IDs are not mapped in the sources.

Why did the rule not enable the object?

  • The “Enable” action enables only objects disabled by rules. The rule does not lift a manual pause (“Status was changed manually”).

  • The scope has a “Status: Active” filter — disabled objects do not fall under the rule.

  • For a rule with an ad account budget cap, enabling is also checked against the cap.

  • Enabling after a “Pause until end of day” is cancelled if the object was touched after the pause. See the “Scheduled enables” tab.

Why did the object get enabled at night?

It was set to “Pause until end of day” (for example, by a stop-loss). At 00:00 in the ad account time zone, such objects are enabled again. This happens even if the rule has already been disabled or deleted. If you disabled the object yourself after the pause, the rule will not enable it.

The conditions are met, but the rule does not touch the object. Why?

Open the log and find the object in the latest run. Most often these are guards: “Pause after an action”, “Actions per object a day”, “Pause after a manual change” — or a conflict with a higher-priority rule. If the object is not in the run, check “Why not now?”: it may be out of scope or a condition may be “Unknown”.

Why is my ad set not in the run log?

Only objects that met the conditions get into the log. Non-matching ones are shown as a number in the “Did not match” tooltip. For a specific object, use “Why not now?”.

Can I manage TikTok?

No. In the beta, autorules work only with Facebook (Meta) ad accounts.

How many rules can be attached to one object?

There is no limit. If rules contradict each other in one run, the higher priority wins; with equal priority, the older rule wins, and a pause always beats enabling and budget increases. Each rule has its own “Pause after an action” and daily limit. To keep rules from toggling an object back and forth, do not overlap their conditions or separate them by masks.

I adjusted the budget manually, and the rule changed it right away. Why?

Normally the rule waits out the “Pause after a manual change” (24 hours by default). Check that it is not set to 0. The rule learns about a manual edit through the sync: if the edit was very recent and the sync has not seen it yet, the rule still re-reads the object in Facebook before sending and skips the action with the outcome “Skipped: object changed”.

Why did the budget change by a different amount than specified in the rule?

A boundary kicked in: “Not above” or “Not below”, “Daily growth limit” (calculated from the budget at the start of the ad account's day) or “Ad account budget cap”. The log shows the final “before → after”. If a boundary prevented the budget from changing at all, the outcome is “Skipped: budget would not change”.

How quickly does a rule fire after being enabled?

At the next scheduled time in the ad account time zone, with a delay of a few minutes. The interval is no more often than once every 15 minutes. If the rule is in Live and the data is stale, the first run will be skipped.

In Dry-run the rule “fired”, but in Live it does nothing. Why?

  • Live requires a profile that can change the ad account: not the Chrome extension, with the change permission. Otherwise — “Skipped: no profile can make changes”.

  • Live is blocked if tracker attribution is not set up; Dry-run is not.

  • In Dry-run the rule does not remember its actions, so the pause and daily limit barely get in the way: the same “would do” can repeat on every run. In Live, guards kick in after the first action.

Can a buyer create a rule or roll back an action?

No. A buyer sees the list of their rules, opens them in read-only mode and views the log. Rules are created, changed, switched to Live and rolled back by the team owner, team lead, tech specialist and admin.

What happens to the log if a rule is deleted?

The rule is paused and moved to deleted; the log is kept (executions — 90 days, runs — 180). Objects on “Pause until end of day” will still be enabled at 00:00.

What to read next