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:
- The account-level attribution setting is
1d_clickor1d_click_1d_view - The account has at least one active sales/leads/conversions campaign (i.e., it is asking Meta to optimize for purchases)
- 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_clickis 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_clickto stress-test the optimization signal and compare against an7d_click_1d_viewcohort. If you have a documented reason for the setting, the finding is informational rather than actionable. - Privacy-driven choice. A few brands set
1d_clickto 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
- Open Meta Ads Manager → Account-level settings → Attribution settings.
- Change the setting to 7-day click, 1-day view for sales objectives.
- 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.
- 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.
- 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_settingon the accounteffective_statusandobjectiveon 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.