Reference - Catalog
Updated: Apr 22, 2026
Supported Feed Formats
Inventory should be uploaded to Facebook using a catalog. For each catalog, a product feed should be provided in one of the supported formats: CSV, TSV, RSS XML, ATOM XML, or Google Sheets (see Help Center article for further guidance).
| Format | Description |
|---|---|
CSV | Comma-separated value.
Works with most spreadsheet programs. The first row specifies the column header. Subsequent rows supply the corresponding values for each route. Fields containing whitespace or commas should be enclosed in “double quotes”. A double quote inside a double-quoted field must be escaped with two consecutive double quotes. Example: "Join our ""Royal"" membership program". Nested or multi-value fields, such as image, can be represented using JSON-encoded values or by a set of “flattened” plain-text columns labeled using JSON-path syntax. Example: image[0].url, image[0].tag[0], image[0].tag[1])Both conventions can be used interchangeably in the same file. You can reference our CSV (.csv) example files as you’re creating your feed, but we recommend using Commerce Manager as your primary source. |
TSV | Tab-separated value. Works with most spreadsheet programs. See guidelines for CSV. |
RSS XML | Rich-Site Summary, Extensible Markup Language. A root XML node encloses a set of nodes, each of which represents a route. The file must begin with the declaration tag. The format is typically generated by automated feed provider systems or web servers. A set of item XML nodes represents a product list and must begin with the <?xml declaration tag.Typically generated by automated feed provider systems or web servers. Download (Right-click > Save Link As)If you receive an error, it means that a line in your XML data feed file is too long and exceeds our size limit of 5,242,880 bytes or characters. Please reformat your XML into multiple lines with 1 field per line and upload your file again. For more information, see Troubleshoot Data Feed Errors. |
Atom XML | The Atom Syndication Format is an XML language used for web feeds, while the Atom Publishing Protocol (AtomPub or APP) is a simple HTTP-based protocol for creating and updating web resources. The format is typically generated by automated feed provider systems or web servers. A set of item XML nodes represents a product list and must begin with the <?xml declaration tag.
Typically generated by automated feed provider systems or web servers. See example XML Feed (Atom) for commerce. |
Google Sheets
Commerce Manager also now supports Google Sheets for scheduled feeds:
- Create your data feed as a spreadsheet in Google Sheets and get the shareable link.
- When you add products in Commerce Manager, select the Google Sheets option. Copy and paste in your shareable link and finish your upload.
- Continue managing your inventory in the Google spreadsheet in future and we’ll fetch from it at scheduled times.
Learn More
- How to Create a Data Feed for Your Catalog Using a Template, Help Center
- Data Feed Specifications for Catalogs, Help Center
Example Feeds
Example CSV Feed — Advantage+ Catalog Ads
id,title,description,availability,condition,price,link,image_link,brand,additional_image_link,age_group,color,gender,item_group_id,google_product_category,pattern,product_type,sale_price,sale_price_effective_date,size,FB_product_1234,Facebook T-Shirt (Unisex),A vibrant crewneck for all shapes and sizes. Made from 100% cotton.,in stock,new,9.99 USD,https://www.facebook.com/facebook_t_shirt,https://www.facebook.com/t_shirt_image_001.jpg,Facebook,https://www.facebook.com/t_shirt_image_002.jpg,adult,blue,unisex,FB1234_shirts,Apparel & Accessories > Clothing > Shirts,stripes1,Apparel & Accessories > Clothing > Shirts,4.99 USD,2017-12-01T0:00-23:59/2017-12-31T0:00-23:59,small,2.99 USD,2018-11-01T12:00-0300/2018-12-01T00:00-0300
Example CSV Feed — Commerce
id,title,description,rich_text_description,availability,condition,price,link,image_link,brand,additional_image_link,age_group,color,gender,item_group_id,google_product_category,product_type,sale_price,sale_price_effective_date,size,status,inventory
FB_product_1234,Facebook T-Shirt (Unisex),A vibrant crewneck for all shapes and sizes. Made from 100% cotton.,"<p>A vibrant crewneck for all shapes and sizes. Made from 100% cotton.</p> <p> Made of 52% combed and ringspun cotton, 48% polyester.</p>",in stock,new,9.99 USD,https://www.facebookswagstore.com/American-Apparel-T-Shirt-P395.aspx,https://www.facebookswagstore.com/GetImage.ashx?Path=%7e%2fAssets%2fFB00-0967-Group_Full.jpg&maintainAspectRatio=true&maxHeight=400&maxWidth=400,Facebook,https://www.facebookswagstore.com/Assets/ProductImages/FB00-0475.jpg,adult,blue,unisex,FB1234_shirts,Apparel & Accessories > Clothing > Shirts & Tops,Apparel & Accessories > Clothing > Shirts,4.99 USD,2017-12-01T0:00-23:59/2017-12-31T0:00-23:59,small,2.99 USD,2018-11-01T12:00-0300/2018-12-01T00:00-0300,published,200
FB_product_1235,Facebook T-Shirt (Unisex),A vibrant crewneck for all shapes and sizes. Made from 100% cotton.,"<p>A vibrant crewneck for all shapes and sizes. Made from 100% cotton.</p> <p> Made of 52% combed and ringspun cotton, 48% polyester.</p>",in stock,new,9.99 USD,https://www.facebookswagstore.com/American-Apparel-T-Shirt-P395.aspx,https://www.facebookswagstore.com/GetImage.ashx?Path=%7e%2fAssets%2fFB00-0967-Group_Full.jpg&maintainAspectRatio=true&maxHeight=400&maxWidth=400,Facebook,https://www.facebookswagstore.com/Assets/ProductImages/FB00-0475.jpg,adult,blue,unisex,FB1234_shirts,Apparel & Accessories > Clothing > Shirts & Tops,Apparel & Accessories > Clothing > Shirts,4.99 USD,2017-12-01T0:00-23:59/2017-12-31T0:00-23:59,medium,2.99 USD,2018-11-01T12:00-0300/2018-12-01T00:00-0300,published,200
FB_product_1236,Facebook T-Shirt (Unisex),A vibrant crewneck for all shapes and sizes. Made from 100% cotton.,"<p>A vibrant crewneck for all shapes and sizes. Made from 100% cotton.</p> <p> Made of 52% combed and ringspun cotton, 48% polyester.</p>",in stock,new,9.99 USD,https://www.facebookswagstore.com/American-Apparel-T-Shirt-P395.aspx,https://www.facebookswagstore.com/GetImage.ashx?Path=%7e%2fAssets%2fFB00-0967-Group_Full.jpg&maintainAspectRatio=true&maxHeight=400&maxWidth=400,Facebook,https://www.facebookswagstore.com/Assets/ProductImages/FB00-0475.jpg,adult,blue,unisex,FB1234_shirts,Apparel & Accessories > Clothing > Shirts & Tops,Apparel & Accessories > Clothing > Shirts,4.99 USD,2017-12-01T0:00-23:59/2017-12-31T0:00-23:59,large,2.99 USD,2018-11-01T12:00-0300/2018-12-01T00:00-0300,published,200
FB_product_1237,Facebook T-Shirt (Unisex),A vibrant crewneck for all shapes and sizes. Made from 100% cotton.,"<p>A vibrant crewneck for all shapes and sizes. Made from 100% cotton.</p> <p> Made of 52% combed and ringspun cotton, 48% polyester.</p>",in stock,new,9.99 USD,https://www.facebookswagstore.com/American-Apparel-T-Shirt-P395.aspx,https://www.facebookswagstore.com/GetImage.ashx?Path=%7e%2fAssets%2fFB00-0967-Group_Full.jpg&maintainAspectRatio=true&maxHeight=400&maxWidth=400,Facebook,https://www.facebookswagstore.com/Assets/ProductImages/FB00-0475.jpg,adult,black,unisex,FB1234_shirts,Apparel & Accessories > Clothing > Shirts & Tops,Apparel & Accessories > Clothing > Shirts,4.99 USD,2017-12-01T0:00-23:59/2017-12-31T0:00-23:59,small,2.99 USD,2018-11-01T12:00-0300/2018-12-01T00:00-0300,published,200
FB_product_1238,Facebook T-Shirt (Unisex),A vibrant crewneck for all shapes and sizes. Made from 100% cotton.,"<p>A vibrant crewneck for all shapes and sizes. Made from 100% cotton.</p> <p> Made of 52% combed and ringspun cotton, 48% polyester.</p>",in stock,new,9.99 USD,https://www.facebookswagstore.com/American-Apparel-T-Shirt-P395.aspx,https://www.facebookswagstore.com/GetImage.ashx?Path=%7e%2fAssets%2fFB00-0967-Group_Full.jpg&maintainAspectRatio=true&maxHeight=400&maxWidth=400,Facebook,https://www.facebookswagstore.com/Assets/ProductImages/FB00-0475.jpg,adult,black,unisex,FB1234_shirts,Apparel & Accessories > Clothing > Shirts & Tops,Apparel & Accessories > Clothing > Shirts,4.99 USD,2017-12-01T0:00-23:59/2017-12-31T0:00-23:59,medium,2.99 USD,2018-11-01T12:00-0300/2018-12-01T00:00-0300,published,200
FB_product_1239,Facebook T-Shirt (Unisex),A vibrant crewneck for all shapes and sizes. Made from 100% cotton.,"<p>A vibrant crewneck for all shapes and sizes. Made from 100% cotton.</p> <p> Made of 52% combed and ringspun cotton, 48% polyester.</p>",in stock,new,9.99 USD,https://www.facebookswagstore.com/American-Apparel-T-Shirt-P395.aspx,https://www.facebookswagstore.com/GetImage.ashx?Path=%7e%2fAssets%2fFB00-0967-Group_Full.jpg&maintainAspectRatio=true&maxHeight=400&maxWidth=400,Facebook,https://www.facebookswagstore.com/Assets/ProductImages/FB00-0475.jpg,adult,black,unisex,FB1234_shirts,Apparel & Accessories > Clothing > Shirts & Tops,Apparel & Accessories > Clothing > Shirts,4.99 USD,2017-12-01T0:00-23:59/2017-12-31T0:00-23:59,large,2.99 USD,2018-11-01T12:00-0300/2018-12-01T00:00-0300,published,200
Example XML Feed (Atom) — Commerce
The prefix “g” is required for attributes in Google Merchant Center namespace :
xmlns:g="http://base.google.com/ns/1.0".
For other attributes not mentioned here, use it without prefix, such as video, additional_image_link, etc.<?xml version="1.0" encoding="utf-8"?> <rss version="2.0" xmlns:g="http://base.google.com/ns/1.0" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> <title>My Deal Shop Products</title> <description>Product Feed for Facebook</description> <link>https://www.mydealsshop.foo</link> <atom:link href="https://www.mydealsshop.foo/pages/test-feed" rel="self" type="application/rss+xml" /> <item> <g:item_group_id>SKU-123123</g:item_group_id> <g:gtin>12345678912345</g:gtin> <g:google_product_category>Toys & Games > Toys > Executive Toys > Magnet Toys</g:google_product_category> <g:id>SKU-123123-RED</g:id> <g:title>WidgetThing</g:title> <g:description>This product is the product you need to do the thing</g:description> <g:link>https://www.mydealsshop.foo/products/widgetthing</g:link> <g:image_link>https://cdn.mycdn.foo/files/123123123.jpg</g:image_link> <additional_image_link>https://cdn.mycdn.foo/files/123123123_image2.jpg</additional_image_link> <additional_image_link>https://cdn.mycdn.foo/files/123123123_image3.jpg</additional_image_link> <color>Red</color> <additional_variant_attribute> <label>Style</label> <value>Cool</value> </additional_variant_attribute> <g:brand>AcmeCo</g:brand> <g:condition>New</g:condition> <g:availability>in stock</g:availability> <g:price>19.99 USD</g:price> <g:sale_price>9.99 USD</g:sale_price> </item> <item> <g:item_group_id>SKU-123123</g:item_group_id> <g:gtin>12345678912346</g:gtin> <g:google_product_category>Toys & Games > Toys > Executive Toys > Magnet Toys</g:google_product_category> <g:id>SKU-123123-GREEN</g:id> <g:title>WidgetThing</g:title> <g:description>This product is the product you need to do the thing</g:description> <g:link>https://www.mydealsshop.foo/products/widgetthing</g:link> <g:image_link>https://cdn.mycdn.foo/files/123123123.jpg</g:image_link> <additional_image_link>https://cdn.mycdn.foo/files/123123123_image2.jpg</additional_image_link> <additional_image_link>https://cdn.mycdn.foo/files/123123123_image3.jpg</additional_image_link> <color>Green</color> <additional_variant_attribute> <label>Style</label> <value>Cool</value> </additional_variant_attribute> <g:brand>AcmeCo</g:brand> <g:condition>New</g:condition> <g:availability>in stock</g:availability> <g:price>19.99 USD</g:price> <g:sale_price>9.99 USD</g:sale_price> </item> </channel> </rss>
Feed Format — Schedule Data Feed Fetches
For scheduling data feed fetches, see suggested formats below.
| Feed Format | Use Case | Sample Feed |
|---|---|---|
CSV | Update price and availability for a subset of items. | |
TSV | Reset sale_price and update custom_label_0 for a subset of items |
Supported Catalog Fields
Catalog fields are instrumental to the quality of the experience for customers buying products on your Shop on Facebook or Instagram.
Catalog fields are used to populate the Product Details page for each item. This includes important information, such as the product description, images, size/color variants, price, and availability. Missing or bad data can negatively affect the user experience, impact conversion to purchases, or could be misleading and erode trust.
Supported Fields for Products
The following table defines the fields used to create a catalog, including the requirement level (required vs. optional). For best practice column-naming conventions, use U.S. English for all fields.
- Required Fields (for Ads and Commerce)
- Additional Required Fields for Checkout on Facebook and Instagram (US Only)
- Optional Fields
- Additional Required Fields for Selling in India
Required Fields (for Ads and Commerce)
Each field in your data feed represents information about your products. All field names and certain supported values must be in US English. The following fields are required for each product in your catalog. Note: If any required fields are missing or formatted incorrectly, products may not upload to your catalog.
| Attribute and Type | Description |
|---|---|
idType: string | Max character limit: 100 A unique content ID for the item. Use the item’s SKU if possible. Each content ID must appear only once in your catalog. If there are multiple instances of the same ID, we ignore all instances. Note: For dynamic ads, this ID must exactly match the content ID for the same item in your Meta Pixel. Example: 12345This field is required for supplementary feeds. Each item’s content ID must exactly match in the supplementary feed and the main feed it’s linked to. This indicates it’s the same item in both feeds. |
titleType: string | Character limit: 200, but we recommend a maximum of 65 to avoid longer titles being cut off. A specific, relevant title for the item. See product title specifications. Example: Blue Cotton T-ShirtThis field is supported by supplementary feeds. |
descriptiontype: string | Max character limit: 9999 A relevant description of the item. Include specific and unique product features, such as material or color. Use plain text (not HTML) and don’t enter text in all capital letters or include any links. The description should be different than the title. See product description specifications.
Example: A comfortable royal blue women’s T-shirt in organic cotton. Cap sleeves and relaxed fit. Perfect for warm summer days. This field is supported by supplementary feeds. |
availabilityType: string | The current availability of the item. Must be written in U.S. English. Supported values:
Items that are out of stock display as “sold out” in your shop. They don’t display at all in your ads.
Example: in stock |
conditionType: string | The condition of the item. Supported values: new, refurbished, used.
Example: new |
pricetype: string | The price of the item. Format the price as a number, followed by a space and then the 3-letter ISO 4217 currency code (ISO 4217 standards). Always use a period (.) as the decimal point, not a comma (,). Don’t include currency symbols such as $, € or £. To add product information and prices that will display for other countries or languages, upload a country feed or language feed to your catalog. Example: 9.99 USD, 7.99 EUR |
linkType: string | The URL to the specific product page for the item on your business’s website where people can learn more about or buy that exact item. Links must begin with http:// or https://, be valid and be hosted on your business’s website domain. Don’t provide a link to a Facebook domain (such as your business’s Facebook Page) or somewhere else.
Example: http://www.jaspersmarket.com/products/shirt |
image_linkType: string | The URL for the main image of your item. Images must be in JPEG or PNG format, at least 500 x 500 pixels and up to 8 MB. See product image specifications.
Example: http://www.jaspersmarket.com/products/shirt.jpgNote: If you change the image later, the new image must use a different URL or the change won’t be recognized. This field is supported by supplementary feeds. |
brandType: string | Max characters: 100 The brand name of the item. Example: Jasper's Market |
sizeType: string | Max characters: 200 Note: Size is only required for selling products in Shops, and only for specific product categories including clothing and shoes. The product’s size written as a word, abbreviation or number, such as “Small,” “XL,” “12” or “One size.” Add a space between words and numbers (such as “US 12” or “15 months” instead of “US12” or “15months”) and don’t include the word “size” (such as “XS” instead of “Size XS”). Example: Medium |
Optional Fields
You can also include many optional fields to share more product information with customers or control how items are displayed.
| Attribute and Type | Description | ||
|---|---|---|---|
sale_priceType: string | A discounted price for the product. Must be less than the full price. Use the same formatting as the price field. We recommend also adding the sale_price_effective_date field to control when the sale price is shown to customers. Remove the sale price after the sale ends to avoid any confusion.Example: 7.99 USD | ||
sale_price_effective_dateType: two ISO-8601 timestamp | The date, time and time zone when your sale starts and ends. If you don’t add this field, any items with a sale_price remain on sale until you remove their sale price. Use this format: YYYY-MM-DDT23:59+00:00/YYYY-MM-DDT23:59+00:00
Example (using PST time zone -08:00): 2020-04-30T09:30-08:00/2020-05-30T23:59-08:00 | ||
item_group_idType: string | Max character limit: 100 Allows you to set up variants of the same product, such as different sizes, colors or patterns. Enter the same group ID in this field for all variants of the same product to indicate they’re part of a group. Learn more about product variants. Example: Shirt_1 | ||
statusType: string | Controls whether the item is active or archived in your catalog. Only active items can be seen by people in your ads, shops or any other channels. Supported values: active, archived. Items are active by default. Learn more about archiving items.Example: activeThis field was previously called visibility. While we still support the old field name, we recommend that you use the new name. | ||
additional_image_linkType: string | Maximum character limit: 2000
Since this field takes a string, the entire list of URLs must be formatted with double quotes. For example: "http://www.jaspersmarket.com/products/shirt2.jpg, http://www.jaspersmarket.com/products/shirt3.jpg"To display additional images in your ads, see Dynamic Ads, Ad Template This field is supported by supplementary feeds. | ||
google_product_categoryType: string | Provide the most specific Google product category possible from this list: Excel (.xls) or Plain text (.txt). Enter either the category name (not case sensitive) or its ID number. Example: Apparel & Accessories > Clothing > Shirts & Tops or 212Learn more about product categories (Business Help Center article). Note: The category lists above are in US English. You can download other languages from Google Merchant Help Center. This field is supported by supplementary feeds. | ||
fb_product_categoryType: string | Provide the most specific Facebook product category possible from this list: Spreadsheet (.csv) or Plain text (.txt). Enter either the category name (not case sensitive) or its ID number. Example: Clothing & Accessories > Clothing > Women's Clothing > Tops & T-Shirts or 430Learn more about product categories (Business Help Center article). Note: The category lists above are in US English. You can download other languages here. This field is supported by supplementary feeds. | ||
Category-specific fields | When you provide a Google or Facebook product category ( google_product_category or fb_product_category), we recommend that you add more fields that are specific to that category. This gives people more information to make a purchase decision. For example, for beauty products, you could provide ingredients. View the list of category-specific fields.This field is supported by supplementary feeds. | ||
colorType: string | Max character limit: 200 The main color of the item. Describe the color in words, not a hex code. Example: Royal BlueThis field is supported by supplementary feeds. | ||
genderType: string | The gender your item is targeted towards. Supported values: female, male, unisex.Example: unisexThis field is supported by supplementary feeds. | ||
sizeType: string | Max character limit: 200 The product’s size written as a word, abbreviation or number, such as “Small,” “XL,” “12” or “One size”. Add a space between words and numbers (such as “US 12” or “15 months” instead of “US12” or “15months”) and don’t include the word “size” (such as “XS” instead of “Size XS”). Example: MediumThis field is supported by supplementary feeds. | ||
age_groupType: string | The age group the item is targeted towards. Accepted values: adult, all ages, teen, kids, toddler, infant, newborn.Example: adultThis field is supported by supplementary feeds. | ||
materialType: string | Character limit: 200 The material the item is made from, such as cotton, polyester, denim or leather. Example: Organic CottonThis field is supported by supplementary feeds. | ||
patternType: string | Max character limit: 100 The pattern or graphic print on the item. Example: Flannel, Gingham, Polka dots, stripesThis field is supported by supplementary feeds. | ||
shippingType: string | This allows you to use a shipping-related overlay in your ads. Shipping details for the item, formatted as: Country:Region:Service:Price
Example: US:NY:Ground:9.99 USD, PH::Air:300 PHP | ||
shipping_weightType: string | Shipping weight of the item in lb, oz, g, or kg.Example: 10 kg | ||
internal_labelType: string | Add internal labels to help filter items when you create product sets. For example, you could add a “summer” label to all items that are part of a summer promotion and then filter those items into a set. Labels are only visible to you. Enclose each label in single quotes (‘) and separate multiple labels with commas (,). Don’t include white spaces at the beginning or end of a label. Character limit: Up to 5,000 labels per product and 110 characters per label. TSV, XLSX, Google Sheets:Examples:
CSV format requires enclosing the list in double quotes.Examples:
The Atom XML format requires to wrap each label:<internal_label>summer</internal_label><internal_label>trending</internal_label>Internal labels are case insensitive and will be stored lowercased. For example, providing the internal label ‘Summer’, with capital ‘s’, will result in storing ‘summer’, with lowercase ‘s’. To reduce confusion, we suggest using only lowercase characters. When used in product sets, internal labels are made to be matched as a whole, so please refrain from using the “contains” condition on internal labels.
Example:
Given an item with internal label ‘summer_clothes”: Set filter internal_label is any of ‘‘summer_clothes’ will match the item. Set filter internal_label contains ‘clothes’ is NOT guaranteed to match the item. For the best results, we recommend using ASCII lowercase characters and, if needed the following token separators ‘#’ , ‘_’ , ‘ : ‘. Note: If you’re currently using custom labels ( custom_label_0 to custom_label_4) for filtering product sets, switching to internal labels (internal_label) instead is recommended. Unlike custom labels, you can add or update internal labels as often as needed without sending items through policy review each time, which can impact ad delivery.This field was previously called product_tags. While we still support the old field name, we recommend that you use the new name. | ||
custom_label_[0-4]Type: string | Max character limit: 100 Up to 5 custom fields for text you want to add to your ad creative, such as in the headline. Example: Summer saleThis field is supported by supplementary feeds. | ||
custom_number_[0-4]Type: int | Up to five custom fields for any additional number-related information you want to filter items by when you create sets. This field allows you to filter by number ranges (is greater than and is less than) when you create a set. For example, you could use this field to indicate the year an item was produced, and then filter a certain year range into a set. These fields support whole numbers between 0 and 4294967295. They don’t support decimals or commas, such as 5.5 or 10,000. Example: 2025 | ||
rich_text_descriptionType: string | Max characters: 9999 The rich text (HTML) description for item. Note: If this field is provided, we use it instead of description; however, the description field is still required because it’s a fallback.Rich text descriptions are not supported in ads. Supported tags include:
Note: Any attributes of the html tags such as <style> will be stripped off from the field.Example: This field is supported by supplementary feeds. | ||
product_typeType: string | Max character limit: 750 Category the item belongs to, according to your business’s product categorization system, if you have one. You can also enter a Google product category. For commerce, represents the product category in your internal system. Learn more about product categories for commerce. Example: Home & Garden > Kitchen & Dining > Appliances > Refrigerators | ||
vendor_idType: string | Max character limit: 100 An ID representing the product’s vendor, such as the seller, brand or merchant entity. Example: Vendor_123 | ||
video[0].urlvideo[1].urlvideo[2].urlvideo[3].url ... up tovideo[19].urlType: string | Up to 20 fields each containing a link to a video of your item. Must be a direct link to download the video file, not a link to a video player such as YouTube. The maximum video file size is 200 MB. Supported formats include: .3g2, .3gp, .3gpp, .asf, .avi, .dat, .divx, .dv, .f4v, .flv, .gif, .m2ts, .m4v, .mkv, .mod, .mov, .mp4, .mpe, .mpeg, .mpeg4, .mpg, .mts, .nsv, .ogm, .ogv, .qt, .tod, .ts, .vob and .wmv Example: http://www.jaspersmarket.com/product_video.avi This field is supported by supplementary feeds. | ||
additional_variant_attributeType: string | Additional attributes that are not core attributes (size, color, gender, pattern, and so on). Do not use a core attribute as an additional attribute. Learn more about Product Variants. Example: Scent:Fruity, Flavor:StrawberryThis field is supported by supplementary feeds. | ||
unit_priceType: string | Provide this information for any products customarily sold by a unit of measurement (for example “$10 / pound”). To specify this information, provide the following: Amount value: this is a float Currency: any supported currency Unit type: any of the following measurements: Centiliters: clCentimeters: cmCount: ctCubic Meters: cbmFeet: ftFluid Ounces: fl ozGallons: galGrams: gInches: inKilograms: kgLiters: lMeters: mMilligrams: mgMilliliters: mlOunces: ozPints: ptPounds: lbQuarts: qtSquare Feet: sqftSquare meters: sqmYards: ydThis information is uploaded via feed uploads in the unit_price field in a JSON format as follows:It can also be uploaded via XML as follows:
Example: Download a sample CSV file with an example of adding unit_price to products.
| ||
gtinType: string | The item’s Global Trade Item Number (GTIN). Providing a GTIN is recommended to help classify the item. The GTIN may appear on the barcode, packaging or book cover. Not all items have a GTIN. Only provide one if you’re sure it’s correct. Don’t include dashes or spaces. GTIN types:
Example: 4011200296908This field is supported by supplementary feeds. | ||
mpnType: string | Max characters: 100. The item’s manufacturer part number (MPN), a unique alphanumeric code assigned by the manufacturer in some industries to identify a specific item or part. It may appear on the packaging, label or etched directly onto the item. Providing a MPN is recommended to help classify the item if there is no GTIN. Not all items have a MPN. Only provide one if you’re sure it’s correct. Example: JAS12345PER | ||
expiration_dateType: date | Product expiration. If the product is expired, it won’t be shown on Facebook. This date should follow the ISO‑8601 (YYYY‑MM‑DD) format. | ||
mobile_linkType: string | Link to mobile-optimized page for item on the merchant’s website. | ||
applinkType: string | Provide deep links in feed following the App Links specification. Deep link information in feed takes precedence over any information we collect with App Links metadata with our web crawler. If you already have deep link information from App Links, you don’t need to specify this data. Information from App Links is used to display the correct deep link. To display deep links in your ads, see Dynamic Ads, Ad Template. Supported applinks: 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.For Android, we require applink.android_package and url is optional. For other applinks, a valid url is required.Learn more about product deep links.
| ||
disabled_capabilities | Used to control the channel visibility of each specific product in your catalog. With this feature, you can enable or disable your products from being displayed in Shops, Marketplace Shops, Instagram Product Tagging, Dynamic Ads, and Mini Shops. Learn more about disabled_capabilities. | ||
quantity_to_sell_on_facebookType: integer | This field is only relevant for Shops on Facebook and Instagram. The quantity of this product that you have to sell. Enter a whole number. Example: 500This field was previously called inventory. While we still support the old field name, we recommend that you use the new name. |
Additional Required Fields for Selling in India
| Attribute and Type | Description |
|---|---|
origin_countryType: ISOCountryCode (2 letter country code) | The item’s country of origin. Enter the two-letter ISO country code
Example value: USThis field is supported by supplementary feeds. |
importer_nameType: string | If the country of origin is not India, provide the legal entity name of the item’s importer
Example value: Jasper's Market Inc.
This field is supported by supplementary feeds. |
importer_addressType: JSON structure | If the country of origin is not India, provide the operational address of the importer. This field uses a JSON structure, which contains the following fields:
street1 - string, required. The first line of the street addressstreet2 - string, optional. The second line of the street address.city - string, required. The city name.region - string, optional. The region, state or province. (In the US this is to be used for US State)postal_code - string, optional (in the US this is to be used for Zip Code)country - required. Enter the ISO Country code (2-letter country code)
The overall address will be displayed to users in the following format:
street1, street2 (if present), city, region (if present) postal_code (if present), country (full name, localized for the user).
This example value: will be rendered as “1 Hacker Way, Building 18, Menlo Park, CA 94025 United States of America” This field is supported by supplementary feeds. |
manufacturer_infoType: string | Required for Shops only. Information about the product’s manufacturer, such as the manufacturer name and address.
Example: The Manufacturer Co. - 1 Hacker Way, Menlo Park, CA 94025 USA This field is supported by supplementary feeds. |
wa_compliance_categoryType: string | Required for selling on WhatsApp only. If the item is a non-physical good sold in India, such as a service, use this field to indicate that the item is exempt from providing the country of origin ( origin_country), importer name (importer_name) and importer address (importer_address).
Supported values (case sensitive): COUNTRY_ORIGIN_EXEMPT: The item is exempt.DEFAULT: The item is not exempt. This is the default value if you leave the field blank. |
Supported Fields — Localized Catalogs
Requirements
- You must include an
idfield in your secondary data feed file. To run Advantage+ catalog ads, the ID for each item must match its ID in your original catalog data feed and its content ID from your pixel. - You must include an
overridefield. In this field, enter the ISO codes for the languages or countries that you want to provide localized information for. In this field, enter the ISO codes for the languages or countries that you want to provide localized information for. The value in theoverridecolumn should be either a supported ISO language code or a supported ISO country code. Learn more about supported language codes and country codes. price,sale_price,unit_price,base_price,status(visibility), andavailabilitymust only be provided in a country feed. These fields cannot be provided in a language feed. This helps ensure customers see the correct localized product data.
Learn more about the
id and override fields in Create a data feed with localized inventory information, steps 2 and 3.Products
titledescriptionavailabilitylinkbrandpricesale_pricesale_price_effective_datecolorsizematerialpatterncustom_label_[0-4]short_descriptionadditional_variant_attributeapplink.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
To localize any applink fields, you must provide all of them. Learn more about product deep links.
image[0].url,image[0].tag[0]
To localize an image, you must use the
image[0].url, image[0].tag[0] nested image fields. The image_link field isn’t supported for localization.For reference, see the main list of fields for products.
Hotels
namedescriptionbase_pricesale_pricebrandurlneighborhoodlongitudelatitudeimage[0].url,image[0].tag[0]internal_labelapplink.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
To localize any applink fields, you must provide all of them. Learn more about product deep links.
For reference, see the main list of fields for hotels.
Flights
descriptionurlorigin_citydestination_citypriceone_way_priceimage[0].url,image[0].tag[0]custom_label_[0-4]custom_number_[0-4]internal_labelapplink.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
To localize any applink fields, you must provide all of them. Learn more about product deep links.
For reference, see the main list of fields for flights.
Destinations
namedescriptionurlpriceneighborhoodlongitudelatitudeimage[0].url,image[0].tag[0]custom_label_[0-4]custom_number_[0-4]internal_labelapplink.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
To localize any applink fields, you must provide all of them. Learn more about product deep links.
For reference, see the main list of fields for destinations.
Home Listings
namedescriptionpriceurlimage[0].url,image[0].tag[0]
For reference, see the main list of fields for home listings.
Vehicles
titledescriptionpricesale_priceurlimage[0].url,image[0].tag[0]
For reference, see the main list of fields for vehicles.
Each field has a maximum of 500 characters.
| Name | Description |
|---|---|
og:title | Required. Title of the item. Supports pixel-based catalogs. |
og:description | Required. Description of the item. Supports pixel-based catalogs. |
og:url | Required. Complete URL for the product page. Supports pixel-based catalogs. |
og:image | Required for primary link. Optional for additional image links. Link to the image used on the product page. The primary image link is required. Any additional image links are optional. Supports pixel-based catalogs. |
og:locale | Required if using multilanguage catalogs. Specifies which website version the product is from; for example, en_GB for the UK website. Supports pixel-based catalogs. |
og:price:amount | Required. Current price of the item. For the separator, use ‘.’ rather than ‘,’ to indicate a decimal point. Don’t include symbols, such as “$” in the price. Supports pixel-based catalogs. Example: 1500.00 |
og:price:currency | Required. Currency for the price in ISO format. Supports pixel-based catalogs. Example: USD |
product:brand | Required. Brand name of the item. Supports pixel-based catalogs. |
product:availability | Required. Current availability of the item: in stock, out of stock, available for order, discontinued. Supports pixel-based catalogs. |
product:catalog_id | Optional. Unique catalog ID for item. Can be a variant for a product. This maps to retailer_id after the product is imported. The id field must match the content ID for your pixel. Supports pixel-based catalogs. |
product:category | Optional. Max character limit: 250. Supports pixel-based catalogs. For Advantage+ catalog ads, represents predefined values (string or category ID) from Google’s product taxonomy. For commerce, represents the category of your product according to the Google’s product taxonomy. Learn more about product categories for commerce. Learn more about Google Product Category for Catalog Items, Ads Help Center. |
product:condition | Required. Current condition of the item: new, refurbished, used. Supports pixel-based catalogs. |
product:custom_label_[0-4] | Optional. Max character limit: 100 Additional information about the item you want to include. Supports pixel-based catalogs. |
product:gender | Optional. Determines gender for sizing: Female, Male, Unisex. Supports pixel-based catalogs. |
product:item_group_id | Optional. For Advantage+ catalog ads - Items that are variants of a product. Provide the same item_group_id for all items that are variants. For example, a red Polo Shirt is a variant of Polo Shirt. Facebook maps this to the retailer_product_group_id once we get your feed. With Advantage+ catalog ads, Facebook picks only one item out of the group based on the signal we receive from the pixel or app event. For commerce - Provide the same product_group_id for all items that are variants. For example, Red Polo Shirt is a variant of Polo Shirt. Facebook maps this to retailer_product_group_id once we get your feed. Learn more about Product Variants. Supports pixel-based catalogs. Example: FB1234_shirts |
product:gtin | Optional. Product’s Global Trade Item Number (GTINs). Exclude dashes and spaces. Submit only valid GTINs as defined by the GTIN validation guide. Supported values are UPC (North America, 12 digits), EAN (Europe, 13 digits), JAN (Japan, 8 or 13 digits), ISBN (books, 13 digits). Supports pixel-based catalogs.Example: 4011200296908 |
product:isbn | Optional. International Standard Book Number. ISBNs consist of 13 digits. Supports pixel-based catalogs. |
product:mfr_part_no | Optional. Unique manufacturer part number for item. For commerce, Daily Deals inventory must also include brand if mpn is provided.Supports pixel-based catalogs.Example: 100020003 |
material | Optional. Material the item is made from. Supported values: cotton, denim, leather. Supports pixel-based catalogs.Example: cotton |
product:locale | Required if using multilanguage catalogs. Specifies which website version the product is from; for example, en_GB for the UK website. Supports pixel-based catalogs. |
product:price:amount | Required. Current price of the item. For the separator, use ‘.’ rather than ‘,’ to indicate a decimal point. Don’t include symbols, such as “$” in the price. Supports pixel-based catalogs. Example: 1500.00 |
product:price:currency | Required. Currency for the price in ISO format. Supports pixel-based catalogs. Example: USD |
product:retailer_item_id | Required. Retailer’s ID for the item. Supports pixel-based catalogs. |
product:sale_price:amount | Optional. Discounted price if the item is on sale. Use “.” as the decimal for the sale price. The sale price is required if you plan to use an overlay for discounted prices. Supports pixel-based catalogs.
Note: In general, for pixel-based catalogs, we recommend just capturing any changes in price using the main og:price:amount tag. If you do use the sale price tag, make sure to also use product:sale_price_dates:start and product:sale_price_dates:end tags to indicate when your sale starts and ends. If there is no end date, the sale price may display indefinitely.
Example: 9.99 |
product:sale_price:currency | Optional. Currency of the discounted price if the item is on sale in3-digit ISO currency code. Supports pixel-based catalogs. Example: USD |
product:sale_price_dates:start | Optional. Start date and time for your sale in your timezone, written as YYYY-MM-DDT0:00-23:59/YYYY-MM-DDT0:00-23:59, separated by a slash. Write the start and end dates as YYYY-MM-DD. Write the time in a 24-hour format (0:00 to 23:59). Add a “T” after each date and then include the time, where the end time represents the time zone. In the example, 03:00 denotes the time zone. Supports pixel-based catalogs.Example: 2017-11-01T12:00-03:00/2017-12-01T00:00-03:00 |
product:sale_price_dates:end | Optional. End date and time for your sale in your timezone, written as YYYY-MM-DDT0:00-23:59/YYYY-MM-DDT0:00-23:59, separated by a slash. Write the start and end dates as YYYY-MM-DD. Write the time in a 24-hour format (0:00 to 23:59). Add a “T” after each date and then include the time, where the end time represents the time zone. In the example, 03:00 denotes the time zone. Supports pixel-based catalogs.Example: 2017-11-01T12:00-03:00/2017-12-01T00:00-03:00 |
Each field has a maximum of 500 characters.
| Name | Description |
|---|---|
name | Title of the item. |
brand | Brand of the item. |
description | Description of the item. |
productID | Retailer’s ID for the item. |
url | Complete URL for the product page. |
image | Link to the image used on the product page. |
price | Current price of the item. Don’t include symbols, such as “$” in the price. Include this entry under “offers”. Format the price as a number, followed by the 3-digit ISO currency code (ISO 4217 standards), with a space between cost and currency. Use a period (“.”) as the decimal point. We recommend that you include only one (1) currency in your catalog so customers don’t see mixed currencies for products in your ads or commerce channels. To add product information and prices that will display for other countries or languages, upload a country feed or language feed to your catalog instead. |
priceCurrency | Currency for the price, in ISO format (for example, USD). Include this entry under “offers”. For the separator, use ‘.’ rather than ‘,’ to indicate a decimal point. Don’t include symbols, such as “$” in the price. Example: 1500.00. |
availability | Current availability of the item: in stock, out of stock, available for order, discontinued. Include this entry under “offers”. |
condition | Current condition of the item: new, refurbished, or used. Include this entry under “offers”. |
JSON-LD for Schema.org — Required Tags
Each field has a maximum of 500 characters.
Extracted from schema.org/Product
| Name | Description |
|---|---|
name | Title of the item. |
brand | Brand of the item. |
description | Description of the item. |
productID | Retailer’s ID for the item. |
url | Complete URL for the product page. |
offers | Array of objects of type schema.org/Offer. |
image | Link to the image used on the product page. |
Extracted from schema.org/Offer (as a part of product offers)
| Name | Description |
|---|---|
price | Current price of the item. Don’t include symbols, such as “$” in the price. Include this entry under “offers”. |
priceCurrency | Currency for the price, in ISO format (for example, USD). Include this entry under “offers”. |
availability | Current availability of the item: in stock, out of stock, available for order, discontinued. Include this entry under “offers”. |
condition | Current condition of the item: new, refurbished, or used. Include this entry under “offers”. |
JSON Schema Export
We have provided a JSON schema download of all catalog main fields and category fields here:
Please note that this JSON schema is not an uploadable feed format, but rather provided as an alternative reference for feed fields, examples, and data types other than what already exists in our documentation. The schema is primarily meant for developers who are seeking to programmatically align internal category and field mapping with Meta’s catalog schema. Please defer to the feed formatting elsewhere in this documentation for uploadable feeds.
All fields under the
common key will be main fields. Otherwise, the category name will be the parent key. Each field’s format follows this example:"item_group_id": {
"description": "Use this field to create variants of the same item. Enter the same group ID for all variants within a group. Learn more about variants: https:\/\/www.facebook.com\/business\/help\/2256580051262113 Character limit: 100.",
"example": "K456653443",
"type": "String",
"required": false,
"recommended": false
},
Note that only category-specific fields will have a
"recommended": true value (as they are all optional otherwise), in order to best understand prioritization.Learn More
Ads Help Center
- Create a Data Feed for a Catalog
- Methods to Add Catalog Items
- Upload a Data Feed to a Catalog
- Data Feed Specifications
- How to Create a Data Feed for Your Catalog Using a Template, Help Center
- Data Feed Specifications for Catalogs
- Set Up a Catalog for Multiple Languages and Countries
API Reference
Marketing API
- Hotel Ads, Supported Fields
- Flight Ads, Supported Fields
- Destination Ads, Supported Fields
- Automotive Inventory Ads, Supported Fields – Vehicle and Dealership
- Real Estate Ads, Supported Fields
- Product Deep Links