0% Catalog Match Rate — Facebook & Instagram app sends parent product ID as content_ids, but catalog uses variant ID

Hi all,

I’m running into the same 0% catalog match rate issue that’s been reported by several others here over the past couple years (linking a few below), and after a lot of digging with both Shopify and Meta support, I want to document exactly what’s happening in case it helps someone else — or gets picked up by Shopify’s team.

The issue: Purchase, AddToCart, and ViewContent events all show as “not received” in Meta Commerce Manager, with catalog match rate stuck at 0%, even though the pixel is confirmed active and receiving events.

Root cause I found: I intercepted the actual pixel event fired on my product pages. For a product with:

  • Parent product ID: 10754945777976
  • Variant ID: 52577923432760

The AddToCart event sends content_ids: [10754945777976] (the parent product ID) with content_type: "product_group". But in Commerce Manager, that catalog item’s actual Content ID is 52577923432760 (the variant ID). Since the event references the wrong ID level, Meta can’t match it to the catalog item — even though the event is firing correctly and reaching Meta (confirmed via Events Manager showing “pixel is receiving events”).

What I’ve ruled out:

  • Duplicate/conflicting pixels — checked Settings > Customer Events, only one official Facebook & Instagram pixel installed, no third-party apps like Elevar/Trackify
  • Data sharing level — tried bumping from Enhanced to Maximum, no change
  • Meta-side settings — there’s no “Content ID preference” option in Commerce Manager for catalogs synced via the Shopify Partner integration; that setting only appears to be available for manually-managed feeds

What support said: Shopify confirmed the pixel is sending parent IDs as expected behavior but said the fix needs to happen in Meta Commerce Manager. Meta’s support said the Content ID setting is locked because it’s a Shopify-managed catalog, and that alignment needs to happen on Shopify’s side. Neither could actually resolve it.

This looks like a genuine bug in how the Facebook & Instagram app generates events versus how it syncs the catalog — two parts of the same integration disagreeing with each other on ID format.

Related threads with the same symptom, going back to 2023:

Has anyone actually found a fix, or is this something Shopify needs to patch on their end? Would appreciate any insight, and happy to share more diagnostic detail if useful.

You did the hard part already by intercepting the actual event, so here is the piece that reframes it. content_type and content_ids are a pair in Meta’s model. When the event is product_group, Meta matches the id against item_group_id in the catalog, not against the variant level Content ID. The Shopify managed feed sets the variant id as the item id (your Content ID) and the parent product id as item_group_id. So a product_group event carrying the parent id is actually lining up with item_group_id, and the catalog match rate card in Commerce Manager measures product level (variant id) matches, which is why it can sit at 0% even when group level matching is working.

Before assuming it is broken, check whether your Advantage+ or dynamic product ads are actually retargeting people who viewed items. If they are, the 0% is mostly a measurement artifact on that one card rather than lost matches.

If you genuinely need variant level matching, or you just want that card to read correctly, the lever is a custom pixel. Settings, Customer events, add a custom pixel that fires AddToCart and Purchase with content_type product and content_ids set to the variant id, then dedupe it against the channel pixel with a shared event_id so you do not double count. You cannot reconfigure what the Facebook and Instagram channel emits, so adding your own correctly shaped events next to it is the only real control you have.

Are you running variant level catalog ads, or is this group level retargeting where the 0% might not actually be costing you matches?

hi. this is a real issue and i have seen some other merchants complain about the same. in this problem, the native app fires the parent-level content_ids while your shopify catalog lists products by their variant id. because of this, the two never match and the match rate stays at 0%.

the only workaround that i see to this is a third-party Shopify Facebook pixel app. for example, for my store, i use Meta & Facebook Pixels by Nabu. it allows to configure content ID setting where i can easily send the variant ID as content ID for all products.

this one change will help you line up with how your catalog is built