Skip to content
feedlab Request early access

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
CSV TSV XML (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

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.

Last reviewed View as markdown