Site icon Oxedent

eCommerce: 8 Step Dynamic Ads Catalog Fix to Stop Lost Sales

Dynamic ads catalogue fix title card
Rate this post

Most dynamic ads catalogue failures trace back to one of two causes: feed field errors or identifier mismatches between your pixel events and your catalogue. Your immediate move is to open Commerce Manager diagnostics and download the product-level error report. Some issues disapprove items outright; others just quietly throttle delivery without ever showing up as a hard error.


TL;DR:

  • Critical issues often stem from missing or malformed mandatory fields, with price and ID fields causing the majority of disapprovals when not formatted correctly.
  • Image URL failures are frequent due to redirects or improper sizes, and currency mismatches between the feed and website can quickly lead to disapproval.
  • Proper identifier matching between pixel events, Conversions API, and catalog IDs is essential, as mismatches silently impair ad delivery and performance.
  • Regularly reviewing the Diagnostics tab, running validator tests before updates, and verifying match rates help prevent recurring errors and ensure consistent delivery.
  • Addressing catalogue errors and harmonizing identifiers typically yields faster ad performance improvements than creative testing alone.

Oxedent
Turn Catalogue Fixes Into Growth
Oxedent manages Google Ads and Facebook Ads for online retailers, with data-led optimisation focused on profitability and scalable revenue growth.

Visit Oxedent

Table of Contents

Where Meta reports catalogue problems and how to read the diagnostics report

The Diagnostics tab sits inside Commerce Manager, attached to your catalogue, and it is where every item-level problem actually surfaces. Account-level notifications tell you something is wrong; the diagnostics report tells you exactly what and where.

Meta colour-codes every item by severity. Red means a critical error that will stop the product from serving. Yellow flags a warning, something that limits performance without a full block. Green confirms the item is healthy and eligible to serve in dynamic ads. Once you can see the split between red and yellow rows, you already know whether you are dealing with an emergency or a performance leak.

Downloading the product-level CSV turns a vague “items disapproved” banner into a working document. Each row names the product, the specific field that failed, and the exact error message Meta generated, which is far more useful than the summary count shown on the main dashboard.

The report checks nine mandatory fields for every item, and Meta will flag a product the moment one of them is missing, malformed, or inconsistent with your page:

Typical error messages include “Missing required field: price”, “Image could not be downloaded”, or “Mismatched currency on landing page”. Each one tells you precisely which product and which attribute to fix, so you never have to guess which part of a thousand-line feed is causing the disapproval.

A concise, ordered 8-step troubleshooting checklist

A reproducible sequence saves hours compared with poking at random items. Work through these steps in order, and stop as soon as you find the cause, since catalogue problems rarely stack.

  1. Download the diagnostics report and sort by severity. Start with red (critical) rows before touching warnings, since these are the items that will not serve at all.
  2. Check the nine mandatory fields for presence and formatting. A missing brand value or a price field with the wrong currency symbol is the single most common cause of mass disapprovals.
  3. Inspect image URLs and destination links. Confirm every image_link resolves directly to an image file (not a redirect) and that link lands on a live product page without a bounce through an intermediate URL.
  4. Verify content_id against catalogue id with a test event. Fire a test “ViewContent” event and confirm the content_id passed by the pixel matches the id field in your catalogue exactly, including case and leading zeros.
  5. Confirm pixel and Conversions API payload parity. Compare currency fields, value fields and identifiers between browser-side pixel events and server-side CAPI events for the same product and session.
  6. Check feed processing state before assuming a bug. New or heavily edited feeds can take time to process, so an “under review” status is not automatically a failure; Google’s dynamic feed guidance notes similar crawl windows for other feed-based ad formats, which gives a useful benchmark for how long to wait before escalating.
  7. Run an end-to-end sample transaction. Add a flagged product to a basket, complete a test purchase, and confirm the resulting Purchase event maps back to the correct catalogue item.
  8. Escalate to Meta support only after steps 1 to 7. Have the product-level CSV, the test event payload, and the specific error message ready; vague “ads not approved” tickets take far longer to resolve than ones with evidence attached.

