Ducted

Criteo Product Catalog
feeds.

Commerce Growth and Retail Media on Criteo.

Criteo's catalog is the one channel where a Google-shaped price is wrong: price is a plain number with a period decimal and no currency code, and a feed that appends USD fails every record. Every product also needs a GTIN or, for products without one, an MPN.

The spec also has its own list syntax: up to ten product types, comma separated and each in single quotes, and up to three colours separated by a slash.

What the feed needs

Generated from the Ducted Criteo Product Catalog template, the same field rules your mapping is validated against.

58 fields: 8 required, 10 recommended, 40 optional. 2 fields change level with the market, the product or how the record is sent.

FieldLevelAccepted values / example
idrequired25c48
titlerequiredWorking Boots - Size 7.5
descriptionrequiredExcellent for daily use
linkrequiredhttps://www.example.com/ProductA
image_linkrequiredhttp://www.example.com/product/image/working-boots.png
product_typerecommended'Computing>Keyboards and Mice>Mice','Hardware>Input Device'
brandrecommendedAdidas
pricerequired19.99
availabilityrecommendedin stock · out of stock · preorder
sizerecommendedS
colorrecommendedBlack/White
gtinrequired
required for products without an mpn
00012345678905
mpnrequired
required for products without a gtin
T49025028767898
product_type_keyrecommended'123>4567>89012','456>7890'
google_product_categoryrecommendedApparel & Accessories > Clothing
item_group_idrecommendedAB1234
sale_pricerecommended49.99
number_of_reviewsrecommended215

Field rules from the official spec, verified 2026-10-02.

Also supported, always optional (40): filters, product_rating, custom_label_0, custom_label_1, custom_label_2, custom_label_3, custom_label_4, additional_image_link, seller_name, seller_id, cross_sellers_product_id, is_buybox, mobile_link, smallimage, retailprice, condition, adult, is_bundle, multipack, recommendable, age_group, gender, material, pattern, size_type, size_system, model_number, badge, promotion_id, promo_text, shipping, excluded_destination, excluded_channels, adwords_redirect, display_ads_title, display_ads_value, expiration_date, unit_pricing_measure, unit_pricing_base_measure, regiondata

Where Criteo catalog feeds get rejected

Price with a currency code

19.99 is right, 19.99 USD is not. Criteo reads a plain number with a period as the decimal separator and no thousands separator; the same applies to sale_price and retailprice.

No GTIN and no MPN

Criteo requires a gtin or, for products without one, an mpn. A record with neither is rejected.

Ids that collide

id must be unique and consistent across uploads, ASCII only with no quotation marks, and must differ from item_group_id and seller_id. Two products sharing an id reject.

Lists in the wrong syntax

product_type takes up to ten categories separated by commas, each wrapped in single quotes ('Computing>Mice','Hardware>Input Device'); color takes up to three values separated by a slash. A filters value containing an ampersand is flagged because it breaks URL parsing in ad requests.

Validate your product feed for free →

From source to a live feed URL

  1. Connect the source. A Shopify, WooCommerce, Teemill, Spring, Printify Pop-Up, Bonfire or Fourthwall store address, a file, a feed URL or a REST API. No source at all? Website Indexing builds one from the store itself.
  2. AutoMap the fields. Every source column is scored against the channel template and the best match is pre-filled. You confirm or tweak.
  3. Transform what needs it. Casing, currency and number formats, conditional values, fallbacks for fields the source sometimes leaves empty.
  4. Validate before you send. The health check names the field, counts the affected records and shows example rows from your own data.
  5. Serve a permanent URL. The platform fetches your feed on a schedule; feed pull tracking shows when it last did.

The rest of the shopping stack

One mapped catalog serves every channel; each page covers what that platform's feed needs.

E-commerce feedsGoogle ShoppingMeta CatalogTikTok CatalogPinterestMicrosoft ShoppingSnapchatRedditX ShoppingChatGPT Ads

Criteo from the catalog you already mapped.

Add a Criteo output to an existing project, or start free and map your first.

Create free accountCheck an existing feed