[{"data":1,"prerenderedAt":868},["ShallowReactive",2],{"guide-meta-event-match-quality-emq":3},{"id":4,"title":5,"answer":6,"authorId":7,"body":8,"category":751,"ctaVariant":752,"dataset":751,"description":753,"examples":754,"extension":767,"faqs":768,"heroImage":793,"intro":794,"meta":795,"navigation":796,"path":797,"publishedAt":798,"seo":799,"sources":800,"stats":837,"stem":866,"updatedAt":798,"__hash__":867},"blog\u002Fblog\u002Fmeta-event-match-quality-emq.md","Improve Meta Event Match Quality (EMQ) 2026","Event Match Quality (EMQ) is Meta's 0 to 10 score for how well the customer data you send (email, phone, name, address, click and browser IDs) matches to real Meta accounts. Raise it by sending more hashed first-party identifiers through the Conversions API alongside the Pixel: Meta reports advertisers with a web Conversions API setup saw an average 17.8% lower cost per result (directional, Meta-reported via PPC.land, 2025). Meta publishes the scale but not a target score, so track your own EMQ per event and judge movement against your own baseline rather than a fixed pass mark.","likit-sae-lee",{"type":9,"value":10,"toc":737},"minimark",[11,16,20,23,42,46,49,62,65,69,72,75,83,90,94,97,100,205,208,211,215,218,327,330,333,528,531,534,537,547,553,557,560,563,566,569,573,576,649,652,655,659,662,665,668,671,679,683,686,689,692,700,704,707,734],[12,13,15],"h2",{"id":14},"what-event-match-quality-actually-measures","What Event Match Quality actually measures",[17,18,19],"p",{},"Event Match Quality is Meta's 0 to 10 grade for how confidently it can connect each event you send to a real person in its system. It is not a measure of how many events fired, nor a tracking health check. It answers one question: of the conversions you reported, how many could Meta tie back to an account it recognizes? Meta calculates the score from the last 48 hours of event data, weighing both the quality of the customer information you send and the share of event instances it could match to real accounts (Meta Business Help Center, About Event Match Quality, 2025).",[17,21,22],{},"The mechanics are straightforward once you stop thinking about it as a black box. Every event you push carries a set of customer information parameters: hashed email, hashed phone, first and last name, city, state, zip, country, an external ID, the client IP address, the user agent, and two Facebook cookies (fbc, the click ID, and fbp, the browser ID). Meta hashes and compares those identifiers against its own graph, then scores the quantity and quality of what matched. Send a Purchase event with only an IP and a user agent and you will sit near the bottom of the range. Send the same event with email, phone, name, zip and the click ID and the score climbs, because each additional strong identifier raises the odds of a confident match.",[17,24,25,26,31,32,36,37,41],{},"This is why two stores running identical campaigns can report wildly different results. The one feeding richer signal gives Meta a sharper picture of who converted, which flows into delivery, attribution, and the seeds behind every audience. If you are still wiring up the plumbing, the ",[27,28,30],"a",{"href":29},"\u002Fblog\u002Fmeta-pixel-setup","Meta Pixel setup walkthrough",", the ",[27,33,35],{"href":34},"\u002Fblog\u002Ffacebook-conversions-api-setup","Conversions API setup guide",", and the broader ",[27,38,40],{"href":39},"\u002Fblog\u002Ffacebook-conversion-tracking-setup","conversion tracking setup guide"," cover the foundations this score is built on.",[12,43,45],{"id":44},"where-to-find-your-emq-score-in-events-manager","Where to find your EMQ score in Events Manager",[17,47,48],{},"You cannot fix a number you cannot see, so start by reading it. The score lives in Events Manager, not Ads Manager, and it shows per event rather than as one account figure.",[50,51,52,56,59],"ol",{},[53,54,55],"li",{},"Open Events Manager and click the Data Sources icon, then select your Pixel or dataset by name and ID.",[53,57,58],{},"Find the event you want to inspect, such as Purchase or Lead, and click View details.",[53,60,61],{},"Open the Event Quality tab. It shows that event's match score out of 10 and lists which customer information parameters Meta actually received.",[17,63,64],{},"That last screen is the one that matters. It tells you not just the score but the gap behind it: whether email arrived but phone did not, whether the click ID is missing, whether a field you thought you sent is blank. Read the parameters Meta says it received against what your checkout actually collects, and the fix usually writes itself. Because the score is calculated on a rolling window of recent data, check it a day or two after a change rather than the same hour, and send events regularly so the number stays current.",[12,66,68],{"id":67},"why-low-emq-quietly-inflates-your-costs","Why low EMQ quietly inflates your costs",[17,70,71],{},"Browser-side tracking has been eroding for years, and the gap is no longer trivial. Safari's Intelligent Tracking Prevention caps JavaScript-set first-party cookies at 7 days, and tightens that to just 24 hours when a visitor lands on a URL carrying ad-click parameters like fbclid (Apple WebKit ITP 2.1 and 2.2, 2019). Ad blockers stop the Pixel loading at all for a meaningful slice of traffic, and iOS opt-outs remove another layer. The erosion is measurable: analysis from Ruler Analytics (2025) reports 15% to 30% GA4 revenue underreporting versus the backend for businesses with significant Safari and iOS traffic, with Safari and Firefox together making up roughly 20% to 35% of global browser traffic. Browser vendors document the underlying mechanism directly: each tightening of cookie lifetimes (Apple WebKit, 2019) chips away at what a Pixel-only setup can see.",[17,73,74],{},"Missing conversions do not just dent your reports. They starve the optimization engine. When Meta cannot match a buyer, that signal never teaches the model, so it keeps spending to re-learn lessons your data already contained. The result is a slow tax: wider prospecting, weaker lookalikes, and a CPA that drifts upward for reasons that never show up cleanly in a single dashboard.",[17,76,77,78,82],{},"Raising EMQ attacks the problem at the source by recovering matches that browsers throw away. Meta has reported, on a directional basis, that advertisers with a web Conversions API setup saw an average 17.8% lower cost per result (Meta-reported via PPC.land, 2025). Treat that as the upper edge of what is possible rather than a promise, but the direction is consistent: cleaner matching, more credited conversions, more efficient spend. If your reported numbers and your real numbers have drifted apart, the ",[27,79,81],{"href":80},"\u002Fblog\u002Ffacebook-ads-attribution-window","attribution window guide"," explains the reporting side of the same story.",[17,84,85],{},[86,87],"img",{"alt":88,"src":89},"Diagram contrasting a pixel-only data path losing conversions to cookie limits, ad blockers and opt-outs against a combined pixel plus server path that recovers matched conversions for Meta","\u002Fimages\u002Fblog\u002Fmeta-event-match-quality-emq-signal-loss.webp",[12,91,93],{"id":92},"benchmark-scores-by-event-type","Benchmark scores by event type",[17,95,96],{},"The single most common mistake is treating EMQ as one number to maximize across the board. It is not. Different events sit at different points in the funnel and naturally carry different amounts of identity. A PageView from an anonymous visitor will never match as well as a Purchase from a logged-in checkout, and that is structurally correct, not a bug to fix.",[17,98,99],{},"Use the table below as a reality check before you panic about a mid-single-digit score on a top-of-funnel event. The ranges reflect practitioner benchmarks; your own numbers will vary with how much data you capture at each step.",[101,102,103,122],"table",{},[104,105,106],"thead",{},[107,108,109,113,116,119],"tr",{},[110,111,112],"th",{},"Event",[110,114,115],{},"Funnel position",[110,117,118],{},"Typical EMQ range",[110,120,121],{},"Priority to fix",[123,124,125,140,151,165,178,192],"tbody",{},[107,126,127,131,134,137],{},[128,129,130],"td",{},"Purchase",[128,132,133],{},"Bottom",[128,135,136],{},"7 and above target",[128,138,139],{},"Critical",[107,141,142,145,147,149],{},[128,143,144],{},"Lead",[128,146,133],{},[128,148,136],{},[128,150,139],{},[107,152,153,156,159,162],{},[128,154,155],{},"Initiate Checkout",[128,157,158],{},"Mid",[128,160,161],{},"4 to 7",[128,163,164],{},"High",[107,166,167,170,172,175],{},[128,168,169],{},"Add to Cart",[128,171,158],{},[128,173,174],{},"3 to 6",[128,176,177],{},"Medium",[107,179,180,183,186,189],{},[128,181,182],{},"View Content",[128,184,185],{},"Upper",[128,187,188],{},"2 to 5",[128,190,191],{},"Low",[107,193,194,197,200,203],{},[128,195,196],{},"Page View",[128,198,199],{},"Top",[128,201,202],{},"2 to 4",[128,204,191],{},[17,206,207],{},"The takeaway: spend your effort where money changes hands. A Purchase event stuck at 4.5 is a genuine problem, because by checkout you almost certainly hold an email, a phone number and a billing address. A PageView at 3 is just the nature of anonymous traffic. Practitioners commonly treat 7 or higher as the healthy bar on high-value events like Purchase, so a Purchase sitting well below that usually means strong identifiers are being dropped before the event reaches Meta, not that the data does not exist. Most stores have real headroom on exactly the events that fund the account. Prioritize accordingly, and resist the urge to chase the score on events that will never carry strong identity.",[17,209,210],{},"There is a second reason to read the score per event rather than as an average. Meta optimizes each campaign toward a specific conversion event, so the match quality of that one event matters far more to delivery than your account-wide picture. A store optimizing for Purchase gains almost nothing from a beautifully matched ViewContent event and everything from a well-matched Purchase. Before you touch a single parameter, confirm which event your campaigns actually optimize toward, then weight your effort there. If you run lead generation rather than ecommerce, the same logic points you at the Lead event, where the identifiers arrive the moment a form is submitted. Before you optimize anything, confirm which event each campaign is actually built around, because that single event sets the ceiling on your delivery.",[12,212,214],{"id":213},"the-parameters-that-move-the-number","The parameters that move the number",[17,216,217],{},"If you only change one thing, enrich the identifiers on your high-value events. Not every parameter pulls equal weight, so it helps to know the rough hierarchy before you reorder your engineering backlog.",[101,219,220,233],{},[104,221,222],{},[107,223,224,227,230],{},[110,225,226],{},"Parameter",[110,228,229],{},"Field",[110,231,232],{},"Relative weight",[123,234,235,246,256,266,276,286,296,306,317],{},[107,236,237,240,243],{},[128,238,239],{},"Click ID",[128,241,242],{},"fbc",[128,244,245],{},"Very high",[107,247,248,251,254],{},[128,249,250],{},"Email (hashed)",[128,252,253],{},"em",[128,255,245],{},[107,257,258,261,264],{},[128,259,260],{},"Browser ID",[128,262,263],{},"fbp",[128,265,164],{},[107,267,268,271,274],{},[128,269,270],{},"Phone (hashed)",[128,272,273],{},"ph",[128,275,164],{},[107,277,278,281,284],{},[128,279,280],{},"Zip \u002F postal code",[128,282,283],{},"zp",[128,285,177],{},[107,287,288,291,294],{},[128,289,290],{},"First and last name",[128,292,293],{},"fn, ln",[128,295,177],{},[107,297,298,301,304],{},[128,299,300],{},"External ID",[128,302,303],{},"external_id",[128,305,177],{},[107,307,308,311,314],{},[128,309,310],{},"City, state, country",[128,312,313],{},"ct, st, country",[128,315,316],{},"Low to medium",[107,318,319,322,325],{},[128,320,321],{},"IP and user agent",[128,323,324],{},"client_ip_address, client_user_agent",[128,326,316],{},[17,328,329],{},"Three practical rules follow from this. First, capture the click ID and browser ID reliably. The fbc value comes from the fbclid query parameter on the landing URL, and the fbp is set by the Pixel; if your server-side events drop them, you lose two of the strongest signals, which is why the Pixel and the Conversions API belong together rather than as either-or. Second, normalize before you hash. Lowercase the email, strip spaces, render phone numbers in full international format, and use the country code consistently. A mistyped or unnormalized value hashes to a string that matches nothing, so it is worse than useless because it looks like you sent data when you did not. Third, send everything you legitimately hold. There is no penalty for adding zip, name and external_id on top of email and phone, and each one nudges the match probability up.",[17,331,332],{},"Normalization is where most scores quietly leak, because a value that is not formatted exactly as Meta expects hashes to a string that matches nothing. Meta publishes the rule for every field, and it splits cleanly into two groups: personal fields are normalized then SHA-256 hashed, while the click, browser and connection identifiers are sent raw. Apply the table below before you hash, and never hash the four raw fields, because a hash would break a value Meta needs to match directly.",[101,334,335,349],{},[104,336,337],{},[107,338,339,341,343,346],{},[110,340,226],{},[110,342,229],{},[110,344,345],{},"Format before sending",[110,347,348],{},"Hashed?",[123,350,351,364,376,387,400,413,424,437,450,461,485,502,515],{},[107,352,353,356,358,361],{},[128,354,355],{},"Email",[128,357,253],{},[128,359,360],{},"Trim spaces, then lowercase",[128,362,363],{},"SHA-256",[107,365,366,369,371,374],{},[128,367,368],{},"Phone",[128,370,273],{},[128,372,373],{},"Digits only with country code, no plus sign, spaces or dashes (such as 16505551212)",[128,375,363],{},[107,377,378,380,382,385],{},[128,379,290],{},[128,381,293],{},[128,383,384],{},"Lowercase, no punctuation, UTF-8 encode accents",[128,386,363],{},[107,388,389,392,395,398],{},[128,390,391],{},"City",[128,393,394],{},"ct",[128,396,397],{},"Lowercase, no spaces or punctuation",[128,399,363],{},[107,401,402,405,408,411],{},[128,403,404],{},"State",[128,406,407],{},"st",[128,409,410],{},"Two-letter code, lowercase (such as ny)",[128,412,363],{},[107,414,415,417,419,422],{},[128,416,280],{},[128,418,283],{},[128,420,421],{},"Lowercase, no spaces or dashes; first 5 digits for US",[128,423,363],{},[107,425,426,429,432,435],{},[128,427,428],{},"Country",[128,430,431],{},"country",[128,433,434],{},"Two-letter ISO code, lowercase (such as us)",[128,436,363],{},[107,438,439,442,445,448],{},[128,440,441],{},"Date of birth",[128,443,444],{},"db",[128,446,447],{},"YYYYMMDD (such as 19970216)",[128,449,363],{},[107,451,452,454,456,459],{},[128,453,300],{},[128,455,303],{},[128,457,458],{},"Your own stable customer ID; Meta recommends hashing it",[128,460,363],{},[107,462,463,465,467,482],{},[128,464,239],{},[128,466,242],{},[128,468,469,470,474,475,474,478,481],{},"fb.",[471,472,473],"span",{},"subdomain",".",[471,476,477],{},"timestamp",[471,479,480],{},"fbclid",", sent as-is",[128,483,484],{},"Raw",[107,486,487,489,491,500],{},[128,488,260],{},[128,490,263],{},[128,492,469,493,474,495,474,497,481],{},[471,494,473],{},[471,496,477],{},[471,498,499],{},"random",[128,501,484],{},[107,503,504,507,510,513],{},[128,505,506],{},"IP address",[128,508,509],{},"client_ip_address",[128,511,512],{},"Valid IPv4 or IPv6, sent as-is",[128,514,484],{},[107,516,517,520,523,526],{},[128,518,519],{},"User agent",[128,521,522],{},"client_user_agent",[128,524,525],{},"Full browser user agent string, sent as-is",[128,527,484],{},[17,529,530],{},"The split matters more than it looks. Hash a field that should be raw, or send raw a field that should be hashed, and the match silently fails while your dashboard still shows the event arriving. Meta also requires at least one correctly formatted customer information parameter for an event to be eligible to match at all, so an event carrying only a malformed email matches nothing (Meta for Developers, Conversions API Customer Information Parameters, 2026).",[17,532,533],{},"A grounded example: a skincare brand like Skinlycious typically runs a before-and-after video that drives cold traffic to a product page, then a checkout. At checkout the brand already collects email, phone, name and a shipping address. Passing all of those, hashed, into the Purchase event is the difference between a 4 and an 8 on that single event, with no change to the creative at all. A lead-focused advertiser such as Fitness Achievers, whose static ad invites a free trial booking, has the same opportunity on the Lead event the moment the form captures a name and a phone number. An aesthetics clinic running consultation bookings, the kind of testimonial-led campaign UR Klinik typically uses, sits in exactly the same position: the booking form already holds a name and a contact number, so the only question is whether those fields reach the server event intact.",[17,535,536],{},"Two technical notes save a lot of frustration here. The external_id deserves more respect than it usually gets: a stable, hashed customer identifier of your own, such as a CRM ID or a logged-in account ID, lets Meta stitch a buyer across devices and sessions even when cookies expire, which is why it punches above its medium weighting for repeat-purchase brands. And the IP address plus user agent pair, while individually weak, still matters because it anchors the event in time and place when stronger identifiers are missing; never strip it out to save a field, since it costs nothing and can rescue an otherwise unmatched event.",[17,538,539,540,474,542,474,544,546],{},"The click ID deserves its own note, because it is the highest-weight signal that no checkout form ever collects. It is not a field a customer types: Meta appends an fbclid query parameter to the landing URL when someone clicks an ad, the Pixel reads it, and stores it in the _fbc cookie in the format fb.",[471,541,473],{},[471,543,477],{},[471,545,480],{},". If your server-side events fire from a context where that cookie has expired or was never read, capture the fbclid on the first page load and reconstruct the fbc value server-side, or you throw away one of the two strongest identifiers in the whole hierarchy. If your site uses Facebook Login, the fb_login_id (the user's app-scoped ID) is another strong, unambiguous identifier worth sending whenever you legitimately hold it.",[17,548,549],{},[86,550],{"alt":551,"src":552},"Diagram ranking Meta event match parameters from highest weight click ID and email down to supporting signals, shown as a vertical ranked list of rounded cards","\u002Fimages\u002Fblog\u002Fmeta-event-match-quality-emq-parameter-stack.webp",[12,554,556],{"id":555},"advanced-matching-the-no-code-lever","Advanced Matching: the no-code lever",[17,558,559],{},"Everything above assumes you can shape a server payload. Plenty of teams cannot, and they still have the single easiest win available on the Pixel side: Advanced Matching. It tells the browser Pixel to read the customer information already sitting in your page, the email and phone someone types into a form or checkout, hash it in the browser, and send it alongside the standard event. For a non-engineering reader it is the fastest way to lift a low score without writing a line of server code.",[17,561,562],{},"There are two versions, and the difference is who does the work. Automatic Advanced Matching needs no code at all. In Events Manager, click the Data Sources icon, select your Pixel, open the Settings tab, and toggle on Automatic Advanced Matching, then choose which parameters to share. Meta suggests selecting at least email and phone number for the best results. Once it is on, the Pixel scans your pages for recognizable form fields, hashes what it finds in the visitor's browser, and sends it. Expect up to 48 hours before the change shows in Events Manager.",[17,564,565],{},"Manual Advanced Matching is the alternative when you want control, or when the automatic version cannot read your fields. You pass the parameters explicitly in the Pixel base code, so a developer touches the snippet but you decide exactly which values are sent and when. It sits between the automatic toggle and a full server integration.",[17,567,568],{},"Two limits decide whether the automatic version is even available to you. Meta does not offer Automatic Advanced Matching to businesses in restricted verticals, and it will not run for an IMG Pixel or a Pixel loaded inside an iframe. If any of those describe your setup, manual Advanced Matching or a server feed is the route. Advanced Matching is also not a replacement for the Conversions API: the Pixel still loses signal to ad blockers and cookie limits, so the strongest setups run Advanced Matching in the browser and a server feed together, which is exactly what the next section covers.",[12,570,572],{"id":571},"which-setup-path-sends-richer-server-data","Which setup path sends richer server data",[17,574,575],{},"The step-by-step below presumes a custom server integration, which is the most flexible option and also the heaviest. It is not the only one, and for many stores it is not the right first move. Meta supports several ways to send server events, and they trade effort against control.",[101,577,578,594],{},[104,579,580],{},[107,581,582,585,588,591],{},[110,583,584],{},"Setup path",[110,586,587],{},"Effort",[110,589,590],{},"Control",[110,592,593],{},"Best for",[123,595,596,610,622,635],{},[107,597,598,601,604,607],{},[128,599,600],{},"Commerce platform integration",[128,602,603],{},"Lowest, a few clicks",[128,605,606],{},"Lower",[128,608,609],{},"Stores on a platform with a built-in Conversions API connection",[107,611,612,615,617,619],{},[128,613,614],{},"Partner or tag-manager integration",[128,616,316],{},[128,618,177],{},[128,620,621],{},"Sites already managing tags through a supported partner",[107,623,624,627,630,632],{},[128,625,626],{},"Conversions API Gateway",[128,628,629],{},"Medium, self-service",[128,631,177],{},[128,633,634],{},"Teams that want server events without building an integration",[107,636,637,640,643,646],{},[128,638,639],{},"Direct code integration",[128,641,642],{},"Highest, needs a developer",[128,644,645],{},"Highest",[128,647,648],{},"Custom stacks that need every parameter shaped by hand",[17,650,651],{},"If you run on a commerce platform with a native Conversions API connection, turning it on is close to a checkbox and costs nothing extra, and it forwards the order data the platform already holds. The Conversions API Gateway is Meta's own self-service, code-free option inside Events Manager: it stands up a server-side endpoint for you, so you get server events without a developer building and maintaining the pipe. A partner or tag-manager integration suits teams who already route their tags that way. A direct code integration is the heaviest lift and the one that hands you total control over which parameters you send and how each one is normalized, which is why it is the path the worked example below follows (Meta Business Help Center, Compare Conversions API Setup Options, 2026).",[17,653,654],{},"The point is not that one path wins. It is that a low EMQ is rarely a reason to hire an engineer first. Start with Advanced Matching and the lowest-effort server path your stack supports, measure the score, and only reach for a custom build when you need parameters those options cannot send. One related task often gets bundled in here: verify your domain in Business settings. Domain verification feeds Aggregated Event Measurement, which governs how events are attributed and prioritized when people opt out of tracking. It does not move the EMQ score itself, but it is part of the same job of making Meta trust your data, so handle it alongside your matching work.",[12,656,658],{"id":657},"a-step-by-step-fix-that-holds-up","A step-by-step fix that holds up",[17,660,661],{},"Improving EMQ is less a single switch than a short, repeatable loop. Here is the sequence that works without breaking your reporting.",[17,663,664],{},"Start by auditing each high-value event in Events Manager. Open the event, read its current match score, and note which customer information parameters Meta says it is receiving. You are looking for the gap between what your checkout collects and what your server actually sends. Nine times out of ten the email is present but the phone, name or address is being dropped somewhere in the payload.",[17,666,667],{},"Next, fix the deduplication contract before you add volume. Send the same event from both the Pixel and the Conversions API using an identical event_id and event_name; Meta counts the pair once when they arrive within 48 hours (Meta for Developers, 2025). Get this wrong and you either double-count conversions or, worse, suppress the server event that carries your richest data. The event_id handshake is the contract that keeps your richest server event from being discarded as a duplicate.",[17,669,670],{},"Then enrich the payload. Add hashed email, phone, first and last name, zip, city, country and external_id to your Purchase and Lead events, plus the fbc and fbp cookies forwarded from the browser. Confirm every value is normalized and SHA-256 hashed before it leaves your server. Fire a few test events and watch the Test Events tab to verify the parameters arrive intact.",[17,672,673,674,678],{},"Finally, wait, then re-judge. EMQ in Events Manager typically refreshes within 24 to 48 hours, but the delivery effects take longer, often a week or two, as Meta re-optimizes on the cleaner signal. This patience matters most when you are running creative tests, because a CPA drop driven by better matching can be mistaken for a winning ad if you read results too early. Once the signal settles, you can trust your ",[27,675,677],{"href":676},"\u002Fblog\u002Ffacebook-ad-creative-testing","creative testing"," reads again, because you are comparing ads on accurate conversion data rather than noise. The same enriched signal feeds custom audiences and lookalikes, so the gains compound across the account.",[12,680,682],{"id":681},"common-mistakes-that-keep-scores-stuck","Common mistakes that keep scores stuck",[17,684,685],{},"A handful of errors account for most stubborn low scores, and they are easy to miss because the integration looks healthy on the surface.",[17,687,688],{},"Sending raw, unhashed identifiers is the first. Meta expects SHA-256 hashes for email, phone and name; if your server sends plain text, those events are rejected or unmatched, and you may not see an obvious error. The second is skipping normalization: an email with a trailing space, a phone number without the country code, or inconsistent casing all hash to values that match nothing. The third is dropping the click ID. Many server-side setups forget to forward the fbc cookie, which throws away one of the highest-weight parameters for click-through attribution.",[17,690,691],{},"The fourth mistake is over-reading early. The score is not real-time, so changing parameters and refreshing the dashboard ten minutes later tells you nothing. The fifth is chasing the score on the wrong events, pouring effort into lifting a PageView from 3 to 4 while the Purchase event that funds the account sits ignored. And the sixth is ignoring consent: if you withhold identifiers for users who opted out, that is correct behavior, and a slightly lower aggregate score with clean consent beats a higher one built on data you had no right to send.",[17,693,694,695,699],{},"If your account is also wrestling with delivery problems rather than pure matching, the patterns in the ",[27,696,698],{"href":697},"\u002Fblog\u002Ffacebook-ad-not-delivering","ads not delivering guide"," are worth a read alongside this, since weak signal and weak delivery often travel together.",[12,701,703],{"id":702},"a-pre-launch-emq-checklist","A pre-launch EMQ checklist",[17,705,706],{},"Before your next campaign goes live, run through this list for each high-value event. It takes ten minutes and saves weeks of muddy data.",[708,709,710,713,716,719,722,725,728,731],"ul",{},[53,711,712],{},"Open Events Manager and record the match score on Purchase and Lead events, comparing it against your own last reading rather than a published pass mark (Meta does not set one; 7 or higher is a practitioner convention).",[53,714,715],{},"Verify the server payload includes hashed email, phone, first name, last name, zip, city, country and external_id, plus forwarded fbc and fbp cookies.",[53,717,718],{},"Check that every identifier is normalized (lowercase, trimmed, full international phone format) before SHA-256 hashing.",[53,720,721],{},"Confirm Pixel and Conversions API events share the same event_id and event_name so the 48 hour deduplication works.",[53,723,724],{},"Use the Test Events tab to fire a live event and confirm each parameter arrives, with no rejected or malformed fields.",[53,726,727],{},"Respect consent: withhold identifiers for opted-out users rather than padding the score.",[53,729,730],{},"Wait 24 to 48 hours for EMQ to refresh, then allow a week or two before judging the delivery and cost effects.",[53,732,733],{},"Re-baseline your creative tests on the improved signal so a matching-driven CPA change is not mistaken for a creative win.",[17,735,736],{},"Strong Event Match Quality is unglamorous infrastructure, but it is the layer that decides whether everything above it tells the truth. Get the identifiers right on the events that matter, give the system time to settle, and the rest of your account, from lookalikes to fatigue reads, starts working on data you can actually trust. A connected platform such as AdPlay.ai can then re-judge each creative test on that cleaner signal, but the score itself is yours to earn through the data you choose to send.",{"title":738,"searchDepth":739,"depth":739,"links":740},"",2,[741,742,743,744,745,746,747,748,749,750],{"id":14,"depth":739,"text":15},{"id":44,"depth":739,"text":45},{"id":67,"depth":739,"text":68},{"id":92,"depth":739,"text":93},{"id":213,"depth":739,"text":214},{"id":555,"depth":739,"text":556},{"id":571,"depth":739,"text":572},{"id":657,"depth":739,"text":658},{"id":681,"depth":739,"text":682},{"id":702,"depth":739,"text":703},null,"neutral","A practical 2026 guide to raising your Meta Event Match Quality (EMQ) score: which first-party parameters to send, benchmark scores by event, and how cleaner matching lowers CPA.",[755,759,763],{"brand":756,"hook":757,"format":758},"Skinlycious","Before and After ad for clearer skin after a four-week serum routine","Video",{"brand":760,"hook":761,"format":762},"Fitness Achievers","Announcement ad for: book a free trial session at your nearest studio","Static",{"brand":764,"hook":765,"format":766},"UR Klinik","Testimonial ad for a confidence lift after an aesthetics consultation","UGC","md",[769,772,775,778,781,784,787,790],{"question":770,"answer":771},"What is a good Event Match Quality score?","Meta calculates the score from 0 to 10 per server event and does not publish a single pass mark, so read it event by event rather than chasing a perfect 10. For high-value events like Purchase and Lead, practitioners commonly treat 7 or higher as healthy, because those events should carry email, phone, name and address collected at checkout. Top-of-funnel events such as PageView and ViewContent naturally score lower, often in the mid single digits, because anonymous visitors offer fewer identifiers. The number reflects both the quality of the customer information you send and the share of event instances Meta could match to real accounts.",{"question":773,"answer":774},"Why is my EMQ low even though Conversions API is connected?","A connected integration only confirms events are arriving, not that they carry rich identifiers. The most common cause of a low score is sending events with just an IP address and user agent while leaving email, phone and the click ID empty. Check whether your server payload actually includes hashed email (em), phone (ph), first and last name, zip, city and the fbc and fbp cookies. If those fields are blank or malformed, the score stays stuck regardless of event volume.",{"question":776,"answer":777},"Does a higher EMQ score directly lower my CPA?","Not mechanically, but the link is real. EMQ feeds Meta's delivery system: the more events it can match to actual accounts, the more accurately it learns who converts and the better it optimizes. Meta has reported, on a directional basis, that advertisers with a web Conversions API setup saw an average 17.8% lower cost per result. Treat that as a tendency rather than a guarantee, since creative, offer and audience still drive most of your cost.",{"question":779,"answer":780},"Which parameters matter most for matching?","Email and the Facebook click ID (fbc) consistently carry the most weight, followed by phone number and the browser ID (fbp). After those, name, zip and external_id add meaningful lift, while city, state, country, IP and user agent provide supporting signal. The practical rule is to send every identifier you legitimately hold, properly normalized and hashed, rather than guessing which single field will move the score.",{"question":782,"answer":783},"How long does EMQ take to update after I add parameters?","The score is not real-time. Most accounts see Events Manager refresh within 24 to 48 hours of firing events with the new parameters, and the number usually stabilizes within a few days as enough volume accumulates. Algorithmic effects on delivery and cost take longer, typically a week or two, because Meta needs to re-optimize on the cleaner signal. Avoid judging the change the same afternoon you ship it.",{"question":785,"answer":786},"Do I still need the Meta Pixel if I run the Conversions API?","Yes. Meta recommends running both and deduplicating them. The Pixel captures browser-side signals like the fbc and fbp cookies and real-time behavior, while the Conversions API sends server-side data that survives ad blockers and cookie limits. Send the same event from both with a shared event_id and event_name, and Meta counts it once within a 48 hour window. Removing the Pixel usually drops your match quality because you lose the click and browser identifiers it collects.",{"question":788,"answer":789},"Is sending more customer data a privacy risk?","All identifiers sent through the Conversions API should be hashed with SHA-256 before they leave your server, so Meta never receives raw email or phone values. You still need a lawful basis and clear consent to collect and share that data, and you should respect user opt-outs by withholding identifiers when consent is absent. Enriching EMQ is about sending the data you are already permitted to hold, normalized correctly, not about harvesting new fields you have no right to use.",{"question":791,"answer":792},"How do I check my Event Match Quality score?","Open Events Manager, click the Data Sources icon and select your Pixel or dataset by name. Find the high-value event such as Purchase or Lead, click View details, then open the Event Quality tab. It shows that event's score out of 10 and lists exactly which customer information parameters Meta received, so you can see which fields are missing. Scores use the last 48 hours of data, so send events regularly and check a day or two after a change rather than the same hour. Read the score per event, not as one account-wide average, because Meta optimizes each campaign toward a single event.","\u002Fimages\u002Fblog\u002Fmeta-event-match-quality-emq-hero.webp","You launched the Conversions API, the dashboard glows green, and yet your Purchase event sits at a 4.5 match score while CPA creeps up. EMQ is the quiet number that decides how many of your conversions Meta can actually credit back to your ads. Fix the inputs and the same creative tests suddenly read on cleaner signal, attribution sharpens, and cost per result tends to fall.",{},true,"\u002Fblog\u002Fmeta-event-match-quality-emq","2026-09-13",{"title":5,"description":753},[801,805,808,811,814,817,821,824,828,831,834],{"label":802,"url":803,"year":804},"Meta Business Help Center, About Event Match Quality","https:\u002F\u002Fwww.facebook.com\u002Fbusiness\u002Fhelp\u002F765081237991954","2025",{"label":806,"url":807,"year":804},"Meta for Developers, Dataset Quality API (Conversions API)","https:\u002F\u002Fdevelopers.facebook.com\u002Fdocs\u002Fmarketing-api\u002Fconversions-api\u002Fdataset-quality-api\u002F",{"label":809,"url":810,"year":804},"Meta for Developers, Handling Duplicate Pixel and Server Events","https:\u002F\u002Fdevelopers.facebook.com\u002Fdocumentation\u002Fads-commerce\u002Fconversions-api\u002Fdeduplicate-pixel-and-server-events",{"label":812,"url":813,"year":804},"PPC.land, Meta upgrades Pixel and Conversions API to close the gap for small advertisers","https:\u002F\u002Fppc.land\u002Fmeta-upgrades-pixel-and-conversions-api-to-close-the-gap-for-small-advertisers\u002F",{"label":815,"url":816,"year":804},"Ruler Analytics, How Cookie Deprecation Is Breaking Your Conversion Tracking","https:\u002F\u002Fwww.ruleranalytics.com\u002Fblog\u002Freporting\u002Fcookie-deprecation-conversion-tracking\u002F",{"label":818,"url":819,"year":820},"Apple WebKit, Intelligent Tracking Prevention 2.1","https:\u002F\u002Fwebkit.org\u002Fblog\u002F8613\u002Fintelligent-tracking-prevention-2-1\u002F","2019",{"label":822,"url":823,"year":820},"Apple WebKit, Intelligent Tracking Prevention 2.2","https:\u002F\u002Fwebkit.org\u002Fblog\u002F8828\u002Fintelligent-tracking-prevention-2-2\u002F",{"label":825,"url":826,"year":827},"Meta for Developers, Conversions API Customer Information Parameters","https:\u002F\u002Fdevelopers.facebook.com\u002Fdocs\u002Fmarketing-api\u002Fconversions-api\u002Fparameters\u002Fcustomer-information-parameters\u002F","2026",{"label":829,"url":830,"year":827},"Meta Business Help Center, Set up automatic advanced matching in Meta Events Manager","https:\u002F\u002Fwww.facebook.com\u002Fbusiness\u002Fhelp\u002F1993001664341800",{"label":832,"url":833,"year":827},"Meta Business Help Center, Compare Conversions API Setup Options","https:\u002F\u002Fwww.facebook.com\u002Fbusiness\u002Fhelp\u002F433493041367251",{"label":835,"url":836,"year":827},"Meta Business Help Center, View Server Event Details in Meta Events Manager","https:\u002F\u002Fwww.facebook.com\u002Fbusiness\u002Fhelp\u002F1541268312717919",[838,842,846,850,854,858,862],{"label":839,"value":840,"source":841},"Scale Meta calculates each server event's match quality on, from the data quality you send and the share of event instances matched to accounts","0 to 10","Meta Business Help Center, About Event Match Quality, 2025",{"label":843,"value":844,"source":845},"Average lower cost per result reported for advertisers with a web Conversions API setup (directional, Meta-reported)","17.8%","PPC.land, citing Meta, 2025",{"label":847,"value":848,"source":849},"GA4 revenue underreporting versus the backend for businesses with significant Safari and iOS traffic, where browser-side tracking degrades","15% to 30%","Ruler Analytics, Cookie Deprecation and Conversion Tracking, 2025",{"label":851,"value":852,"source":853},"Cap Safari Intelligent Tracking Prevention places on JavaScript-set first-party cookies","7 days","Apple WebKit, Intelligent Tracking Prevention 2.1, 2019",{"label":855,"value":856,"source":857},"Cap ITP applies to script-set cookies on landings that carry ad-click query parameters such as fbclid","24 hours","Apple WebKit, Intelligent Tracking Prevention 2.2, 2019",{"label":859,"value":860,"source":861},"Window in which a Pixel and a Conversions API event sharing event_id and event_name are counted once","48 hours","Meta for Developers, Handling Duplicate Pixel and Server Events, 2025",{"label":863,"value":864,"source":865},"Customer information parameters Meta requires, correctly formatted, for a server event to be eligible to match at all","At least 1","Meta for Developers, Conversions API Customer Information Parameters, 2026","blog\u002Fmeta-event-match-quality-emq","LAWeInnYREpe_lPDt8HnQteT0xh9Ysq14xHmi5mP6Yc",1786093697830]