Facebook and Instagram catalogs.
Meta reads one product catalog for everything commerce: catalog ads, shops on Facebook and Instagram, product tagging. The catalog feed decides what can be advertised and what can be tagged, and Commerce Manager rejects quietly: a record that fails simply never appears.
Meta's rules are stricter than Google's in two places: brand is required on every product, and availability takes only in stock or out of stock. Ids are case-sensitive, so abc123 and ABC123 are two different products to Meta.
Generated from the Ducted Meta Product Catalog template, the same field rules your mapping is validated against.
63 fields: 9 required, 3 recommended, 51 optional. 6 fields change level with the market, the product or how the record is sent.
| Field | Level | Accepted values / example |
|---|---|---|
| id | required | 12345 |
| title | required | Blue Cotton T-Shirt |
| description | required | |
| availability | required | in stock · out of stock |
| condition | required | new · refurbished · used |
| price | required | 9.99 USD |
| link | required | |
| image_link | required | |
| brand | required | |
| size | optional recommended for clothing and shoes sold through Shops checkout in the US | |
| google_product_category | recommended | |
| mpn | recommended recommended for products without a GTIN | MPN-12345 |
| gtin | recommended | 4006381333931 |
| origin_country | optional required for selling with Shops or on WhatsApp in India | US |
| importer_name | optional recommended for Indian sellers (Shops or WhatsApp) whose products are not made in India | Jasper's Market Inc. |
| importer_address | optional recommended for Indian sellers (Shops or WhatsApp) whose products are not made in India | { street1: "1 Hacker Way", street2: "Building 18", city: "Menlo Park", region: "CA", postal_code: "94025", country: "US" } |
| manufacturer_info | optional recommended for Shops sellers in India | The Manufacturer Co. - 1 Hacker Way, Menlo Park, CA 94025 USA |
Field rules from the official spec, verified 2026-10-02.
Also supported, always optional (46): quantity_to_sell_on_facebook, expiration_date, sale_price, sale_price_effective_date, item_group_id, status, color, gender, age_group, material, pattern, additional_image_link, product_type, internal_label, custom_label_0, custom_label_1, custom_label_2, custom_label_3, custom_label_4, custom_number_0, custom_number_1, custom_number_2, custom_number_3, custom_number_4, rich_text_description, fb_product_category, shipping, shipping_weight, vendor_id, additional_variant_attribute, unit_price, mobile_link, applink.ios_url, applink.ios_app_store_id, applink.ios_app_name, applink.android_url, applink.android_package, applink.android_app_name, applink.windows_phone_url, applink.windows_phone_app_id, applink.windows_phone_app_name, applink.ipad_url, applink.ipad_app_store_id, applink.ipad_app_name, disabled_capabilities, wa_compliance_category
brand is required on every product, with no identifier_exists exemption. A feed built for Google that leaves it empty for unbranded goods fails those records on Meta.
Meta takes exactly two values. preorder, backorder, or the underscored in_stock from a Google feed, all reject.
Meta requires descriptions of 30 to 9,999 characters; a shorter one is flagged. Titles over 65 characters are not rejected but get truncated in the ad, so the health check recommends shortening them.
new, refurbished and used are the accepted values. "Pre-owned", "like new" or an empty cell rejects the record, because condition is required.
Not a feed rejection but the most expensive miss: the catalog uploads cleanly and retargeting silently never fires.
One mapped catalog serves every channel; each page covers what that platform's feed needs.
Connect a source and serve Meta from the same project as every other channel, or check your current catalog feed free.