Aahfil.

Why Did My Meta Catalog Ads Stop Selling? A Recovery Plan

The six usual reasons Meta catalog ads lose ROAS, the data that tells them apart, and a day-by-day 30-day plan for getting a Kuwait store's catalog campaigns selling again.

·14 min read

Why is my Meta catalog ads ROAS dropping?

Catalog ads ROAS usually drops for one of six reasons: feed errors or rejected products, sizes and variants selling out, price or discount changes, tired creative, an audience that has run out of new people, or a change in tracking or attribution. Only two of those live in the ads. The other four live in your store or your measurement, which is why editing the campaign is so often the wrong first move. ROAS is the revenue Meta attributes to your ads divided by what you spent.

A note on names, because Meta keeps changing them. As of September 2026, Meta's help centre still calls the format Advantage+ catalog ads, while its product page describes the catalog as product data you attach when setting up a sales campaign and labels the format products from your catalog. A sales campaign running Advantage+ audience, placements and budget is what Meta calls an Advantage+ sales campaign. This guide says catalog ads and means all of them.

Before diagnosing anything, make sure the drop is real. Compare Ads Manager with your store's own orders for the same days. If the store held steady and only the reported purchases fell, you have a measurement problem, not a sales problem. In Kuwait, also strip out refused cash-on-delivery orders, which Ads Manager counted the moment they were placed, and check whether the drop is really just the end of a sale week.

Seasonality distorts baselines here more than in most places. White Friday, Ramadan, the two Eids and back-to-school each pull demand forward and leave a hollow behind, so comparing the week after an offer with the week of it will always look like a collapse. Compare like with like: the same stretch last year if you have it, or the four ordinary weeks before the season started. A drop that survives that comparison is worth fixing.

Ready to start your Shopify store?

Start a free trial and try the platform for yourself.

Store-side causes: feed errors, stock and prices

Start with the feed, because it fails silently. In Commerce Manager, open the catalog's products tab and filter by issues; products rejected under Meta's advertising standards do not show in ads at all. You can request another review for up to 5,000 products every seven days, and editing a rejected product sends it back for automatic review. Product set filters are also dynamic, so a catalogue update can empty a set without anyone touching the campaign.

Stock is the next suspect. Meta excludes out-of-stock products from ads, shows only one variant per ad, and counts variants, and products sharing one image, as a single product. A set needs at least four unique, valid products for collection ads and two for carousels, and Meta may pause ads that fall below that. For a fashion store with a small range, one sold-out bestseller and a few size gaps can push a set under the line.

Prices and discounts change the maths without changing the ad. Meta shows a sale price only when it is lower than the full price, and without a sale_price_effective_date the sale price stays until you remove it. A White Friday price left in the feed sends people to a page that no longer honours it, and they leave. The reverse hurts too: once an offer ends, the same product at full price converts differently, and ROAS falls with it.

Arabic titles deserve a check as well. Meta's product title specification allows 200 characters but recommends fewer than 65 to avoid truncation, and asks you to keep promotional words like sale out of titles. If your Arabic and English titles share one field, or an app machine-translated them, the ad reads badly to one of your two audiences. Meta supports language feeds, so each viewer can see the title in their own language. The product feed checklist covers the fields in order.

Ad-side causes: creative fatigue and a small audience

Creative fatigue looks different in catalog ads because the product changes but the template does not. The same frame, overlay and white-background photo for months teach people to scroll past. Frequency is the average number of times each person has seen your ad. Fatigue shows up gradually: frequency climbing, click-through rate sliding and cost per purchase rising over weeks, while the feed and the store look healthy. A sudden overnight drop is rarely fatigue.

The fix is new creative in one batch, not a drip. Meta's help centre lists any change to ad creative, and adding a new ad, as significant edits that send an ad set back into learning, and says ad sets usually leave learning after about 50 results in the week after the last significant edit. Ten small changes across a fortnight keep a Kuwait-sized campaign learning permanently. Refresh frames, overlays and product video together, then leave it alone.

Audience exhaustion is the most Kuwaiti cause of all. Catalog retargeting feeds on people who recently viewed or added products, and in a market this size that pool is small and refills only as fast as other campaigns and organic traffic send visitors. Cut your prospecting budget and, a few weeks later, catalog retargeting runs short of people. Retargeting in Kuwait covers the audience windows, and Meta recommends excluding recent purchasers unless you are cross-selling.

Prospecting with the catalog has its own ceiling. When a broad catalog campaign keeps showing the same handful of products to the same people, frequency rises and new-customer sales flatten even though nothing in the setup changed. Widening the product set, adding new arrivals, or extending delivery to another GCC market you already ship to gives the system fresh supply. Raising the budget against the same audience mostly buys more repetition.

Measurement causes: pixel, Conversions API and attribution

Catalog ads depend on your pixel sending product IDs that match the catalogue. Meta calls this the catalog match rate: the share of content IDs in your website or app events that match products in a connected catalog. Meta recommends keeping it above 75 percent, and ideally above 90, and shows it in Commerce Manager under the catalog's events tab, covering the last 28 days with a delay of up to 48 hours.

Match rate usually breaks after a site change. A new theme, a product-options app or a platform migration can start sending variant IDs where the catalogue expects group IDs, or rename the parameter, and Meta's troubleshooting page is specific that it must be content_ids, with the s. Several catalogues on one pixel also split the rate, which is why Meta suggests keeping every product in one catalog, with Arabic and English handled as language feeds.