Pro Tip: Keep a spreadsheet of every error message you have already resolved, with the fix applied next to it. Repeat failures on new SKUs become a two-minute job instead of a re-investigation.

Catalogue and feed error types with hands-on fixes

Once you know where to look, most errors fall into a small number of repeatable categories.

Missing or malformed mandatory fields cause the bulk of disapprovals, as explained in detail in Why online sizing causes returns: fixes for retailers. A price field written as “£49.99 GBP” instead of a clean numeric value, or an availability field using “In Stock” with inconsistent capitalisation, will often fail validation even though a human reading it would understand it fine. Strip fields back to the exact format Meta expects and re-test a small batch before pushing the whole feed.

Image failures are their own category. Meta’s image specifications call for a minimum of 500×500 pixels, with 1024×1024 recommended, in JPEG, PNG or WebP format, under 8 MB, and with no text overlays on the product shot. A common silent cause is a CDN that redirects image requests rather than serving the file directly. Meta’s crawler often cannot follow that redirect, so the image is marked as “could not be downloaded” even though it loads fine in a browser.

Price and currency mismatches happen when your feed states one currency and your website checkout displays another, or when a sale price in the feed does not match what a shopper actually sees on the landing page. Meta checks this alignment directly, and a mismatch here is one of the fastest routes to a disapproved item.

One in a thousand sounds small, but a single unstable id field can silently break matching for an entire product line, since every event tied to that product stops reconciling with the catalogue the moment the identifier changes, as outlined in Meta’s catalogue and event matching guidance.

Duplicate or unstable IDs usually appear after a platform migration, when a new system generates fresh internal database IDs instead of preserving the original SKU. The fix is to standardise on a stable SKU as the catalogue id from the outset, so migrations never touch the value your ads depend on.

Feed format issues, meanwhile, sit underneath all of the above:

Running your feed through a validator before upload catches most of these before they ever reach Commerce Manager. For the Shopping side of the same problem, our piece on Google Shopping feed errors covers the equivalent formatting failures in more depth.

Policy disapprovals are the trickiest category because the stated reason is sometimes generic. When a product is disapproved for “policy”, check the specific wording in the CSV first: it usually names the exact policy area, such as prohibited content in the image or a misleading claim in the title, rather than leaving you to guess.

How to harmonise identifiers between pixel, Conversions API and the catalogue

A catalogue can be perfectly formatted and still under-deliver if the identifiers flowing through your pixel do not line up with the id field inside it. This is the quiet failure mode: no red error, no disapproval, just dynamic ads that never find the right product to show.

The most frequent scenario is an internal database ID sent as content_id in your events, while your catalogue uses the product SKU as its id. The two never match, so Meta’s event matching system records zero catalogue matches even though the pixel is technically firing correctly. We cover the exact remediation steps for this in our guide to fixing mismatched IDs in Facebook dynamic ads.

To inspect this properly:

Best practice is to standardise on stable SKUs as your content_id everywhere, with any internal database ID mapped server-side immediately before the event is sent. This keeps your catalogue’s historical performance data intact even when backend systems change.

Pro Tip: Treat a sudden drop in match rate as a diagnostics problem before a creative problem. Check identifier parity first; it is a five-minute fix compared with days spent testing new ad copy for a fault that was never creative.

Aim to verify match rate periodically rather than assume it stays stable after a migration or platform switch, since even a well-configured catalogue can drift out of alignment when a backend system changes how it generates IDs.

Operational monitoring and feed governance to prevent repeat issues

A catalogue that passes diagnostics today will not necessarily pass them next week, particularly during price changes or stock updates. A short routine keeps problems from piling up unnoticed.

