signal-surgeon: the Meta signal layer
What it does
Section titled “What it does”Fixes the quality of the signal you send Meta, which is the single biggest lever on delivery that most accounts never touch. Through Meta’s own Dataset Quality API it reads:
- Event match quality (EMQ) per event, not just the headline number
- Deduplication: whether browser and server events are being counted twice
- Dual-channel coverage: which events fire on only one leg
- Parameter gaps: the specific
user_datafields you are not sending - Event hygiene generally
Then it hands you the exact payload specs to fix it, including hashing and normalization, ranked by what each fix is worth in revenue.
It also emits the tracking gate verdict that every other Meta skill in the toolkit reads before it trusts your account data.
When to reach for it
Section titled “When to reach for it”- EMQ is below 7 and you want the specific missing fields, not general advice.
- You suspect double-counting between pixel and CAPI.
- Delivery is worse than the creative deserves, which is usually a signal problem wearing a creative costume.
- Before scaling, so you are scaling on data Meta can actually match.
Where it runs
Section titled “Where it runs”Both. Needs the Meta Ads connector with dataset access.
What it needs from you
Section titled “What it needs from you”- The dataset or pixel id, confirmed against the brand it belongs to.
- Access to the Meta Ads connector. Without dataset permissions this cannot run, and it will tell you exactly which permission is missing rather than guessing at the numbers.
What you get back
Section titled “What you get back”- Per-event EMQ with the specific parameters dragging each one down.
- Deduplication status per event.
- Implementable payload fixes: the actual
user_dataobject you should be sending, with correct hashing and normalization. - A revenue-impact ranking, so you fix the expensive one first.
- The gate verdict other skills consume.
Config changes are proposal-only, behind the approval gate.
A worked example
Section titled “A worked example”You: “Why is my EMQ low?”
Purchase EMQ 4.2 of 10. You are sending email and IP only. Missing:
ph(phone),fn/ln,ct/st/zp, andfbcfrom the click id. Adding phone and the click id alone models to EMQ 7.1, the biggest single lift available here. Exact spec returned, including SHA-256 on the normalized lowercase-trimmed value and the E.164 phone format Meta expects. Purchase dedup: healthy. ViewContent: browser only, no server leg.
Tips & gotchas
Section titled “Tips & gotchas”- EMQ is not vanity. It directly changes who Meta can find and how well it optimizes. A 4 to a 7 is a real performance change.
- Hash correctly or the field is worse than useless. Normalization before hashing is where most implementations quietly fail, so use the returned spec verbatim.
- Dedup and coverage are different problems. Double-counting inflates your reported results; single-leg coverage loses you matches. Read both rows.
- Re-audit after the dev work lands. The numbers move within a few days.
Related skills
Section titled “Related skills”The deep version of the signal layer inside meta-account-doctor, and the Meta half of tracking-doctor. Its verdict gates new-client-launch and meta-scaling-copilot.