Guide · Tracking

How to Improve Meta Event Match Quality: What Data to Send

How to improve Event Match Quality in Meta: which customer data counts, how to normalize and hash it, and how fbc, fbp and event_id help your score.

Daniel Kalcher9 min read

You're sending conversions to Meta, but Events Manager shows a 4.1 for your lead event - and you're wondering what else Meta wants from you? This guide explains what's behind the score, which data you should send, how to prepare it correctly and which mistakes drag the score down. It's for performance marketers, agencies and lead generation businesses that use the Conversion API or are about to set it up.

What Event Match Quality measures

Event Match Quality (EMQ), often called the "Event Quality Score", is a value from 0 to 10 that Meta shows in Events Manager per event. It describes how effective the customer information from your Conversion API is at matching an event to a Facebook or Instagram account. According to Meta, three things go into it: which customer information you send, the quality of that information, and the share of events that actually get matched to an account. The score is currently only available for website events.

You'll find the score in Events Manager: select your data source (pixel), open the event, then the Event Match Quality overview. Meta shows not just the value but also which customer data is sent and how often. That list is your most important tool for improving it.

Keep in mind: the score isn't a goal in itself. A high value on PageView doesn't help much if your Lead or Purchase event matches poorly. Focus on the events your campaigns optimize for.

Why the score matters for your campaigns

Meta puts it plainly: only matched events can be used for ad attribution and ad delivery optimization. Unmatched events only count toward basic measurement. That has three consequences:

  • Fewer attributed conversions: Meta can attribute leads and purchases to the ad that drove them less often. Your campaigns look worse in the ad account than they really are.
  • Worse optimization: The algorithm only learns from conversions it can match. If many are missing, it optimizes on a distorted picture.
  • Smaller audiences: Custom audiences and lookalike audiences built on your events become smaller and less accurate.

In lead generation this hurts in particular, because forms collect exactly the data Meta needs: email address and phone number. It just has to arrive in the event cleanly.

How the Conversion API improves Event Match Quality

The Meta Pixel runs in the browser and only sees what happens there. The Conversion API sends events straight from your server - and that raises Event Match Quality for several reasons:

  • More customer data per event: Your server knows what the browser doesn't pass on: the email address and phone number from the form, the name from your CRM, your own customer ID. Meta lists these among the strongest matching parameters.
  • Fewer lost events: Events the pixel misses because of connectivity or page-load issues, ad blockers or browser restrictions still arrive via the server.
  • Pixel and server complement each other: Meta recommends a "redundant setup" - sending the same key events via pixel and Conversion API. The pixel provides fbp, fbc, IP and user agent from the browser; the server adds the customer data. Using event_id and the same event name, Meta merges both and counts them once.
  • Events after the click: Deals in your CRM or payments often happen days later and without a browser. Only the Conversion API can send them to Meta - with the same customer data as the lead. Meta doesn't currently show an EMQ score for these, but matching works the same way.
  • Full control over data quality: On the server you normalize and hash the data yourself - instead of relying on whatever a browser script captures.

Next to Event Match Quality, Events Manager shows further values worth watching: event coverage (how many pixel events also come through the Conversion API), deduplication, data freshness (the delay between the event and when Meta receives it) and the additional conversions reported that Meta can attribute thanks to the Conversion API.

Which parameters count

Meta calls this data "customer information parameters". The more of them an event contains - and the more often they're actually present - the better the match.

DataMeta parameterHash?Note
Email addressemYes (SHA-256)One of the strongest parameters
Phone numberphYesWith country code, digits only
First and last namefn, lnYesImproves matching together with city/zip
City, state, zip, countryct, st, zp, countryYesCountry as two-letter ISO code
Gender, date of birthge, dbYesRarely available in lead generation
Your own customer IDexternal_idRecommendedE.g. the ID from your CRM
Click IDfbcNoBuilt from the ad's fbclid
Browser IDfbpNoThe Meta Pixel's _fbp cookie
IP address, user agentclient_ip_address, client_user_agentNoFrom the visitor's browser request

For website events sent via the Conversion API, Meta also requires action_source, event_source_url and client_user_agent. Location data alone (city, zip, country, gender) without email, phone or click ID is considered too broad for matching.

