Short answer
Meta catalog ads (Advantage+ catalog ads, formerly dynamic product ads) automatically show products from your catalog to the people most likely to buy them. To run them you need a catalog in Commerce Manager with clean required fields, a Meta Pixel and Conversions API sending content_ids that exactly match your catalog IDs, and at least one product set to promote.
Key takeaways
- Build one catalog in Commerce Manager and feed it from a scheduled URL feed, Google Sheets or a partner platform such as Shopify.
- Prices must use a period as the decimal point followed by a 3-letter ISO currency code, e.g. "34.90 USD".
- Meta recommends keeping your catalog match rate above 75%, ideally above 90%, measured over 28 days.
- Filter-based product sets stay dynamic: new products join automatically when they match the rules.
- For retargeting, include viewers and add-to-carts and exclude recent purchasers; for prospecting, keep targeting broad.
Contents
What are Meta catalog ads and how do they work?
Meta catalog ads, officially called Advantage+ catalog ads and still widely known as dynamic product ads (DPA), pull product images, names and prices straight from your catalog and decide which product each person sees. You don't design an ad per product; Meta picks the item using the signals your Meta Pixel and Conversions API (CAPI) send about browsing and buying.
That means most of the performance is decided before you ever open Ads Manager. Three pieces have to work together:
- The catalog: a complete product list that follows Meta's field rules.
- Event data: ViewContent, AddToCart and Purchase events whose product IDs match the IDs in the catalog.
- Product sets: the groups that decide which products can appear in which ad.
The same catalog powers ads on Facebook, Instagram and the rest of Meta's placements, and it can also feed a Facebook or Instagram shop where your account is eligible.
How do you set up a Facebook catalog in Commerce Manager?
You create the catalog in Commerce Manager, choose the e-commerce (online products) type, add products through a data source and connect your pixel or dataset. Menu labels shift from time to time, so the names below reflect the interface as of September 2026.
- Create the catalog In Commerce Manager, add a new catalog, pick the e-commerce type and assign it to the right business portfolio.
- Add a data source Go to Catalog > Data sources and add a data file (URL, Google Sheets or upload), a partner platform or the pixel.
- Read the first upload Open the feed overview, check errors and warnings, and click Download issue report if anything failed.
- Connect your pixel Under Catalog > Events, connect the pixel or dataset; the match rate can take up to 48 hours to appear.
- Build product sets Under Catalog > Sets, create sets by category, price or margin before you build the campaign.
With the prerequisites in place, the campaign itself is short. In Ads Manager click + Create, choose the Sales objective, turn on Advantage+ catalog ads at campaign level and select the catalog. At ad set level, pick the product set under Promoted products, then choose single image or video, carousel or collection as the format. If collection doesn't appear in ad setup, Meta says you can still select it in the ad creative section under Format display options. Also note that, starting March 2026, single media and Advantage+ catalog collection ads in Facebook Feed no longer show a URL in the ad footer, so your product image and headline have to carry the click on their own.
Which data source should you use for your product feed?
For any store where prices and stock change often, use a scheduled feed or a partner platform integration; a one-time file upload only suits tests or very small catalogs.
| Method | Best for | Watch out for |
|---|---|---|
| One-time file upload | First test, a handful of products | 100 MB limit; every change is manual |
| Scheduled feed (URL) | Any store that can output an XML or CSV feed | Fetched hourly, daily or weekly; 4 GB limit |
| Google Sheets | Small stores with no feed tooling | Sharing must be set to "Anyone with the link" |
| Partner platform | Shopify and other platforms with a Meta integration | Syncs automatically; still check field mapping and excluded products |
| Pixel-based updates | Medium to large, fast-changing inventories; needs microdata tags on product pages | Can overwrite values if combined with a scheduled feed |
Supported formats are CSV, TSV, XLSX, XML (RSS/Atom) and Google Sheets. Clean titles and attributes matter here as much as they do on Google Shopping, so the checklist in our shopping feed optimization guide is worth running before you connect the file to Meta.
Scheduled feeds come in two modes. Replace rewrites the catalog from the file, deleting products you removed, but processes more slowly. Update is fast but ignores products you simply delete from the file. Meta's own suggestion is to combine them: an hourly update schedule for prices and availability, plus a weekly or monthly replace schedule to clear out old products. The two schedules for the same feed must run at least 10 minutes apart.
How do you fix Facebook product feed errors?
Most feed errors come from a missing required field, a badly formatted price or Meta being unable to reach your file. Go to Catalog > Data sources, click the feed and read the summary of the last upload session, then download the issue report for a sample of each problem.
Start with the required fields. According to Meta's catalog field reference, every e-commerce item needs id (up to 100 characters, unique), title (up to 200 characters, 65 recommended so it isn't cut off), description (up to 9,999 characters, plain text), availability (in stock or out of stock), condition (new, refurbished or used), price, link, image_link and an identifier; Meta's troubleshooting guide asks for at least one of brand, gtin or mpn. Images must be JPEG or PNG, at least 500 × 500 pixels and no larger than 8 MB.
| Error | Typical cause | Fix |
|---|---|---|
| Missing or invalid price | Currency symbol or comma decimal, e.g. "$34.90" or "34,90 EUR" | Use "34.90 USD": number, space, ISO 4217 code, period as decimal |
| Missing brand, GTIN or MPN | No identifier field filled in | Add at least one; GTINs must be UPC, EAN, JAN, ISBN or ITF-14 |
| File can't be fetched | Wrong URL, 404/503, robots.txt block | Open the URL in a browser; don't disallow facebookexternalhit/1.1 |
| Columns don't match | Unquoted commas in a CSV field | Wrap fields containing commas in double quotes; delete unused columns |
| Description in all caps | Supplier data copied as-is | Switch to sentence case or add a capitalization data rule |
| ID also used as a group ID | One product's id is another product's item_group_id | Make every id and group id unique; IDs are case sensitive |
| Unsupported category | google_product_category value not on the list | Choose the most specific valid category |
If your platform exports prices with thousands separators or the wrong field names, fix it at the source when you can. Otherwise add data rules in the feed's settings to change capitalization, map a column such as "sku" to id, find and replace values or set defaults.
What is catalog match rate and how do you improve it?
Catalog match rate is the share of product IDs in your pixel or app events that match a product in the connected catalog. It depends on the content_ids (or contents) your ViewContent, AddToCart and Purchase events send being exactly the same as the id values, or group IDs, in your catalog.
You'll find it in Commerce Manager under Catalog > Events. Meta calculates it over the last 28 days of data, with up to a 48-hour delay.
Worked example: over the last 28 days your pixel sent 2,000 content IDs and 1,500 of them exist in your catalog. Your match rate is 1,500 ÷ 2,000 = 75%, the bottom of Meta's recommended range, and one in four product IDs your events sent can't be used for targeting. When you download the issues report for the other 500 IDs, the causes are usually one of these:
- Variant vs parent mismatch: the pixel sends an ID that exists in the catalog as neither an
idnor anitem_group_id, for example your platform's internal product number while the catalog uses variant SKUs. If you send group IDs, setcontent_typeto product_group. - Formatting differences: "SKU-1042" in the catalog, "sku-1042" in the pixel; IDs are case sensitive. Also check the parameter is spelled
content_idsand that multiple products are sent as ['12345','67890'], not '12345,67890'. - Products missing from the catalog: items that never made it into the feed, were archived or were rejected for errors.
Browser pixels miss events because of ad blockers and cookie restrictions, so send the same events server-side through CAPI and deduplicate them with a shared event_id. Cleaner data also helps your ad sets get through the learning phase faster.
How do you create product sets for catalog ads?
A product set is a subset of your catalog used in a specific ad. Create one in Commerce Manager under Catalog > Sets > Create set, using filters or by picking products manually. Every catalog also has a default "All products" set that can't be edited.
Filter-based sets are dynamic. Rules like "product type contains women's shoes" and "price is less than 100 USD" pull in new matching products automatically and drop ones that no longer qualify. Manual sets stay frozen until you edit them. For catalog ads, filters are almost always the better choice.
Product sets that earn their keep
- Margin sets: write a label such as "high-margin" into
custom_label_0and filter on it. It's the simplest way to steer spend toward profitable products. - Category sets: splitting categories with different basket sizes lets you read ROAS per category.
- Cross-sell sets: one set is shown in the ad, a second defines the audience, for example ski boots for people who recently bought skis.
Don't slice too thin, though. When you build a set in Commerce Manager, a product selection indicator in the bottom right shows its size, and Meta says broader sets can give delivery more room to find the right product. The "Add recommended products" toggle on the same screen adds bestsellers and products with conversions in the last 14 days even if they don't match your filters. Avoid editing a set that a live campaign is using, since the audience update can disrupt performance; use Create similar set and launch it in a new ad set instead.
Should you use catalog retargeting or broad targeting?
Retargeting usually pays back fastest if your site gets steady product views and add-to-carts each month, while broad targeting with the same catalog is how you find new customers. For most stores the right answer is both, in separate ad sets with separate budgets.
Dynamic retargeting
- Include: people who viewed or added products to cart
- Exclude: recent purchasers
- Strength: close to purchase, often cheaper conversions
- Limit: capped by your site traffic, saturates quickly
Broad audience (prospecting)
- Include: mostly people who haven't visited your site yet
- Exclude: recent purchasers
- Strength: new customers and room to scale
- Limit: needs healthy pixel data and a varied catalog
Retargeting runs on catalog custom audiences. In the ad set's Audience section, click Show settings, then include a catalog custom audience based on a product set and an event (viewed, added to cart or purchased). Recent purchasers go under Controls > Show more controls > Exclude these custom audiences. For prospecting, keep targeting broad rather than stacking interests.
Example split: a $100 daily catalog budget could run as three ad sets: added to cart 0–3 days ago, viewed a product 4–14 days ago, and broad. Start with the smaller share on the warm segments and the larger share on broad, then compare cost per purchase by segment after two weeks. Treat that split as a hypothesis, not a rule: if the warm audiences are tiny, their budget won't spend and frequency climbs fast.
When and how to judge the results
Give catalog ads at least two weeks and let them exit the learning phase before deciding anything, and judge them on cost per purchase against a margin-based ROAS target (see what ROAS is and how to calculate it), not on cost per click. Check that the most-shown products are the ones that actually sell and that no spend goes to out-of-stock items. Platform attribution can also credit catalog ads, especially retargeting, with sales that might have happened anyway, so compare Meta-reported purchases with your store's orders. Marpany's ad performance view puts Meta, Google and store data in one table so that gap is visible.
Your next steps
Whether you're launching or auditing, work through this list in order.
- Confirm all products live in one catalog and that it's connected to the right pixel or dataset.
- Open Data sources, check error and warning counts on the last upload and download the issue report.
- Verify prices look like "34.90 USD" and every product has brand, GTIN or MPN.
- Set an hourly update schedule for price and stock, plus a weekly replace schedule for clean-up.
- Read the match rate under Catalog > Events; below 75%, fix your content_ids format first.
- Run CAPI alongside the pixel with event_id deduplication.
- Create filter-based sets: at least one category set and one high-margin set.
- Launch retargeting and broad in separate ad sets and compare cost per purchase after two weeks.
Frequently asked questions
Does it cost anything to create a Facebook catalog?
No. Creating a catalog in Commerce Manager and uploading products is free. You only pay when ads that use the catalog run, as normal ad spend.
Why are my catalog products not showing in my ads?
The usual reasons are that the product is out of stock, archived, or missing a required field such as price, link or brand/GTIN/MPN. Download the issue report from Catalog > Data sources in Commerce Manager and fix the flagged items. Also check that your product set filters aren't excluding the product.
What is the difference between dynamic product ads and Advantage+ catalog ads?
They are the same product: Meta renamed dynamic ads to Advantage+ catalog ads. The catalog, pixel requirements and product sets work the same way; the newer setup simply leans more on automation for audiences, placements and creative.
What is a good catalog match rate?
Meta recommends staying above 75% and ideally above 90%. It's calculated over the last 28 days and can take up to 48 hours to reflect fixes. Low rates usually come from content_ids that don't exactly match a catalog id or item_group_id, such as a platform-internal product number or case differences.
Should I advertise all products or a custom product set?
Broader sets give Meta's delivery system more products to choose from, so start with a large set unless you have a clear reason to limit it. Use custom sets for margin or category control, and turn on Add recommended products so bestsellers and recently converting items can still appear.
How often should my product feed update?
If prices and stock change often, run an hourly update schedule. Because update mode ignores products you delete from the file, pair it with a weekly or monthly replace schedule to remove old products, at least 10 minutes apart.
Sources
- Meta for Developers — Catalog fields reference developers.facebook.com
- Meta Business Help Center — Troubleshoot data feed errors in your catalog facebook.com
- Meta Business Help Center — About scheduled data feed uploads for catalogs facebook.com
- Meta Business Help Center — View catalog match rate for Advantage+ catalog ads facebook.com
- Meta Business Help Center — Create and edit product sets in your catalog facebook.com
- Meta Business Help Center — Create Meta Advantage+ catalog ads facebook.com

Turkish
English
Spanish
Arabic
Russian