Health states
Event activity alone is not enough for Healthy. PlainRouter waits for recent delivery outcomes, an EMQ snapshot, and measurable reconciliation history before claiming measured health.
Summary metrics
Events received
The large value is the number of events received in the last 24 hours. The supporting value shows the last seven days. This metric covers collection. It does not mean every event was eligible for or accepted by Meta. The totals include customer-visible passive arrivals. A privacy-bounded strict-EU passive cell contributes zero until it reaches five arrivals; at that point its aggregate count can contribute to the displayed totals. Passive arrivals stay aggregate-only and do not appear in event-level lists or detail APIs. Their stored rows contain no page URL, platform or channel source, visitor identity, IP address, or user agent. They never create destination deliveries. Invalid traffic is excluded.Match quality
This is the latest stored Meta Event Match Quality score on a 0–10 scale. The trend compares the current snapshot with the prior week when a comparison exists. The chart appears after at least two stored snapshots.Delivery acceptance
This is the percentage of non-test destination deliveries from events received in the last 24 hours that reached an accepted state.Verified gap
This compares stored daily reconciliation counts:- A positive value means the gateway count is higher.
- A negative value means the Meta-reported count is higher.
- Zero means the stored counts match for the selected window.
Gateway vs Meta chart
Each row shows one stored daily reconciliation report:- Gateway is the number of gateway-verified accepted conversions.
- Meta is the number reported by Meta in the stored reconciliation run.
- The signed number is that day’s observed gap.
- An amber gap indicates the day exceeded the configured residual threshold.
Arrivals vs platform-claimed clicks
The Arrivals vs platform-claimed clicks panel compares customer-visible observed arrivals with account-level clicks reported by the connected platform. It uses the last seven complete days, shortened when the Signal’s retention window does not contain the full period.
The channel table is intentionally a subset, not an allocation of total arrivals. It includes global rows and full-consent strict-EU rows; strict-EU passive rows never appear in the channel view.
Opening the dashboard or clicking Export CSV reads stored data only and does not make a live Marketing API request. PlainRouter reports Not connected when no active platform connection exists and Unavailable when the retained period is incomplete or stored click history is missing or stale.
Diagnostics
Diagnostics explain the state behind the summary. Common messages include:Measurement freshness
Reconciliation normally runs daily. PlainRouter marks history stale after 48 hours. Until a recent report exists, the read isnot_measurable and its quantitative values cannot be cited as evidence for an Actions proposal.
The Measurement state panel shows the connected domain, dataset ID, last event, and the time the health response was generated.
Troubleshoot by symptom
No events received in 24 hours
No events received in 24 hours
Confirm the snippet still loads from the collection domain. Check
/v1/events in the browser network panel, recent deployment changes, your content security policy, and the tracker’s allowed website domain.Meta deliveries are failing
Meta deliveries are failing
Reconnect Meta if access changed or expired. Confirm the intended dataset is still available, then review whether failures continue on new events.
Measurement remains pending
Measurement remains pending
Confirm events are arriving and Meta is connected. Delivery outcomes need eligible consented events. EMQ and reconciliation also require their scheduled measurement jobs to create stored snapshots and reports.
Gateway and Meta differ
Gateway and Meta differ
Review the affected dates and event types. Check consent-skipped events, pending or failed deliveries, late reporting, deduplication, and any duplicate integration that still sends to the same dataset.