Catalogue match rate is the percentage of product IDs in your website events that Meta can find in your connected catalogue. When someone views, adds to basket or buys a product, your tracking sends that product’s ID; if the same ID exists in the catalogue, the event matches.
How catalogue match rate works
Ecommerce events such as ViewContent, AddToCart and Purchase can carry a field called content_ids, listing the products involved. These events reach Meta through the Meta Pixel in the browser and, ideally, the Conversions API from your server. Meta compares each ID with the item IDs in the catalogue the events are connected to, and reports the share that matched for each event type.
You will find it in Commerce Manager, on the catalogue’s events view, and in the diagnostics for the dataset in Events Manager. It is reported per event, so ViewContent can match well while Purchase matches badly, which usually points to a different piece of code firing each event.
Matching is literal. The catalogue item “SKU-1042-M” and a pixel ID of “1042” are, as far as Meta is concerned, two different products.
Why it matters for a UK business
Catalogue ads depend on knowing which products each person looked at. If most IDs do not match, Meta cannot show a shopper the trainers they viewed yesterday, so retargeting falls back to generic products or fails to reach people at all. Product-level reporting also goes wrong: sales are recorded without being tied to the items that sold.
A low match rate is often invisible from the ad side. Campaigns run, spend goes out, and the only sign is that catalogue ads feel weaker than expected. For a UK shop running a promotion over a short window such as Boxing Day, a week lost to an ID mismatch is a week of retargeting that never happened.
Common mistakes
- Sending variant IDs from the pixel while the feed lists parent product IDs, or the other way round.
- A feed built by one app and a pixel installed by another, each using its own ID format, such as a prefixed ID in one and a plain number in the other.
- Events that fire without content_ids at all, common on custom checkout pages.
- Connecting the pixel to an old or duplicate catalogue instead of the live one.
- A content_type of product when the IDs are really product group IDs.
How to act on it
Open the match rate per event and note which are low. Then take one product and compare three things: its ID in the catalogue, the ID your pixel sends on its product page (Meta Pixel Helper or the Test Events tool in Events Manager will show it), and the ID sent at purchase.
Decide which ID format is the source of truth, usually whatever your shop platform’s Meta integration uses, and make the other side match it. Fix the events, not the catalogue, when the catalogue is maintained by a sync you trust. After the change, give it a few days of traffic before judging the new rate, because it is calculated on recent events.
This check is one of the first things I do before launching catalogue and dynamic product ads, because no amount of creative work makes up for ads that cannot find the right products.
