When you run dynamic Meta ads, Meta matches the content IDs fired by your Facebook Pixel against the product IDs in your Meta catalog feed. If those IDs don’t line up, your ads won’t retarget the right products — or won’t retarget at all.
This guide explains how Product Feed Pro keeps your Pixel and catalog aligned, what the critical mapping requirement is, and how content IDs are handled for each WooCommerce product type.
For a full walkthrough of enabling the Facebook Pixel in Product Feed Pro, see How to Set Up Facebook Pixel Tracking with Product Feed Pro.
Prerequisites
| Requirement | Notes |
|---|---|
| Product Feed Pro | The Pixel integration is built into Product Feed Pro. Make sure the plugin is installed and active. |
| Facebook Pixel enabled | The Pixel must be enabled with a Pixel ID entered before alignment is relevant. If you haven’t set this up yet, follow How to Set Up Facebook Pixel Tracking with Product Feed Pro first. |
| A Meta catalog feed | You need an active Facebook/Meta product feed created in Product Feed Pro that is connected to your Meta Commerce Manager catalog. |
Why keeping the Pixel and catalog in sync matters
The Facebook Pixel fires events (ViewContent, AddToCart, Purchase) that include a content_ids parameter, a list of product IDs the visitor interacted with. Your Meta catalog feed also exports product IDs. Meta uses both to power dynamic product ads and retargeting.
If content_ids from the Pixel doesn’t match the id field in your catalog, Meta cannot link the event to the right product. This breaks:
- Dynamic product ads — Meta can’t serve the correct product creative.
- Retargeting audiences — visitors aren’t associated with the products they viewed.
- Event matching — your campaign reporting may undercount conversions.
Step-by-step guide to sync Facebook Pixel with your catalog
Step 1: Verify Pixel events on product pages
After enabling the Pixel, each product page should trigger a ViewContent event similar to this:
fbq("track", "ViewContent", {
content_category: "Accessories",
content_ids: ["4091"],
content_name: "Red Shoe",
content_type: "product",
currency: "EUR",
value: "69.00",
});
The important parameter here is content_ids. This value must match the product ID used in your Facebook catalog feed.
Example:
content_ids = 4091
The same ID must appear in your catalog feed.
Step 2: Map the correct product ID in your feed
To ensure they stay in sync, map the catalog feed attribute correctly.
Correct mapping:
id → Product ID

Step 3: Check Pixel behavior for different product types
The Pixel behaves differently depending on the product type in WooCommerce.
Simple products
For simple products, the Pixel sends the product’s main ID.
Example:
content_ids: ["20259"]
content_type: "product"
This ID matches the same product ID in the catalog feed.
Variable parent products
For variable products, the Pixel sends the IDs of all variations.
Example:
content_ids: ["44080","44081","44082","44083"]
content_type: "product_group"
(These are the individual variation IDs of the variable product — the Pixel sends all of them when the variable product’s parent page is viewed without a variation selected.)
This informs Facebook that the product has multiple variations, allowing the catalog to match any of them when the parent page is viewed.
Variant (child) products
When a specific variation is viewed, the Pixel sends the individual variation ID.
Example:
content_ids: ["28876"]
content_type: "product"
That ID must match the variation ID used in your catalog feed.
Step 4: Track add-to-cart events
The plugin also tracks AddToCart events when users add products to their cart.
This lets Facebook:
- Build remarketing audiences
- Trigger abandoned cart campaigns
- Optimize ads for conversions
Once enabled, your Pixel tracks these interactions automatically across your site.
To verify AddToCart tracking is working: add a product to your cart and confirm an AddToCart event appears in Meta Pixel Helper with content_ids the matching product.
Testing your Pixel and catalog sync
After completing the setup, verify everything works correctly.
Recommended testing steps
- Install the Meta Pixel Helper Chrome extension.
- Visit several product pages on your website.
- Check that:
ViewContentevents are triggeredcontent_idsvalues appear correctly
- Confirm the product IDs match the catalog feed.
If the IDs match, Facebook will be able to correctly serve dynamic ads for those products.
Common issues and how to fix them
g:id in your catalog feed is mapped to Product ID (not SKU or another field).2. Open Meta Events Manager → Test Events and browse a product page on your store. Note the
content_ids value.3. For variable parent pages (no variation selected), also verify that
content_type shows "product_group" in Meta Pixel Helper or Test Events. If it shows "product" instead, the Pixel is not correctly identifying the variable product type, which will cause mismatches in dynamic ads.4. Open Meta Commerce Manager and find the same product. Check its id field.
5. If the IDs differ, compare the Content IDS variable products Facebook Pixel setting (in Product Feed → Settings → General) with how your catalog feed maps
g:id.– Check that the product is active and approved in the catalog — inactive products won’t be matched even if IDs align.
– If you use a multilingual setup (WPML, Polylang), make sure the feed and Pixel are both using the same language version of product IDs.
– The catalog isn’t connected to the same Pixel, or the catalog hasn’t finished its first sync. In Meta Commerce Manager, check that your data source (feed) is connected and that the Pixel is associated with the same Business Portfolio as the catalog.
– The catalog feed is fetching into a different Business Portfolio than the Pixel is assigned to. Verify in Meta Business Settings that both the Pixel and the catalog are listed under the same Business Portfolio.
Frequently asked questions
content_ids by default, so mapping g:id to SKU will break alignment unless you have also customised the Pixel to send SKUs — which requires custom development and is not supported out of the box.g:id rather than variation IDs, you must also change the Content IDS variable products Facebook Pixel setting to Variable product ID so the Pixel sends matching parent IDs. See How to Set Up Facebook Pixel Tracking with Product Feed Pro for the exact steps.content_ids as the browser Pixel. If you’ve enabled CAPI in Product Feed Elite, the same mapping and product-type rules apply. For CAPI setup, see How to Set Up Facebook Conversion API (CAPI) with Product Feed Elite.Need more help?
Product Feed Elite users: if this doesn’t resolve the mismatch, open a new support ticket and our team will take a look.
Free Product Feed Pro users: open a new topic in the WordPress.org support forum.


