Skip to main content

Facebook Catalog (Meta Commerce)

Use the auto-generated DZBuild product feed in Meta Commerce Manager, run Dynamic Product Ads, and tag products in Instagram Shopping.

Written by Support

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.

  1. Open /dashboard/addons → the Facebook Catalog card → Configure (or go straight to /dashboard/addons/facebook-catalog).

  2. 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.xml

  • Otherwise: 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

  1. Add catalog → category: E-commerce.

  2. Upload product infoUse a data feed.

  3. Paste your DZBuild feed URL.

  4. Set fetch frequency to Daily (Meta's default; lower frequencies are paid).

  5. 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

  1. In Commerce Manager, link your Instagram Business account.

  2. Submit the account for review (Instagram approves shopping accounts; can take days).

  3. 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:

  1. In Meta Ads Manager, create a campaign with objective Sales.

  2. Ad set → audience: Retargeting = "viewed product but didn't purchase" (Meta builds this from Pixel data).

  3. Ad → creative → Catalog → select your DZBuild catalog.

  4. 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

g:id

Numeric DZBuild product ID

g:title

Product name

g:description

Short description → otherwise the full description with HTML stripped → otherwise the product name

g:link

Product page URL

g:image_link

Primary product image

g:additional_image_link

Up to 10 more images from the product gallery

g:availability

in stock / out of stock

g:price / g:sale_price

See the sale-price note below

g:condition

From add-on settings (new / refurbished / used)

g:brand

From add-on settings; defaults to your store name

g:product_type

The product's primary category name

g:mpn

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.

Did this answer your question?