Sales channel
Meta
Feeds are consumed by Meta Commerce Manager catalogue.
Meta's product catalogue is the data source behind Facebook and Instagram Shops, Advantage+ catalogue ads and dynamic retargeting, populated by a product feed uploaded to Commerce Manager. Its attribute names largely mirror Google's, but its accepted values and its handling of variants differ enough to break a feed copied straight across.
Feed specification
- Destination
- Meta Commerce Manager catalogue
- Accepted formats
-
CSVTSVXML (RSS 2.0)XML (Atom 1.0)Google Sheets - Refresh
- Scheduled feeds can be fetched hourly, daily or weekly, which is a finer granularity than Google offers. Meta also supports pushing individual updates through the Catalog Batch API for stock changes that cannot wait for the next scheduled pull.
Attributes for Meta
Every attribute documented in this knowledge base that Meta accepts.
| Attribute | Requirement | Notes |
|---|---|---|
| availability | Required | Also accepts available_for_order and discontinued. |
| brand | Recommended | Brand name |
| condition | Required | Required on every item, unlike Google. |
| custom_label_0 | Optional | Supported for catalogue segmentation in Advantage+ campaigns. |
| description | Required | Product description |
| gtin | Recommended | Improves matching and is required for some Shops surfaces. |
| id | Required | Called "Content ID" in Commerce Manager and in pixel events. |
| image_link | Required | Shops surfaces enforce stricter resolution than catalogue ads. |
| item_group_id | Required in some cases | Drives the variant picker in Shops. |
| link | Required | Product landing page URL |
| mpn | Optional | Manufacturer Part Number |
| price | Required | Product price |
| sale_price | Optional | Sale price |
| title | Required | Limit is shorter in practice for Shops surfaces. |
What catches Shopify merchants out
condition is required, not optional
Google only requires condition when an item is not new. Meta requires it on every item. A feed built to Google's rules and pointed at Meta will fail on every row until condition is mapped.
Availability values have historically differed
Meta's documented values use underscores (in_stock, out_of_stock), matching Google, and its older specification used spaces. Feeds built years ago against the space-separated form still circulate in templates, so check what your source actually emits rather than assuming.
Every variant needs its own row and a shared item_group_id
As with Google, a Shopify product with three sizes is three catalogue items. Meta groups them for the variant picker in Shops through item_group_id, and without it each size appears as an unrelated product.
Image requirements are stricter for Shops
Catalogue ads tolerate most images, but Shops surfaces enforce a minimum resolution and prefer square or near-square crops. Shopify's default product image is whatever the merchant uploaded, so the same feed can pass for ads and fail for Shops.
Common Meta errors
- Duplicate product id A duplicate id error means two or more rows in a feed claim the same identifier, so the channel cannot tell which one describes the item and keeps only the last it processed. On Shopify it usually means the feed was built per product rather than per variant, or that a SKU used as the id is blank or reused across variants.
- Image link cannot be crawled An image crawl failure means the channel could not retrieve the file at image_link, or retrieved it and judged it unusable. On Shopify the URL itself is rarely wrong, so the cause is usually a rate limit hit during a first full crawl, a temporary CDN response, or an image whose content breaks policy rather than one that is genuinely missing.
Frequently asked questions
What is the difference between a Meta catalogue feed and a Google Shopping feed?
The attribute names overlap heavily, but Meta requires condition on every item where Google only requires it for non-new products, and Meta supports hourly scheduled fetches where Google's minimum is daily. Category values also differ: Google uses its own product taxonomy, Meta uses its own category list.
How often can Meta fetch a scheduled catalogue feed?
Meta supports hourly, daily and weekly scheduled fetches. For catalogues where stock moves quickly, hourly fetches combined with the Catalog Batch API for urgent changes keep the catalogue closer to the store than a daily pull can.
Do I need a separate feed for Facebook and Instagram?
No. Facebook and Instagram both read from the same Meta catalogue, so one feed into Commerce Manager serves Shops, catalogue ads and dynamic retargeting across both surfaces.
Primary sources
Channel specifications change. These are the official documents this page is based on.