Conversions API changes can move ROAS in either direction. Conversions API sends events from your server rather than the browser. When both send the same purchase, Meta counts it once only if the event name and event ID match; without that, purchases are double-counted and ROAS looks better than it is, so fixing deduplication produces a drop that is really a correction. Meta notes that platforms such as Shopify handle these parameters automatically, and server-side tracking with CAPI covers the setup.

Finally, check whether the scoreboard changed rather than the game. Ads Manager lets you compare attribution settings side by side, including 1-day view, 1-day click, 7-day click and 28-day click, whatever setting the campaign optimises for. If purchases fell only in the view-through column, or someone changed the attribution setting, the drop may sit in the reporting rather than the sales. Your store's own orders settle the question.

How to tell which cause you have from the data

Look at the shape of the drop first. A cliff on a specific date points to an event: a feed upload, a site change, a price change, a stock-out or a campaign edit. A slide over several weeks points to fatigue or exhaustion. Put daily ROAS, spend, frequency, click-through rate and purchases for the last 60 days on one sheet, mark every change anyone made, and the date usually names the culprit.

Then split the funnel. If impressions and click-through rate held but the site's conversion rate fell, look at the store: stock, sizes, prices, page speed and checkout. If clicks fell while frequency rose, look at creative and audience. If store orders held while Ads Manager purchases fell, look at measurement. If spend itself dropped and Ads Manager says a product set does not contain enough products, the feed emptied it.

Next, check where the money went. Ads Reporting offers a product ID breakdown for catalog ads, and comparing the product mix before and after the drop can show that spend moved from a product that sold out to one that never converted. That is a stock problem dressed as a performance problem, and the fix sits in your product sets. Product-level ad spend covers that, with a stop-loss rule for items that spend without selling.

Rule out the market last, not first. Demand in Kuwait moves with the salary cycle, school terms, summer travel and Ramadan, and a drop that lines up with any of them may be demand rather than your setup. If organic search clicks in Google Search Console and your non-paid sales fell by a similar amount in the same weeks, the ads are probably reflecting the market. If only paid fell, the cause usually sits in the first three checks.

A 30-day recovery plan for catalog ads

Days 1 to 3: freeze and gather. Make no budget, creative or targeting changes, because each significant edit restarts learning and muddies the diagnosis. Pull 60 days of daily data, the product ID breakdown and your store's orders by product. In Commerce Manager, check product issues, the size of every product set in use and the catalog match rate. Then write down every change made to the site, the feed or the ads since the drop began.

Days 4 to 10: fix the store side. Clear feed errors, edit or appeal rejected products, remove stale sale prices, mark sold-out sizes correctly and put the feed on a regular upload schedule. Fix content ID mismatches and deduplication if the match rate or event counts point there. Meta says product reviews typically take up to a few days and match rate can take 48 hours to reflect a fix, so expect a lag before anything shows.

Days 11 to 20: fix the ad side in one move. If the evidence points to fatigue, launch a full batch of new catalog creative at once: fresh frames and overlays, product video where you have it, and Arabic and English copy written for each audience rather than translated. Rebuild product sets around margin and stock, and check your exclusions. Then leave the campaign alone for at least a week so it can collect results and settle.

Days 21 to 30: judge, then scale carefully. Compare the last ten days with your clean baseline, not a sale week, and let store orders break any tie. If ROAS recovered, raise budgets in modest steps; if not, and every check is clean, the limit is the market, and the answer is new products, new audiences or another GCC market. Profit is a better judge than ROAS, and you can start a free Shopify trial to record cost per item and see gross profit by product beside your orders.

Start your free Shopify trial

Frequently asked questions

Why did my Meta catalog ads suddenly stop selling?+

A sudden drop usually traces to a dated event rather than creative fatigue: a feed upload that emptied a product set or triggered rejections, a bestseller or core sizes selling out, a price or discount change, a site change that broke the product IDs your pixel sends, or an edit that pushed ad sets back into learning. Check Commerce Manager for product issues, product set sizes and catalog match rate, compare Ads Manager with your store's own orders, and list every change made in the days before the drop.

What is a good catalog match rate for Meta catalog ads?+

Meta's help centre recommends keeping catalog match rate above 75 percent, and ideally above 90 percent. Match rate is the share of content IDs in your pixel or app events that match products in the connected catalog. You can see it in Commerce Manager under the catalog's events tab; it covers the last 28 days and can lag by up to 48 hours. Common causes of a low rate are the pixel sending IDs that differ from the catalogue, a misspelt content_ids parameter, or products spread across several catalogs.

How long does it take for Meta catalog ads to recover?+

A realistic recovery plan runs about 30 days. Spend the first few days gathering data without editing anything, the next week fixing feed, stock, price and tracking problems, then refresh creative in a single batch and give it at least a week to settle. Meta says ad sets usually leave the learning phase after about 50 results in the week after a significant edit, and product reviews can take a few days. In Kuwait, judge the recovery against ordinary weeks, not against White Friday or Ramadan.

What are Advantage+ catalog ads called now?+

As of September 2026, Meta uses both names. Its help centre still describes Advantage+ catalog ads, while its product page says the catalog now works across sales campaigns rather than as a single ad format, and labels the capability products from your catalog. In the current setup you select your catalog while creating the campaign and choose the product set at ad set level. A sales campaign using Advantage+ audience, placements and budget is what Meta calls an Advantage+ sales campaign.

Keep reading

All Paid ads posts →