event_id evt_8f2c91… event purchase · $184.50 USD age 2.1s ──── freshness 100 identity email + phone ──── identity_strength 78 fbp present ──── click_id_present 72 baseline delivered 91% ──── platform_health 91 ┌─────────────────────────────┐ │ composite score │ │ │ │ 87 / 100 │ │ ████████████████████░░░░ │ │ │ └─────────────────────────────┘ action ▸
On iOS 17.4+ Safari, fbp and fbc cookies get cleared on every cold-start session. Your CAPI events still fire — but with no browser_id, no click_id, and an email that may or may not match. Meta receives them, accepts them, and silently scores them at 3–5 EMQ. They count against your delivery rate but don't help your model.
Your checkout team ships a feature, the dataLayer changes shape, and 14% of your purchase events arrive without phone or external_id for 6 hours before anyone notices. The aggregate EMQ drop shows up in Meta Ads Manager 36–48h later — long after the bid optimiser has already absorbed it.
Stale event_time freshness (anything over 24h) drops your Meta delivery rate to 35% of healthy. If you batch-replay yesterday's checkouts to recover lost EMQ, you're paying twice — once for the stale event, once because Meta now lowers your trust score for the merchant_id.
Stape and Elevar will tell you the event was sent. They won't tell you the click_id was missing, the identity strength was 41/100, or that this exact merchant×platform×event combination has a 30-day delivery rate of 62%. You're flying blind on the data that actually predicts whether Meta will keep your account healthy.
Email, phone, customer_id, fbp, click_ids, ip+UA — each weighted, then blended with your 30-day identifier_match_rates from delivery_score_signals.
event_time vs now: ≤5 min = 100, ≤1 h = 90, ≤6 h = 74, ≤24 h = 55, older = 35. Stops you replaying stale events that erode delivery trust.
Per-merchant×platform×event_name baseline of p_delivered and p_high_match, computed nightly by score_trainer over a rolling 30-day window.
fbc / gclid / ttclid / msclkid / 7 more. Direct presence = 100. Falls back to fbp_presence_rate benchmark when missing.
# score a single event before send
$ curl -X POST https://tracklayer-api.sublime.workers.dev/v1/scoring/score \
-H "Authorization: Bearer $TRACKLAYER_API_KEY" \
-d '{
"platform": "meta",
"event": {
"event_name": "purchase",
"event_time": 1714137600,
"user_data": { "email": "j@northfield.co", "phone": "+15551234567" },
"custom_data": { "value": 184.50, "currency": "USD" }
}
}'
# response
{ "score": 87,
"components": {
"identity_strength": 78, "freshness": 100,
"platform_health": 91, "click_id_present": 72
},
"action": "send",
"suggested_enhancement": null }
# action map: score >= 80 → send 50–79 → enhance < 50 → skip
# applied automatically inside the consumer worker — no SDK change requiredPhase 9.2 added Wilson 95% CI to EMQ scores. The interval is computed per merchant×platform and surfaces in dashboard alongside the point estimate. When sample_size < 50, the display uses muted color to indicate low confidence.
SITUATION · iOS-heavy traffic (73%), Meta is the #1 channel at 41% of spend. EMQ averaged 6.4 over Q1, bid optimiser was over-spending on broad audiences with weak signal.
RESULT · Switched on scoring with skip-threshold 50. 11.8% of events skipped, EMQ rose to 8.1 in 30 days. Meta CPA dropped 19%, recovered ~€43K/month in matched conversions.
SITUATION · Server-side replay job was firing 6h-old events on retry, dragging freshness scores below 55. Meta was rejecting 28% of events and silently down-scoring the rest.
RESULT · Scoring blocked the 6h+ replays at the consumer worker. Delivery rate climbed 83% → 94.3%. Cancelled the standalone EMQ-monitoring contract (Stape + Elevar overlap), saved $740/mo.
SITUATION · 14 platforms (Meta, GA4, TikTok, Pinterest, Klaviyo, Google Ads, Bing, Reddit, Snap, X, LinkedIn, Yahoo Native, Outbrain, Taboola). Couldn't tell which platform was burning the budget on bad signal.
RESULT · Per-platform breakdown showed Pinterest at 0.71 × baseline and Reddit at 0.58 × — both pulling spend with low-EMQ events. Reallocated $18K/mo back to Meta+TikTok where score-weighted ROAS was 3.4 ×.
We use essential cookies to keep the site secure and functional. Analytics and third-party tags run only with your consent. See our Cookie Policy.
We use essential cookies to keep the site secure and functional. Analytics and third-party tags run only with your consent. See our Cookie Policy.