Meta Catalogs: Product Feeds for Facebook and Instagram Shops and Ads
A Meta catalog is the product list behind shoppable posts, Facebook and Instagram shops and ads that pick products for each viewer. This guide covers what a catalog is for, how to create one in Commerce Manager, the ways to fill it (by hand, data feed, partner platform, pixel and more), the fields every product needs, product sets and the checks that keep catalog ads working.
This guide is based on Meta Business Help Center articles, mainly About catalogs, Create a catalog in Commerce Manager, Ways to add products to your catalog and Product data specifications for catalogs; the others are linked where they are used. Meta renames menus and features often (catalog ads are now called ads with product media), so check the current wording in Commerce Manager. If you sell through Google too, our Google Merchant Center guide covers the Google side.
What a catalog is for
Meta's overview says that to advertise your products and services across its apps, "you'll need to add product data to a catalog in Commerce Manager." The catalog holds titles, images, prices, availability and links, and Meta's ad and shop features read from it.
Catalogs are not only for online shops. When you create one you choose a type: products, travel (hotels, flights, destinations), automotive, streaming media, apps and software, publications, professional services, activities, real estate, local products and services, or other. Each type has its own data requirements, and Meta notes that "You can't switch your catalog type later."
Meta recommends using one catalog per product or service type where possible. Its tips for using one catalog give the reasons: events data and match rate are not split across catalogs, a brand new catalog may take several weeks to reach full ad performance, and Shops can only connect one catalog, which cannot be switched later. For several countries, Meta suggests one base catalog plus country and language feeds rather than a catalog per country.
Creating a catalog
You need a business portfolio with full control. Then, in Commerce Manager:
- Click Add products (first catalog) or add a new catalog from the Assets page.
- Choose the type. For physical goods sold online, keep Online products selected. If your store runs on a partner platform with a Meta integration, you can turn on Connect a partner platform here and finish the setup on the platform's site.
- Pick the business portfolio, decide whether people in your business get access automatically, and name the catalog.
- Connect a Meta Pixel or app SDK now or later; this is what lets ads show each person relevant products.
- Assign people or a partner business, such as an agency, with Partial access or Full control. A shareable invite link can be used once and expires in 30 days.
- Choose how to add products: a data feed or manual entry (or skip and add them later).
Ways to add products
Meta calls these data sources, "because they supply product data to your catalog." Its comparison, simplified:
| Data source | Best for (Meta's guidance) | Catalog types | Effort to manage |
|---|---|---|---|
| Manual | Small inventory that rarely changes | All except travel, auto and local | High |
| Data feed (file) | Medium to large, or changes often | All | Medium |
| Partner platform (e.g. Shopify, WooCommerce) | Medium to large, or changes often | Online products only | Medium |
| Social media (AI detects products in your posts) | Small to medium | Online products only | Medium |
| Website crawling (eligible businesses only) | Medium to large, or changes often | Online products only | Low |
| Catalog Batch API | Large and changes often | All | Medium (developer needed) |
| Meta Pixel | Medium to large, or changes often | Online products only | Low |
On top of a primary source you can add country and language feeds (localized prices, currencies and text) and supplementary feeds (extra attributes). If several sources update the same products, Meta lets you choose which source controls which attribute, for example images from Shopify and prices from a feed.
The fields every product needs
For a products catalog, Meta's specifications list these required fields, with field names in US English:
| Field | What Meta asks for |
|---|---|
id | Unique content ID, ideally the SKU; case sensitive; different from any item_group_id. For catalog ads it must exactly match the content ID your pixel sends. |
title | Up to 200 characters; Meta recommends under 65 so it is not cut off. |
description | Plain text, no all-caps, no links, different from the title. |
availability | in stock or out of stock. Out-of-stock products are not shown in ads. |
condition | new, refurbished or used. |
price | Number, space, ISO 4217 code, e.g. 9.99 USD; period as decimal point; no currency symbols; one currency per file. |
link | The product page, starting with http:// or https://. For Shops, on a domain your business owns. |
image_link | JPEG or PNG, at least 500 x 500 pixels, under 8 MB. |
brand | Up to 100 characters. |
size | Only for selling in Shops, for categories such as clothing and shoes. |
Two details from the spec save trouble later. If you replace a product image, change the image URL too, otherwise Meta does not re-fetch it; so avoid placeholder images. And a sale_price must be lower than price, or it is not shown; add sale_price_effective_date so the sale ends on time. Useful optional fields include item_group_id for variants, up to 20 additional_image_link URLs, gtin, google_product_category or fb_product_category, and up to 20 product video links.
Data feeds: upload, schedule, supplement
A data feed can be XLSX, CSV, TSV, XML (RSS/ATOM) or Google Sheets. In Commerce Manager go to Catalog, then Data sources, click Add and choose Data file. If your file is already built for Google Merchant Center, select that format instead of Commerce Manager's own. Meta can map your column names to its fields (for example a name column to title), and asks for a default currency for prices without a code.
Limits differ by method in the spec: "100 MB for a one-time file upload or 4 GB for a scheduled feed", and up to 1 million items per feed is recommended; split larger catalogs into several feeds.
Scheduled uploads fetch your file from a URL (http, https, ftp or sftp, or a Google Sheet shared as Anyone with the link) hourly, daily or weekly. There are two modes:
- Replace (the default) makes the catalog match the file: new products are added, existing ones updated, and products missing from the file are deleted.
- Update is faster and adds or updates products, but ignores anything you simply removed from the file. To clear a field, keep the column and leave it empty.
Meta suggests timing the upload just after your own file refreshes, and pairing frequent update runs with a weekly or monthly replace run to clean out old products. Replace and update schedules for the same feed must be at least 10 minutes apart.
A supplementary feed adds attributes such as custom_label_0 to products that already exist, matched by content ID. It overrides the primary feed for the same attribute, but cannot change ID, price, sale price, availability or quantity, and cannot add or delete products. Each primary feed can have one supplementary feed.
Pixel and partner platforms
The pixel data source adds and updates products from your product pages. It needs the Meta Pixel sending PageView on each product page, microdata tags on those pages, catalog and pixel in the same business portfolio, full control of both, and pixel activity in the last 7 days. After you connect it (Data sources, Add, Pixel) and list your trusted domains, it can take up to 24 hours to be ready, then updates a product when someone visits its page, typically within 15 minutes. Meta warns that a pixel and a scheduled feed updating the same products can overwrite each other. Installing the pixel itself is covered in our Meta Pixel and Conversions API guide.
With a partner platform such as Shopify, you keep editing products on the platform and changes sync to Commerce Manager. Fix catalog errors there too, not in Commerce Manager. If you are still choosing a platform, see Shopify vs WooCommerce.
Product sets
A product set is a group of products in the catalog that you pick when you create an ad or feature as a collection in your shop. Every catalog has a default set, All products. To make your own, go to Catalog, then Sets, then Create set:
- Filters (for example a category and a price below a set amount) keep the set updated as products change. You can require all filters or at least one, and bulk add by content ID or group ID.
- Manual selection picks products one by one. It is not available for travel, automotive, real estate or local catalogs.
- Add recommended products (in Commerce Manager) adds bestsellers or products with conversions in the last 14 days even if they do not match your filters.
You cannot delete a set used in an active campaign, and Meta advises against editing a set during a live campaign. It also notes that a broader set may improve ad performance by giving delivery more products to choose from.
Using the catalog in ads and shops
Meta lists what a catalog unlocks, including:
- Ads with product media, previously called Advantage+ catalog ads, which show each person relevant products using pixel, app SDK or on-platform signals. They can run with the Sales, Traffic, Engagement, Leads or App promotion objectives. In Sales campaigns, product data is on by default if you have a catalog.
- Collection and carousel ads filled from the catalog, and products shown alongside your own ad media.
- Product tags on Instagram ads, and Shops and Shops ads (these, like collaborative ads, are only for products sold online).
How these campaigns are set up is in our guides to Meta ads basics and Advantage+ campaigns; shopping tags on your organic posts are covered in Instagram for business.
Match rate: tying the catalog to your pixel
Ads that pick products per person only work if the IDs your website sends match the catalog. Meta's match rate troubleshooting defines catalog match rate as the share of content IDs from your website or app events that match catalog products, and recommends "keeping your match rate above 75%, and ideally above 90%." It is shown for the last 28 days with a 48-hour delay. The usual fixes Meta lists:
- Send
content_ids(with an s, even for one product), using the same IDs as the catalog'sidoritem_group_id. - Format several IDs as a list of separate strings, like
['12345','67890'], not one string containing commas. - If you send
content_type, useproductfor product IDs andproduct_groupfor group IDs. - When merging catalogs, keep existing content IDs; changing them can reset historical events data.
Match rate may pause if the catalog is not used for ads for 28 days; resume it from the notice in the Events tab.
Frequently asked questions
What is a Meta catalog?
A catalog in Commerce Manager holds data about the products or services you want to advertise or sell on Facebook and Instagram: titles, images, prices, availability and links. Ads with product media, collection and carousel ads, product tags and Shops all read from it.
Which fields are required in a Meta product feed?
For products: id, title, description, availability, condition, price, link, image_link and brand. Size is also required for selling clothing and shoes in Shops.
Can I use my Google Merchant Center feed for Meta?
Yes. When you upload a data file in Commerce Manager, you can choose Google Merchant Center as the format your file is built for instead of Commerce Manager's own specification.
How often does a Meta catalog update from a feed?
With a scheduled feed, hourly, daily or weekly. Replace runs make the catalog match the file, including deleting removed products; update runs only add and update.
Should I have more than one catalog?
Meta recommends one catalog per product or service type where possible, with country and language feeds for other markets, so events data and match rate are not split and Shops can use all your products.
A catalog is only as good as the product pages and tracking behind it. See our website development and website maintenance services and all our services, or email [email protected].