Products Meta barely shows in catalogue ads: how to find them and give them a chance
How to see which products Meta barely shows in catalogue ads, read impressions, product views and sales side by side, and turn them into a separate feed.
On this page
- Why does part of the catalogue get almost no impressions?
- Where does Basketly get the numbers for each product?
- What do the “Not shown”, “Barely shown” and “Shown” tiles mean?
- How do you read the results of a single product?
- How do you give products that are not shown a separate chance?
- How it looks in Basketly
- Limits: what these numbers do not tell you
- Next step
Products that are not shown are the catalogue items Meta's catalogue ads barely ever display. You have 800 products in the shop and 800 in the Meta catalogue, yet carousels and Advantage+ ads keep rotating a few dozen. The rest waits. This article shows how to find those products, how to read numbers from three sources (ads, shop, orders) and how to give them a separate chance without rebuilding the whole campaign. At the end: what these numbers do not tell you.
Why does part of the catalogue get almost no impressions?
In catalogue ads you do not pick a product for each ad. Meta's automation does: from the product set it picks the products it expects to perform best and shows them most often. Products without sales history or with weaker data lose that lottery and can sit at zero impressions for weeks.
The second group of causes is more mundane and easier to fix:
- The product is not in the campaign's product set. A campaign only shows the set assigned to it.
- The catalogue rejected the product. A missing image, price or link means Meta will not show it. What a product must have is covered in the article on product data guidelines.
- The product is out of stock. An ad for a product you cannot sell makes no sense, so it is not shown.
Before you blame the automation, rule these three out. Only a complete, available product that sits in the set and still gets zero impressions is a real “not shown” product.
Where does Basketly get the numbers for each product?
Basketly builds a product's results from three independent sources, joined by the product's catalogue id. Ads give impressions, clicks and spend from Meta's report, the shop gives views and carts from the script after consent, and sales come from paid orders. None of these numbers is an estimate.
| Source | What it measures | Where from and how often |
|---|---|---|
| Meta catalogue ads | What it measuresimpressions, clicks, spend per product | Where from and how oftenMeta's per-product breakdown; first read 28 days back, then the last 3 days, at most every 6 hours |
| Shop | What it measuresproduct views, adds to cart, checkout starts | Where from and how oftenthe Basketly script in the shop, only after consent, daily counts with no data about the person |
| Sales | What it measuresorders, units, revenue | Where from and how oftenpaid, not cancelled shop orders |
The key point: Meta gives no purchases per product. The per-product report has impressions, clicks and spend, but no conversions. So the sales column in Basketly shows plain shop orders from every traffic source, not sales “from the ad”. Where those orders come from and how to read them is explained in the article on shop orders.
The shop script only works after consent from the cookie banner and stores just the number of events per product per day. It does not know who viewed a product and stores no person. Views therefore show the interest of shoppers who consented, not of every visitor.
What do the “Not shown”, “Barely shown” and “Shown” tiles mean?
The “Exposure in catalogue ads” tiles split active products by impressions in the chosen period. “Not shown” means zero impressions, “Barely shown” fewer than 100, “Shown” 100 or more. Clicking a tile filters the product list to that group, so you see straight away which items they are.
You pick the period in the “Statistics period” field: the last 7, 14, 30 or 90 days, counted in the organisation's time zone. The 100-impression threshold is fixed and has a simple logic: a product that got a few dozen impressions in a month practically does not exist for shoppers, even if it is formally in the catalogue.
Keep in mind that “Not shown” counts every active product with zero impressions, including products that are in no catalogue campaign at all. If you only advertise one category, the rest of the shop lands in that tile for an obvious reason.
Next to the tiles the list has a Results column with three lines (ads · shop · sales) and sorting: most impressions, most clicks, best selling, most viewed. Sorting by sales while impressions are zero quickly reveals products that sell without any ad.
How do you read the results of a single product?
The product record has a Product results section: impressions in ads, clicks, spend, views in the shop, adds to cart, orders and sales, each with a daily chart. Comparing them shows where the product drops off: in the ad, on the product page or in the cart. It is a diagnosis, not a verdict.
A few typical patterns:
- Many impressions, few clicks. The ad does not attract: the image, title or price loses to the competition in the carousel.
- Many clicks and views, no carts. The problem is on the product page: price, description, available sizes, delivery cost.
- Carts without orders. Shoppers drop off at checkout; look at payment and delivery.
- Zero impressions, yet it sells. The product sells on its own (search, returning customers). Maybe it deserves an ad.
The Products page also lists the 10 best-selling products and the 10 most shown without a sale. The second list hints where budget goes to products that brought no order in the period.
How do you give products that are not shown a separate chance?
The simplest way is a separate product set with its own budget, where Meta's automation cannot pick your bestsellers instead. Basketly prepares a feed for that in one click: the “Make a feed of products not shown” button creates a feed of products under 100 impressions in the chosen period.
That feed is a flow: a feed laid out on a canvas from blocks. The inputs are all your feeds with their own products, with their fixes and rules applied, then a “Product results” block with the condition “impressions under 100 in the period”, then the output. The feed is rebuilt on every request, so a product that starts getting impressions drops out of it by itself.
You add the feed's output address in Meta's Commerce Manager as the source of a new product set, then point a separate campaign or ad set at it. You can add the same “Product results” block to any flow: for example keep only products with views in the shop, or only products that sell.
How it looks in Basketly
Everything lives in Work → Products. At the top you pick the statistics period, below it the exposure tiles, and the list has the “Results” column and the sort field. Clicking a product opens its record with the “Product results” section.
The same data shows up in two other places:
- Campaigns → “Show products” on a campaign or ad: that campaign's products in the period, most shown first, with impressions, clicks, CTR, CPC, spend and the product's shop sales (not attributed). How to read purchases and ROAS at campaign level is covered in the article on ROAS, MER and cost per purchase.
- Image templates → the “Results in ads” tab (7, 30 or 90 days): how the products of feeds that use a template did. It compares templates, not single products.
Ad data appears once the ad account is connected in Integrations and Meta shows your catalogue ads. Until then the page says plainly where the numbers will come from. Feature details: product statistics.
Limits: what these numbers do not tell you
- No purchases per product from Meta. Sales are shop orders from every source, not the result of an ad. Do not conclude that a product's ad “earned” a given amount.
- Catalogue ads only. Per-product impressions come from Meta's catalogue ads report. Google Shopping and the TikTok catalogue are not read yet.
- The id has to match. Numbers are joined by the catalogue product id. If the Meta catalogue uses a different id than the shop (for example a code instead of the product number), results will not join; with the Shoper connection you choose which field is the id.
- Views only with consent. Shoppers without consent are not counted, so shop numbers are lower than actual traffic.
- Delay. Meta data is refreshed at most every 6 hours and covers the last 3 days; today's numbers may still change.
- A feed does not force impressions. A separate set gives a chance, but Meta still decides what to show.
Next step
Open Products, set the period to 30 days and click the “Not shown” tile. Check the first three products in their records: if the diagnosis shows errors, fix those first; if they are complete, make a feed of them. Weekly sales figures also arrive in the sales report.
About the author
Aleksander
Founder of Basketly.io, BooksyAudit.pl and SMSPortal.app
Founded Basketly.io, BooksyAudit.pl and SMSPortal.app. In the knowledge base he explains how to send shop purchases to Meta, how to keep a product catalogue in shape and how to measure what a purchase from ads costs.
All articles by the authorFrequently asked questions
Why does Meta not show some of my products?
In catalogue ads Meta's automation picks the order of products. It shows more often the ones it expects to perform, so the rest of the catalogue can get very few impressions. The product may also be missing from the campaign's product set or rejected by the catalogue.
Does Basketly show how many purchases a product brought from ads?
No. Meta's per-product report gives impressions, clicks and spend, but not purchases. A product's sales in Basketly are the shop's paid orders from every source, not credited to any ad.
How many impressions count as “barely shown”?
Barely shown means fewer than 100 impressions in the chosen period (7, 14, 30 or 90 days). A product with zero impressions is “Not shown”, one with 100 or more is “Shown”.
Where do product views and adds to cart come from?
From the Basketly script in the shop, which reports a product view, an add to cart and a checkout start, but only after the shopper consents. It stores daily counts per product, with no data about the person.
Does a separate feed guarantee impressions for these products?
No. The feed gives you a list you can attach to a separate product set or campaign with its own budget. Whether Meta shows those products and whether they sell depends on the campaign, the price and the product itself.