Meta Ads Measurement: A Privacy-Constrained Signal Plan
How do I plan measurement around signal loss?
Separate directly observed outcomes from modelled ones and from those simply missing, and count each category explicitly. A plan that treats modelled conversions as observed hides the coverage rate, which is the number that tells you how much of the reported result is inference.
For the surrounding account decisions, compare Meta Ads Ranking Diagnostics: How to Read the Signal and use After the Cookie: A Forward Measurement Plan for DTC as the next diagnostic.
In short
This guide owns one decision artifact: the filled, auditable structure below. Reader-supplied thresholds stay explicit; missing evidence stays missing.
Missingness worksheet
Keep modeled rows separate from directly observed rows. Populate counts from the named extracts; do not insert a benchmark loss percentage.
| Class | Count definition | Source | Consent state | Numerator | Denominator | Exclusions |
|---|---|---|---|---|---|---|
| Observed | Valid event records directly received and joined to an eligible ledger outcome | Raw browser/server logs plus commerce ledger | Consent permitted for the declared purpose | Observed joined eligible outcomes | Eligible consented ledger outcomes | Test traffic, cancelled orders, invalid payloads |
| Modeled | Outcomes explicitly labelled modeled in the platform export | Frozen platform report | Platform-reported aggregate; do not relabel as observed consent | Modeled attributed outcomes | All attributed outcomes in that export | Observed rows and unlabeled estimates |
| Missing | Eligible consented ledger outcomes with no valid observed event by cutoff | Commerce ledger minus event join | Consented and eligible only | Unjoined eligible outcomes at cutoff | Eligible consented ledger outcomes | Non-consented outcomes and late rows still inside SLA |
| Late | Valid observed events received after the declared receipt SLA | Event transport log | Consent permitted at occurrence | Eligible events received after SLA | Eligible received events | Retries of an already accepted event |
| Rejected | Events failed by schema, consent, or validation rule | Collector rejection log | Record the precise state and failed rule | Rejected eligible submissions | Eligible submissions | Synthetic tests tracked separately |
| Unmatched | Valid received events that cannot join the ledger on the declared key | Event and ledger join output | Consent permitted | Valid unjoined events | Valid received events | Events that do not represent commerce outcomes |
Observed coverage = (observed joined eligible outcomes) ÷ (eligible consented ledger outcomes). Modeled share = (outcomes explicitly labelled modeled) ÷ (all platform-attributed outcomes in the same export). Sources/windows are the worksheet extracts and one declared receipt cutoff. Neither formula measures incrementality.
Interpretation boundary
Use the observed/modelled missingness worksheet only for its stated decision. Count directly joined observed outcomes separately from rows explicitly labelled modeled, then classify missing, late, rejected, and unmatched records. Never infer a loss percentage when consent eligibility or the ledger denominator is unavailable. Reader-supplied thresholds remain inputs, not universal standards.
Can software help?
Bach.ai audits your connected Meta account, estimates the revenue impact of what it finds, and proposes specific fixes. It applies a change only after you approve it. Think of it as an automated audit layer that surfaces issues and proposed fixes for your review — not a replacement for your team’s judgment, and creative production is not its core job, though the Pro and Agency plans can generate a limited number of variants.
FAQ
How should observed, modeled, missing, and late events be separated?
Count directly joined observed outcomes separately from rows explicitly labelled modeled, then classify missing, late, rejected, and unmatched records.
When is an iOS signal-loss percentage unsupported?
Never infer a loss percentage when consent eligibility or the ledger denominator is unavailable.
What can a missingness worksheet show without proving incremental impact?
It supports the bounded operating choice encoded by the observed/modelled missingness worksheet. It cannot replace missing source records or turn platform credit and observed association into incremental impact.
Method and sources
“Separate directly observed outcomes from modelled ones and from those simply missing, and count each category explicitly.”
Source: Where this guide describes platform behaviour, it follows Meta’s published advertising and Marketing API documentation, which changes without notice — verify anything load-bearing against the current version before you act on it. Every threshold the guide asks you to supply is first-party, drawn from your own account exports and commerce ledger, because no external benchmark can stand in for your own margin structure.