Meta Silently Killed Three Ad Reports in August — The Audit to Run Before You Send Month-End Numbers
marketing August 27, 2026 · Mintec

Meta Silently Killed Three Ad Reports in August — The Audit to Run Before You Send Month-End Numbers

On August 6, 2026, Meta stopped returning data for the device, hourly, and frequency breakdowns in any ad account that never opted in. The API still returns HTTP 200, Ads Manager still renders the report, and your dashboard fills with zeroes — no error, no warning, no email. Here's what changed, who gets hurt, and the per-account audit to run before your August report goes out.

Meta Silently Killed Three Ad Reports in August — The Audit to Run Before You Send Month-End Numbers

Since August 6, 2026, three Meta Ads reporting breakdowns — device, hourly, and frequency — stopped returning data for every ad account that hadn't explicitly opted in. No changelog email. No error message. The API still returns HTTP 200, Ads Manager still renders the report, and your dashboard quietly fills with zeroes. If you run paid media on Meta and haven't checked your accounts yet, your August month-end report may already be wrong.

We manage paid media across 30+ client accounts between the US and LATAM, and this one took us by surprise the way silent changes always do: not as an announcement, but as a flatlined chart. One of the dashboards we maintain showed mobile impressions dropping to zero on August 7 — for an account that was demonstrably serving. Performance hadn't collapsed. The data had.

Here's what actually happened, who it hurts, and the audit we ran — and that you should run this week, before the numbers go out.

