Meta Product Catalog Feed Specification

Meta (Facebook and Instagram) uses product catalogs to power dynamic ads, Instagram Shopping, Facebook Shops, and Marketplace listings. Catalogs are managed through Commerce Manager and accept product data via CSV/TSV feed files, the Catalog Batch API, or pixel/SDK events.

Required Fields

All products must include these fields. Products missing required fields are rejected from the catalog.

FieldFormatDescriptionExample
idString, max 100 charsUnique product identifier. Maps to content_id in the Meta Pixel. Must remain stable across feed updates.product_1234
titleString, max 200 charsProduct name. Displayed in ads and shop listings. Include brand and key attributes for discoverability.Nike Air Max 90 - Black/White
descriptionString, max 9999 charsProduct description. Plain text only, no HTML. Used in product detail pages and ad copy generation.Classic Air Max 90 with visible Air cushioning unit...
availabilityEnum: in stock, out of stock, available for orderStock status. Note: uses spaces, not underscores (differs from Google). Must match landing page.in stock
conditionEnum: new, refurbished, usedProduct condition. Required for all catalog items.new
priceNumber + ISO 4217 currency codeProduct price with currency. Format: "129.99 USD". Must match landing page price.129.99 USD
linkURLProduct page URL. Must link to a page where the product can be purchased. Verified domain required.https://example.com/product/1234
image_linkURL, min 500x500px recommendedMain product image. Square images (1:1) recommended. No text overlays, watermarks, or borders.https://example.com/images/product-1234.jpg
brandString, max 100 charsBrand name. Required for branded products. Use store name for private-label items.Nike

content_id Mapping

The id field in the catalog feed must match the content_id parameter sent by the Meta Pixel or Conversions API. This mapping enables dynamic retargeting -- showing users the specific products they viewed or added to cart.

Event SourceParameterMust Match
Meta Pixel (ViewContent, AddToCart, Purchase)content_idsCatalog feed id field
Conversions APIcontent_idsCatalog feed id field
Facebook SDK (Mobile)fb_content_idCatalog feed id field

Field Comparison: Meta vs Google Merchant

AttributeGoogle MerchantMeta CatalogDifference
Availability valuesin_stock, out_of_stockin stock, out of stockSpaces vs underscores
Title length150 chars200 charsMeta allows longer titles
Description length5,000 chars9,999 charsMeta allows longer descriptions
ID length50 chars100 charsMeta allows longer IDs
Image minimum size100x100 px500x500 px recommendedMeta needs larger images
Category fieldgoogle_product_categorygoogle_product_category (accepted) or fb_product_categoryMeta accepts Google taxonomy

Catalog Batch API

The Catalog Batch API allows programmatic product updates without uploading a full feed file. Send individual product creates, updates, or deletes via HTTP POST requests.

POST /{catalog_id}/items_batch

{
  "requests": [
    {
      "method": "UPDATE",
      "retailer_id": "product_1234",
      "data": {
        "availability": "in stock",
        "price": "129.99 USD",
        "sale_price": "99.99 USD"
      }
    }
  ]
}

Maximum 5,000 items per batch request. Rate limit: 100 requests per hour per catalog. Use the batch handle returned in the response to check processing status.