Meta AdsWarningDegraded dynamic ad matching and unreliable ROAS attribution

How to Fix “Pixel and catalog price/currency mismatch” in Meta Commerce Manager

Meta compares the price and currency your pixel reports on ViewContent and Purchase events with the values in the catalog. A formatting difference — comma decimals, missing currency, tax-inclusive versus tax-exclusive — reads as a mismatch.

Free, no signup

Scan your feed for this error for free

Paste your product feed URL (XML, CSV or JSON). The audit checks Pixel and catalog price/currency mismatch along with 25+ other pre-channel rules.

Why this happens

Technical root cause

The pixel reads the rendered storefront price (already localized) while the catalog carries the raw database price. Different rounding, currency symbols or decimal separators put the two out of sync even when the underlying amount is identical.

Meta Commerce Manager reports it as Pixel and catalog price/currency mismatch and applies: Degraded dynamic ad matching and unreliable ROAS attribution.

Native CMS friction

  • Shopify

    Markets and currency conversion change the displayed price per visitor, while the feed exports the shop's base currency.

  • VTEX

    Price tables per trade policy mean the pixel may fire a policy price that never appears in the exported feed.

  • WooCommerce

    Tax display settings can render prices with tax included while the feed exports the net price.

Fixing it manually

  1. 1

    Open Events Manager and inspect a recent ViewContent event for one affected product.

  2. 2

    Compare its value and currency with the same item in Commerce Manager.

  3. 3

    Align the tax treatment on both sides and use a dot as the decimal separator.

  4. 4

    Publish prices as a numeric amount plus an ISO 4217 code, e.g. 129.90 USD.

The IRONFEED automated solution

One rule, applied to every product on every export. No spreadsheets, no re-uploads.

Rule syntax
IF price MATCHES '[^0-9.]' OR currency NOT ISO_4217
  SET price = format_decimal(strip_symbols(price), 2) + ' ' + iso_currency(currency)
  ELSE keep price unchanged

Run automatic linter checks before Meta Commerce Manager crawls your feed. IRONFEED validates every export against the channel spec, so this error is caught in Feed Review instead of in your channel dashboard.

Attribute requirements

Meta Commerce Manager attribute requirements for Pixel and catalog price/currency mismatch and the matching IRONFEED transformation
AttributeMeta Ads requirementAccepted formatIRONFEED transformation
priceRequired; must match the price on the landing pageNumeric with dot decimals plus ISO code, e.g. 129.90 USDSymbol stripping, decimal normalization and currency append
sale_priceOptional; must be lower than priceSame as priceValidated against price, dropped when higher or equal

Frequently asked questions

Not usually. It weakens matching and attribution rather than removing the item, but Meta can pause delivery when the gap is large.

Publish one feed per target country in that country's currency instead of relying on runtime conversion.

Related Feed Issues & Fixes

Other critical errors affecting catalog performance on Google, Meta, TikTok, and Mercado Libre.

Looking for a different error?