What Meta changed (and what didn't change)

The deprecation covers three reporting breakdowns in both the Marketing API and the Ads Manager reporting view:

BreakdownAPI nameWhat it tells youWhat breaks when it's empty
Deviceimpression_deviceMobile vs. desktop vs. tablet deliveryDevice-level creative diagnostics, mobile share analysis, hook tests by device
Hourlyhourly_stats_aggregated_by_audience_time_zoneWhen ads served across the dayDayparting analysis, hourly bid rule inputs
Frequencyfrequency_valueAverage times each user saw your adFrequency-cap enforcement, saturation analysis

Before August 6, all three worked by default in every account. Starting August 6, they only return data for accounts that opted in — and there is no retroactive opt-in. The dangerous part is the failure mode: the API returns HTTP 200 and the UI renders a normal-looking report with blank or zeroed rows. Nothing tells you the data is missing. A device-by-placement query that worked on August 5 comes back empty on August 7, and it looks exactly like your mobile performance died.

Combined queries are hit too. Any report that mixes device with another field — device by placement, device by age — fails the same way.

Why nobody notices until it's expensive

Silent failures are worse than loud ones because they convert a data problem into a trust problem. Two things compound the damage:

First, zeroes look like a performance collapse, not a data gap. If your team sees mobile at zero for two weeks, the natural reaction is to "fix" the campaign — pause ad sets, rebuild audiences, waste budget on changes that address a bug in reporting, not a bug in delivery.

Second, the timing is brutal. The change landed on August 6. Month-end reporting for August is the first moment most teams look at monthly numbers holistically — and it lands in the same month where CPM movement was already compressing attention, which makes separating a real cost shift from a data gap that much harder. If you opt in today, your August report has a hole for the first week of the month; if you don't catch it, you present zeroes as performance. That's the exact scenario where a client asks why mobile collapsed and there is no honest answer except "the data didn't exist."

We've written before about how Meta redefined click-through vs. engage-through attribution and how the attribution windows shifted in 2026. This is a different animal: not a redefinition of what a conversion means, but a silent removal of raw delivery data.

Who actually gets hurt

Three profiles carry the exposure — and if you run an agency, you're probably all three:

Multi-account agencies. The opt-in is per account. There is no bulk toggle at Business Manager level, and admin access is required on each one. If your onboarding checklist didn't include it, you have a queue of accounts reporting empty breakdowns until someone touches each individually. When we audited after the changelogs surfaced, a meaningful share of our accounts had never opted in — and none of them knew.

Teams reading Meta data through third-party dashboards. Looker Studio, Power BI, Supermetrics, Funnel, Improvado — any connector that requests a device or hourly breakdown now renders zeroes on non-opted accounts. The worst part is the panels look fine: headers intact, date ranges correct, values just flat.

Automations that read the affected fields. Hourly bidding rules, dayparting scripts, device-based budget shifts, frequency-cap enforcement. If a rule reads the hourly breakdown to decide when to pause or lift bids, it's now making decisions on an empty dataset. It doesn't error. It just runs blind — and confidently.

The audit we ran this week

Here's the sequence we used at Mintec. It's an afternoon of work across an account list, and it's the difference between a clean month-end report and an awkward client conversation.

1. Build the account inventory. List every Meta ad account you touch through any surface — your own, client accounts, accounts referenced by dashboards, spreadsheets, or scripts. Don't skip "inactive" accounts: if a dashboard or an API job points at them, they're on the queue.

2. Enable the breakdowns per account. In Ads Manager, open the reporting view, click Breakdown, and find the toggles under Additional Breakdowns. Enable the ones you actually use — most teams should enable device and hourly, frequency only if you actively monitor it. Data starts collecting from roughly the next day. For agencies managing dozens of accounts, the Marketing API path is POST /act_<ad-account-id>/insights/feature-settings — it's enable-only, and the feature names don't map one-to-one to the UI labels, so budget a short mapping session before deploying the script.

3. Sanity-check every dashboard and report. Any Looker Studio panel, Power BI model, or Sheets connector that requests device, hourly, or frequency data needs a check. If a chart flatlined on August 6, you found a deprecation hit, not a performance collapse. Fix the opt-in first; most tools pick the data back up once the account is enabled.

4. Verify the automations. Start with any nightly job that pulls performance data and takes an action. If it reads one of the three breakdowns on a non-opted account, it's firing on empty data right now.

One structural decision we made permanent: measurement hygiene is now part of client onboarding. Every new account gets the three toggles — or a documented decision to skip them — before the first report is generated. Meta has shipped enough silent reporting changes that "wait until something looks wrong" is no longer a strategy. The same discipline we apply to incrementality tests on other platforms now applies to Meta's raw delivery data.

The bigger pattern — and the number that doesn't backfill

This is the third quiet reporting shift from Meta this year, after the lead event bucketing change and the engage-through attribution redefinition. The pattern is consistent: the platform ships changes to defaults faster than help documentation catches up, and the accounts that had someone watching adjusted first. The accounts that didn't present wrong numbers for weeks.

The final cost is historical, not operational: data does not backfill. Whatever range you cared about before your opt-in date stays empty. Opt in today, and August 1–6 is gone for those breakdowns on that account. That's why the audit matters this week and not next month.

So here's the practical close for August month-end reporting: if you're sending client decks this week, add one line — which accounts were opted in, and on what date. Reports that cover the gap get a footnote, not a made-up estimate. We've learned that a client who sees a footnote about a coverage gap stays calm. A client who discovers their own dashboard contradicting your report does not.

Meta keeps telling advertisers the future is automated — and mostly, we agree. But measurement is the one layer where "automated" must never mean "silent." The algorithm can decide your bids, your budgets, and your placements. It shouldn't get to decide which of your reports simply stop existing without telling you.

Frequently Asked Questions

What changed in Meta Ads reporting on August 6, 2026?

Meta stopped returning data for three reporting breakdowns — device (impression_device), hourly (hourly_stats_aggregated_by_audience_time_zone), and frequency (frequency_value) — for any ad account that hadn't opted in. Requests still succeed and return HTTP 200, but the data rows come back empty, with no error or warning.

How do I re-enable the device, hourly, and frequency breakdowns?

Open Ads Manager for each ad account, go to the reporting view, click Breakdown, and enable the toggles under Additional Breakdowns. You need admin access per account — there is no bulk toggle at Business Manager level. Agencies can also use the Marketing API: POST to /act_<ad-account-id>/insights/feature-settings.

Does the reporting data backfill after I opt in?

No. Meta starts collecting data from roughly the day after you enable each breakdown. Historical periods before your opt-in date stay empty, so any report covering the gap needs a coverage footnote — not a made-up estimate.

Related Articles