Monitoring routine What it catches Recommended cadence
Diagnostics tab review Red/yellow item errors Weekly, daily during sales
Feed validator run Encoding, delimiter, escaping errors Before every upload
Match rate check Pixel/CAPI identifier drift After any platform migration
Staged feed test Bulk formatting errors Before large catalogue changes

Our guide to optimising product feeds sets out a fuller validation workflow if you are building this into a standing process rather than a one-off fix.

Practical tips from agency audits and when to call in support

Running audits across ecommerce catalogues surfaces the same handful of silent failures again and again, usually in accounts that look healthy on the surface.

Biplab, who put this workflow together, has worked through catalogue audits across eCommerce PPC accounts where the account-level dashboard said nothing was wrong while top sellers sat throttled in warning status.

A formal audit earns its keep when a catalogue has grown past a size where manual row-by-row checking is realistic, or when match rate has drifted and the cause is not obvious from a quick scan. At that point, a structured review against the nine mandatory fields, image specs and identifier parity finds issues faster than ad hoc checking.

Why catalogue fixes often outperform creative testing

Our honest view, after working through enough of these audits, is that most advertisers reach for a creative refresh before they have confirmed their catalogue is actually healthy, and that order is usually backwards. A new set of product images will not fix an item that is disapproved for a missing brand field, and a new ad copy test cannot recover a match rate that has collapsed because of an identifier mismatch.

Feed remediation tends to deliver a faster return on ad spend improvement than creative iteration, simply because it removes a hard block on delivery rather than nudging a variable that was never the bottleneck. We sequence every remediation engagement the same way: diagnostics first, identifier harmonisation second, creative and bidding optimisation only once the catalogue itself is confirmed clean. Skipping that order wastes testing budget on problems a feed fix would have solved in a day.

— Biplab

Get a free audit of your catalogue and Facebook Ads account

If working through diagnostics reports and identifier checks is not how you want to spend your week, our Facebook Ads management service includes catalogue and feed optimisation as part of ongoing account management, built specifically for established eCommerce brands running meaningful ad budgets.

A free Google/Facebook ads audit covers exactly the ground this guide walks through: diagnostics review, mandatory field checks, identifier parity between your pixel and catalogue, and a look at whether your current feed structure is costing you delivery. We ask for read access to your Ads Manager and Commerce Manager account, nothing more, and we will not lock you into a long-term contract to get the findings. If you would rather have the whole account managed going forward, our PPC management service starts from £350 per month.

FAQ

Is there an issue with Facebook ads right now?

Platform-wide outages are rare and usually resolve within hours when they do occur; most “ads not working” reports trace back to account-specific catalogue or feed errors rather than a broader platform problem. Check your own Commerce Manager diagnostics tab first, since that is where an account-specific cause will show up.

What are dynamic ads in Meta Ads Manager?

Dynamic ads automatically show products from your catalogue to people who have already shown interest in them, pulling the image, price and title directly from your feed rather than from a manually built creative. They rely on your catalogue being accurate and on your pixel or Conversions API events matching catalogue items correctly, as described in Meta’s catalogue troubleshooting guidance.

Why is the FB ads library not working?

Most ads library access issues come down to browser or regional restrictions rather than a fault with your own ad account or catalogue. If you are trying to debug your own dynamic ads, the Commerce Manager diagnostics tab is the more useful tool regardless, since the library does not show item-level feed errors.

What causes a dynamic ad to show the wrong product?

This almost always comes down to a content_id in your pixel event not matching the catalogue id for the product actually viewed, which causes the system to serve a different item from your feed. Checking payload parity between your pixel and Conversions API events, as covered in Meta’s event matching guidance, is the fastest way to confirm this.

How long does a catalogue feed take to update after a change?

Processing times vary with feed size and how extensive the changes are, and large or heavily revised feeds can take noticeably longer than small incremental updates. Google’s guidance on dynamic feed processing notes similar crawl and processing windows for other feed-based formats, which is a reasonable benchmark while Meta’s own feed is still showing as under review.

Sources

Exit mobile version