Why are my Meta Ads running outside my ad schedule?
Diagnose Meta Ads delivery outside scheduled hours by reconciling account time zones, schedule eligibility, hourly delivery, reporting delay, and automation.

Quick answer
Meta Ads can appear to run outside an ad schedule when account time, customer time, delivery time, and reporting time are mixed together—or when the schedule is attached to a different ad set than the one spending. Confirm the actual impression hour and object ID before changing budgets or adding more rules.
Quick answer: reconcile the clock before blaming the schedule
Meta Ads may look active outside your chosen hours even when no new impressions were delivered then. The account time zone can differ from your local time or the customer's time, reports can update after delivery, and conversions from earlier clicks can arrive during a closed period. A daily total or late result is not proof of off-schedule delivery.
Start with one affected ad set and one complete date. Record its object ID, configured schedule, account time zone, and every hourly impression and spend value. If impressions—not just spend totals or conversions—occur outside the translated schedule, then inspect schedule eligibility, duplicated ad sets, automated changes, and third-party tools.
- Schedule time: the hours configured on the delivery object.
- Account time: the time zone Ads Manager uses for delivery and reporting.
- Delivery time: when an impression was actually served.
- Report time: when spend or a result became visible in the interface or export.
This is not the same as early-day pacing or post-pause spend
An ad-schedule incident has a specific symptom-to-decision path: an ad set has intended open and closed hours, but delivery appears in a closed hour. The control level is the scheduled delivery object, the time grain is hourly, and the likely mechanisms are time-zone translation, unsupported or misapplied scheduling, another active object, or automation.
That differs from a campaign spending too fast early in the day, where delivery is allowed but budget pacing is poor. It also differs from spend appearing after a pause, where late reporting, billing settlement, or a status change may explain the increase. Keep those diagnoses separate so a timing display problem does not become an unnecessary budget or account-wide pause.
Translate every time into the ad account time zone
Write the intended customer-facing schedule in three columns: customer local time, your operating time, and the ad account time zone. Daylight-saving changes, markets in multiple time zones, and an account created in a different region can shift the apparent window by several hours or even across a date boundary.
Do not assume the browser clock controls delivery. Use the account's documented time zone as the baseline, then translate the intended hours for each market. If one campaign serves several regions, an account-level hour may represent very different local moments for the people seeing the ads.
- Confirm the ad account time zone and whether it can be changed for the existing account.
- Map the intended opening and closing times into that time zone.
- Check daylight-saving transitions for both the account and target market.
- Separate regions when one schedule cannot represent their local business hours safely.
Verify that the schedule is attached to the object that spent
Teams often inspect the schedule on one ad set while a duplicate, evergreen campaign, automated sales campaign, or similarly named ad set produces the off-hours spend. Clear filters and compare object IDs at campaign, ad set, and ad level. A schedule on one object does not constrain a different active object.
Also confirm that the selected budget and buying setup actually exposes the scheduling control you intended to use. Platform options can vary by campaign configuration. If the interface does not apply a true delivery schedule to the spending ad set, a naming convention such as “business hours” is only a label—not a control.
- Identify the exact campaign, ad set, and ad IDs behind each off-hours impression.
- Check duplicates, drafts that were published, scheduled promotions, and evergreen campaigns.
- Verify start and end dates as well as recurring day-and-hour rules.
- Confirm the schedule remains present after edits, duplication, or campaign migration.
Use hourly impressions to separate delivery from reporting lag
Export a complete period by hour and include impressions, spend, reach, link clicks, results, and the relevant object IDs. Impressions are the clearest first test because spend can be processed later and attributed results can arrive long after the ad interaction. Compare the export with the configured schedule after both are expressed in one time zone.
Classify each apparent exception before acting. A conversion during a closed hour may belong to an earlier click. A cumulative spend total that rises after closing may reflect report processing. Actual off-schedule delivery requires impressions tied to a spending object in an hour that should have been closed.
- Late conversion: a result appears during closed hours without new impressions.
- Late reporting: totals update later, but delivery remains inside the allowed window.
- Time-zone mismatch: the same delivery hour moves after correct translation.
- Control failure: new impressions are tied to the affected object during a genuinely closed hour.
Audit rules, integrations, and change history
If delivery is genuinely outside the window, inspect activity history for schedule edits, status changes, duplicated objects, budget-type changes, and user actions. Then review automated rules, API integrations, ecommerce apps, and agency tools that can activate, duplicate, or replace campaigns. A correct manual schedule can be bypassed when another workflow creates a new unscheduled object.
Preserve timestamps and IDs before making repairs. Repeatedly toggling ads or layering several emergency rules can hide the original cause and create overlapping controls. If an unknown user or integration changed delivery, treat that as an access and security issue as well as a media-buying issue.
- Review who or what last changed the ad set and schedule.
- Check automated-rule run history and third-party workflow logs.
- Compare the current object ID with the ID that originally had the schedule.
- Secure unexplained access and preserve evidence before removing integrations.
Fix the responsible layer and test one complete cycle
Once the mechanism is known, make the smallest correction: translate the schedule correctly, apply it to the spending ad set, separate markets, disable a conflicting automation, or pause the unscheduled duplicate. Avoid changing creative, targeting, optimization, budgets, and schedules together because you will not know which control solved the issue—or which change harmed performance.
Monitor at least one complete open-and-closed cycle using hourly delivery, not screenshots of cumulative totals. Judge whether scheduling improves qualified leads, profitable revenue, response coverage, or operational capacity. Restricting hours can reduce volume and learning, so keep the rule only when the business outcome justifies the lost auction opportunities.
- Define the allowed hours and account-time translation before the test.
- Keep a record of the changed object, owner, timestamp, and expected behavior.
- Confirm impressions stop during closed hours while scheduled delivery still starts normally.
- Compare mature business outcomes, not only same-day platform CPA or ROAS.
How an AdSpecIt-style audit diagnoses off-schedule delivery
An AdSpecIt-style audit can connect campaign, ad set, and ad settings with account time zone, hourly delivery, budget type, start and end dates, change history, automated rules, and attribution timing. Combined with downstream sales or lead-response data, that evidence shows whether the account has a display mismatch, a misapplied schedule, another spending object, or a genuine control failure.
The useful output is a prioritized reconciliation: identify the spending ID, normalize every timestamp, prove whether impressions occurred outside the intended window, inspect every automation path, repair the responsible control, and verify one complete cycle. AdSpecIt's broader audit can then show whether the scheduling rule improves business performance or merely hides a pacing, funnel, or reporting problem.
Want AdSpecIt to audit your own account?
Connect your Meta Ads account, get a free score, and see the issues most likely to be hurting campaign performance before you spend more.
Get your free audit