In lead generation the two biggest levers are almost always email and phone number (strong because they're unique) and fbc (it ties the event directly to the ad click).

Normalize and hash data correctly

Meta compares hashes. A single uppercase letter or space produces a completely different hash - and the match fails even though the data is actually right. So the rule is: normalize first, then hash with SHA-256.

Email:    " Max.Smith@Company.COM "  →  "max.smith@company.com"
Phone:    "(415) 555-0123"           →  "14155550123"
First:    "José"                     →  "josé"
City:     "San Francisco"            →  "sanfrancisco"
Zip:      "94103"                    →  "94103"
Country:  "United States"            →  "us"

The key rules:

  • Lowercase everything and trim leading and trailing spaces.
  • Phone numbers with digits and country code only - no +, no symbols, no leading zeros.
  • Country as a two-letter ISO code (us, gb, de) - Meta says to always include it, even if all your customers are in one country.
  • Don't hash twice, and don't normalize values that are already hashed.
  • fbc, fbp, IP address and user agent stay unhashed.

Capture fbc and fbp reliably

fbc and fbp connect the ad click, the browser and the server event:

  • The fbclid is appended to the URL when someone clicks your Meta ad. It becomes fbc in the format fb.1.<timestamp in milliseconds>.<fbclid>. Important: the fbclid is case-sensitive and must not be modified - don't lowercase it like the rest of your data. If the fbclid gets lost, fbc is missing.
  • fbp is the browser ID in the _fbp cookie set by the Meta Pixel.

Typical places where both get lost:

  • Redirects that strip URL parameters (e.g. from domain.com to www.domain.com).
  • Funnels in iframes or on another domain: the click lands on your website, but the form lives somewhere else.
  • Long gaps between click and conversion: if you don't store fbc with the lead, it's gone by the time the deal closes.

So store fbc and fbp on the first visit or with the lead, and send them with every later event - including the deal won weeks later.

Step by step to a better score

  1. Check where you stand

    Open your most important event (Lead or Purchase) in Events Manager and note the score and the coverage per parameter.

  2. Check forms for email and phone

    Ask for both where it makes sense for your process, and make sure the values arrive in the event - including funnels, scheduling tools and lead ads.

  3. Normalize and hash

    Prepare all customer data according to the rules above and hash it with SHA-256. A test event in Events Manager shows whether Meta recognizes the parameters.

  4. Send fbc and fbp

    Capture the fbclid on the click, store fbc and fbp with the lead and send both with every server event.

  5. Deduplicate pixel and server

    If you send the same event via pixel and Conversion API, give both the same event_id and event name. Otherwise Meta counts it twice.

  6. Send later events back

    Also send deals and purchases from your CRM or payment provider with the same customer data. That's how Meta learns which leads actually bring in revenue.

Meta only accepts server events up to seven days after they happened - if a request contains an older event, the whole request is rejected. Send events promptly - ideally automatically, as soon as they occur in your CRM or payment provider.

💡
Which data you may share with Meta depends on your consent setup and privacy policy. Check with your data protection officer - this guide is not legal advice.

Common mistakes

  • Sending pixel data only: An event with IP, user agent and fbp but no email or phone number usually ends up at the low end.
  • Unnormalized values: "Max@Company.com " and "max@company.com" produce different hashes.
  • Phone numbers without country code: "(415) 555-0123" without the leading 1 often isn't recognized.
  • The server's IP address instead of the visitor's: Sending your server IP makes matching worse.
  • fbc gets lost along the way: Redirects, iframes or domain switches strip the fbclid.
  • Modifying the fbclid: Lowercasing it along with your other data makes fbc useless.
  • Missing deduplication: Double-counted events distort campaign data, even if the score looks good.
  • Looking at the wrong event's score: A PageView at 8.5 doesn't make up for a Lead event at 4.

How LeadMetrics helps

LeadMetrics doesn't display the score itself - you see it in Meta Events Manager. But the LeadMetrics Conversion API sends exactly the data that feeds Event Match Quality:

  • Hashed customer data: email, phone number and names are sent hashed with SHA-256.
  • Click and browser IDs: fbc and fbp are sent with the event.
  • Deduplication: every event gets an event_id.
  • Value and currency for purchases and won deals - including deals that close in your CRM weeks after the click, for example via HubSpot.
  • Form detection: lead tracking captures email and phone number from form fields, including single-page apps; funnels in iframes have their own placeholders.
  • Log per lead: you see which events were sent to Meta for each lead.

You decide per project which LeadMetrics events (lead, purchase, deal won, custom metric …) arrive as which Meta event. For Meta you can also choose whether to send only attributed data or all data.

Ready for better tracking?

Try LeadMetrics free for 10 days and see which campaigns actually drive revenue.
Start a 10 day trial

Frequently asked questions

Meta shows the score from 0 to 10 and rates it from poor to great. In practice, a score of around 6 or higher is considered solid. What matters is the score of your most important conversion event - usually Lead or Purchase - not PageView.

Terms in this guide

All terms

Related articles

More guides

All guides