Honest Growth
← All detections

Detection · attribution_window_mismatch

Detection: Attribution window too narrow for this account

Key: attribution_window_mismatch Severity: Medium Confidence: 70%

What this detection looks for

We flag an account as attribution-window-mismatched when all of these are true:

  1. The account-level attribution setting is 1d_click or 1d_click_1d_view
  2. The account has at least one active sales/leads/conversions campaign (i.e., it is asking Meta to optimize for purchases)
  3. Projected monthly spend is at least $5,000

The 1-day click window is the most aggressive Meta setting. It counts only conversions that happen within 24 hours of a click and nothing from view-throughs. It exists for two scenarios: very short sales cycles (impulse purchases under $20) and incrementality testing. For most DTC and B2C accounts at $5K+/month, it is the wrong default.

Why this matters

A narrow attribution window has two compounding costs.

Reporting cost. You stop seeing conversions that Meta actually drove. Meta's optimization model still sees them — but you, your agency, and your stakeholders are reading lower ROAS than the campaign is delivering. Budget decisions get made on the wrong number.

Optimization cost. The campaigns optimize for the conversions they can see in the window. Setting the window to 1-day-click tells Meta: "only credit purchases that happen within 24 hours of a click." Meta then biases delivery toward audiences that close fast, which is a narrower audience than your actual buyer base.

The fix is almost always to switch to 7d_click_1d_view, the platform default for sales objectives. Reported numbers go up; actual delivery shifts toward audiences that include slower-converting but still profitable segments.

How we calculate confidence

This detection is surfaced at 70% confidence. We are flagging a configuration that is statistically likely to be wrong for the account's profile, not a measured outcome — so we deliberately stay below 90% and include a "what would change our mind" section.

How we calculate the estimated monthly cost

We surface 5% of monthly spend as the conservative estimate of "reporting credit you are not currently seeing." This is intentionally conservative compared with industry benchmarks (8–15% is more typical for DTC). The number is best read as a floor on the visibility lift, not a prediction of new revenue.

monthly_uncredited = monthly_spend × 0.05

We do not claim recoverable waste here. The fix improves measurement and delivery — both useful, but neither is "dollars saved per month" in the same sense as zombie_adset waste.

What would change our mind

This finding can be a false positive in a small number of cases:

  • Genuinely short sales cycle. If your product converts in under 24 hours from first click in the vast majority of cases (impulse digital goods, low-price apps, urgent services), 1d_click is correct and the finding does not apply. Confirm by looking at your Google Analytics time-to-purchase distribution.
  • You are running an active incrementality test. Some teams intentionally use 1d_click to stress-test the optimization signal and compare against an 7d_click_1d_view cohort. If you have a documented reason for the setting, the finding is informational rather than actionable.
  • Privacy-driven choice. A few brands set 1d_click to minimize cross-app tracking exposure. This is a defensible policy choice; the cost is the visibility and optimization loss described above.

How to fix it

  1. Open Meta Ads Manager → Account-level settings → Attribution settings.
  2. Change the setting to 7-day click, 1-day view for sales objectives.
  3. Note that this is an account-level change. New campaigns will default to it. Existing campaigns will start reporting under the new window on the next reporting refresh; historical numbers will not retroactively change.
  4. Wait 7 days before comparing ROAS to prior period. Less than that and the new window has not yet had a chance to record the additional conversions it can see.
  5. If you want a smaller move first, 7d_click (without view-through) is a half-step that captures most of the optimization benefit without the view-through reporting change.

What we look at to make this detection

  • attribution_setting on the account
  • effective_status and objective on each campaign (to confirm the account is asking Meta to optimize for purchases)
  • Total spend in the audit date range, projected to a 30-day month

Source

This methodology page is generated from apps/api/app/services/detections/attribution_window_mismatch.py. The detection code is open for inspection. We do not have hidden rules.

See it run on a real account.

The sample audit shows this and 14 other detections fired against a synthetic but realistic $30K/month account.