This page covers how to use the Facebook Catalog feed. For the add-on's settings screen, see Add-ons → Facebook Catalog.
A product catalog in Meta Commerce Manager unlocks two big channels:
Dynamic Product Ads (DPA) — Meta picks the right product to show each shopper, automatically retargeting cart-abandoners and showing predicted matches to cold traffic.
Instagram Shopping — products become taggable in Instagram posts, Reels, and Stories.
DZBuild auto-generates the XML feed Meta needs. You paste the feed URL into Commerce Manager and Meta does the rest.
Step 1 — get the feed URL
The Facebook Catalog feed is enabled for every store automatically — there is nothing to activate.
Open
/dashboard/addons→ the Facebook Catalog card → Configure (or go straight to/dashboard/addons/facebook-catalog).Copy the feed URL shown at the top.
The URL follows one of two patterns:
With a connected and verified custom domain:
https://your-domain.com/feed/facebook.xmlOtherwise:
https://your-store-slug.dzbuild.app/feed/facebook.xml
⚠️ Warning — Connecting a custom domain changes the feed URL
Once your custom domain is verified, the feed moves to that domain. Update the data-feed source in Commerce Manager, or Meta keeps fetching the old URL and your catalog silently goes stale.
Step 2 — create the catalog in Meta Commerce Manager
Open Meta Commerce Manager.
Add catalog → category: E-commerce.
Upload product info → Use a data feed.
Paste your DZBuild feed URL.
Set fetch frequency to Daily (Meta's default; lower frequencies are paid).
Connect the catalog to your Facebook Page + Pixel + Ad Account.
Meta will fetch the feed, validate it, and your catalog will populate within minutes.
Step 3 — Instagram Shopping
In Commerce Manager, link your Instagram Business account.
Submit the account for review (Instagram approves shopping accounts; can take days).
Once approved, you can tag products in Instagram posts, Reels, and Stories. The tag links back to your DZBuild storefront product page.
Step 4 — Dynamic Product Ads
Once the catalog is live and your Pixel (with CAPI) is firing ViewContent, AddToCart, and Purchase:
In Meta Ads Manager, create a campaign with objective Sales.
Ad set → audience: Retargeting = "viewed product but didn't purchase" (Meta builds this from Pixel data).
Ad → creative → Catalog → select your DZBuild catalog.
Meta dynamically fills the ad with the right product per viewer.
💡 Tip — Catalog-to-pixel matching works out of the box
Catalog item IDs are the numeric DZBuild product IDs, and the pixel sends those same IDs in content_ids — so matching needs no configuration. Do not override content_ids with SKUs or custom IDs, or Catalog Diagnostics will report a 0% match. (The feed links to /product/<id> while the canonical product URL uses the slug; both resolve to the same page.)
What the feed contains
One <item> per product. Fields emitted:
Feed field | Source |
| Numeric DZBuild product ID |
| Product name |
| Short description → otherwise the full description with HTML stripped → otherwise the product name |
| Product page URL |
| Primary product image |
| Up to 10 more images from the product gallery |
|
|
| See the sale-price note below |
| From add-on settings (new / refurbished / used) |
| From add-on settings; defaults to your store name |
| The product's primary category name |
| The product's SKU |
Two things are not emitted: g:google_product_category (some Commerce Manager checks flag its absence as a warning) and g:item_group_id.
Sale price behaviour: when a product has a compare-at price higher than its selling price, the feed puts the compare price in g:price and the real selling price in g:sale_price — so Meta advertises it as a discount with the compare price struck through.
Variant handling
The feed is one item per product, not per variant. Variants (size, colour, …) are not split into separate catalog items and item_group_id is not emitted, so Dynamic Product Ads always show the product's primary image and price — never a specific variant combination.
Practical consequence: make sure the product's primary image and price represent the product well on their own, because that is what every DPA impression will show.
Add-on settings
At /dashboard/addons/facebook-catalog you can set:
Brand — free text. Leave it blank and the feed uses your store name.
Condition — a fixed dropdown: new, refurbished or used. Not free text.
Currency — must be a valid 3-letter ISO code. The form rejects anything else, and if a bad value ever gets through, the feed falls back to
DZD.
The page also shows how many active products, images and categories will go into the feed. Note that this product count still includes hidden products, so it can read slightly higher than the number of items actually in the feed.
Strategies that work in Algeria (COD)
Cart-abandoner retargeting — show the exact product the customer viewed, with a soft reminder copy. Works on customers who left during checkout. Pair with Abandoned cart recovery.
3-day product retargeting — show products viewed in the last 3 days but not purchased. Cap frequency at 5/week — Algerian buyers are sensitive to ad fatigue.
Cross-sell — once a customer buys product A, retarget them with related products in the same category for the next 14 days.
Cold prospecting — feed the catalog into Advantage+ Catalog Ads. Meta's algorithm picks which product to test on which audience. Best for stores with 30+ SKUs.
Frequently asked
Q: Why are products missing from my catalog? A: Draft/archived products and products marked hidden are excluded. Out-of-stock products are included, tagged availability: out of stock — Meta keeps them in the catalog but won't serve them in ads. Products with no image are also included, but they fail Meta's validation, so add at least one image.
Q: How fast does Meta see my updates? A: Meta re-fetches on the schedule you set in Commerce Manager (Daily is the default). On top of that, the feed itself regenerates at most once an hour, so a product edit can take up to an hour to reach it. To publish a change immediately, open /dashboard/addons/facebook-catalog, click Refresh feed, then trigger the fetch in Commerce Manager. Saving the add-on settings also refreshes the feed.
Q: Can I edit fields in the feed? A: The add-on settings let you set Brand, Condition, and Currency. Other fields come from your products — edit the product to change them.
Q: Is there a separate feed per language? A: No. There is exactly one feed per store, in whatever language you entered the product names and descriptions. Adding ?lang=ar or ?lang=fr to the feed URL does nothing — you get the same feed back.
Q: Does the catalog count toward my plan limits? A: No — the feed is generated from your existing products. There's no extra count or fee.
Q: What happens to the feed if my subscription expires? A: The storefront itself is blocked once your subscription expires, so anyone clicking a catalog ad lands on a page where they cannot buy. Don't count on the feed stopping on its own — pause your catalog ads before letting a subscription lapse.