Criteo Feed Specification

In this article, you will find details about what you can include in your feed and how to format each field according to Google specifications.

1. PRODUCT INFORMATION TO PROVIDE

1.1. MANDATORY FIELDS

id

The id is a unique product identifier that represents one, and only one, product. Once an id is assigned to a product and imported, the id may not be used for a different product, nor can the id for a particular product change. If you have item_group_id also populated, populate id with the child ID/SKU.

Field Required for Google.

Character Requirements: The id must only contain ASCII characters, and must not contain quotation marks.

Limit: 240

Type: String

Example: abc123-black-7.5

title

The title is the product’s name, typically as it is displayed on the product’s detail page. This will be used as the main text descriptor in the banners for a given product.

Field Required for Google.

If you plan to reuse your Google Shopping feed, it is recommended to put the longest title in ‘title’, and a shorter title, more adapted to display, in ‘display_ads_title’

Character Requirements: The name must start with a letter or number.

Limit: 150

Type: String

Example: Working Boots – Size 7.5

link

The link is the product’s dedicated detail page. The link is usually, although not necessarily unique to a given product. The product information on this URL should match the corresponding information provided in your feed. Please specify the protocol (http:// or https://) for all URLs.

Field Required for Google.

Character Requirements: The link must start with the protocol (http:// or https://) followed by the full URL of the product detail page. All symbols must be encoded. Eg. $ must be replaced with %24.

Limit: 1024

Type: String

Example: http://www.example.com/product/working-boots

image_link

The image_link is a URL that specifies a file path to a given product’s image. The image_link will be used to display the product’s image in the banners. Ideally, images should be at least 800x800 pixels and under 16MB. The image must have a Content-Type header specified, either image/png, image/gif or image/jpeg. If you restrict your images from being accessible via cURL, please whitelist our user-agent so we may display your images in the Criteo banners: curl/7.15+ (x64-criteo) libcurl/7.15+ OpenSSL zlib libidn.

Field Required for Google.

Character Requirements: The image_link must start with http:// or https:// followed by the full URL of the product’s image. All symbols must be encoded. Eg. $ must be replaced with %24.

1.2. HIGHLY RECOMMENDABLE FIELDS

price

The is the price the manufacturer recommends the product is to be sold for. If a given product is “on sale”, the price field would be populated with the higher price. The price should be in the same currency as the site. Only populate price with the numeric value using a period (.) as the decimal separator and no thousands separator.

Field Required for Google.

Character Requirements: The decimal separator must be a period (.) with no thousands separator.

Limit: 14

Type: String

Example: 1299.99

description

The description is a short piece of text that gives more information about a product in addition to its name. Because of the design of the banners, shorter descriptions (under 50 characters) are more likely to fit in Criteo’s formats and layouts, however, not all formats and layouts will have a description.

Character Requirements: The description must start with a letter or number. Remove all HTML tags from this field, including style, embed, object, and anchor tags.

Limit: 5000

Type: String

Example: Excellent for daily use.

item_group_id

The item_group_id is a unique parent-level product identifier. It can contain alphanumeric characters that represent one product that can be expressed as a collection of child products. Once an item_group_id is assigned to a product and imported, the item_group_id may not be used for a different product, nor can the item_group_id for a particular product change. Because item_group_id can represent a collection of products, several products may have the same value for item_group_id.

Field Required for Google (depending on the country).

Characters Requirements: The item_group_id can only contain ASCII characters, and must not contain quotation marks.

Limit: 240

Type: String

Example: abc123

When importing the feed, Catalog import tool creates a new product, called "Parent product" based on the item_group_id field present in the feed. All the children (products having the same item_group_id) will be linked to this product. The information of the parent product, since it doesn't exist in the feed, is taken from the child with the lowest price in the feed (among the recommendable products).

GTIN (UPC, EAN) / MPN

Global Trade Item Number (GTIN) is a unique product identifier used to identify a product, a service, or an item in the global marketplace.

MPN is the number that uniquely identifies the product to its manufacturer

GTIN includes:

GTIN-12 (UPC-A): this is a 12-digit number used primarily in North America.

GTIN-8 (EAN/UCC-8): this is an 8-digit number used predominately outside of North America.

GTIN-13 (EAN/UCC-13): this is a 13-digit number used predominately outside of North America.

GTIN-14 (EAN/UCC-14 or ITF-14): this is a 14-digit number used to identify trade items at various packaging levels.

Field Required for Google.

Character Requirements: The value must be a 8-, 12-, 13-, or 14-digit number (UPC, EAN, JAN, or ISBN).

Limit: 50 / 70 for MPN

Type: String

Example: 0001234560012

google_product_category

Category level attributes indicate the category of the product being submitted, according to the Google product taxonomy.

If your product can be linked to multiple categories, we only want the one that is the most relevant.

Field Required for Google.

Character Requirements: We accept both IDs and fulll category path

Type: String

Example: Women’s > Shoes > Working Boots OR 2271

1.3. RECOMMENDED FIELDS

product_type

The product_type is a category (or list of categories) to which the product belongs. The product_type field lists your merchandising category, or set of merchandising categories for this product. It must match your website categories. Each level in the hierarchy needs to be delimited by " > ". If a product is available in multiple categories, please send the different categories as comma (,) delimited with the primary category first. product_type is case-sensitive, so if you use women’s for one product and Women’s for another, Criteo will interpret these as two different categories.

Character Requirements: The product_type must start with a letter or number, and can only contain ASCII characters. The delimiter between categories must be > (&gt; for XML feeds). We only support the full category path. If a product is available in multiple categories, please send the different categories as comma (,) delimited with the primary category first. We do not accept the categories ID of the path. IDs must be filled in the product_type_key field.

availability

The availability indicates if the product may be purchased on the site. You may populate availability with 3 possible values: preorder (item is not currently shipping, but still may be purchased), out of stock (item is not shipping and you are not accepting orders for this item), and in stock (item is shipping and orders may be placed for this item). Items marked as out of stock will be excluded from being shown in the banners.

Field Required for Google.

Character Requirements: The availability must be populated with one of the following three values:

preorder

out of stock

in stock

Limit: 16

Type: String

Example: in stock

adult

The adult attribute indicates if the product is safe to be shown for all users and all audiences. Adult products can’t be shown in Criteo banners, and might lead to a blacklisting of your campaign by publisher networks. You can also use this field with the value ‘yes’ if you want this product to be non-recommendable and not displayed in the banners.

Field Required for Google (depending on the country).

Character Requirements: The value must be yes or no

Type: Boolean

Example: no

additional_image_link

The additional_image_link is a URL that specifies a file path to a given product’s image. The additional_image_link will be used to display the product’s image in the banners. Ideally, images should be at least 800x800 pixels and under 16MB. The image must have a Content-Type header specified, either image/png, image/gif or image/jpeg. If you restrict your images from being accessible via cURL, please whitelist our user-agent so we may display your images in the Criteo banners: curl/7.15+ (x64-criteo) libcurl/7.15+ OpenSSL zlib libidn.

Character Requirements: The additional_image_link must start with http:// (not https://) followed by the full URL of the product’s image. All symbols must be encoded. Eg. $ must be replaced with %24. However, the additional_image_link cannot contain any symbols in the query string (any characters after the ?).

sale_price

The sale_price is the price at which the product is available for purchase on the site, if a given product is ‘on sale’, the sale_price would be populated with the lower price. The sale_price should be in the same currency as the site. Only populate sale_price with the numeric price using a period (.) as the decimal separator and no thousands separator.

Limit: 14

Character Requirements: The decimal separator must be a period (.) with no thousands separator.

Type: String

Example: 1199.99

brand

The brand indicates the product brand’s name. Some products don’t have a clear brand associated. In this case this info doesn’t need to be provided.

Field Required for Google.

Limit: 70

Character Requirements: The name must start with either a letter or number, and can only contain ASCII characters. Remove all HTML tags from this field, including style tags.

Type: String

Example: Criteo

1.4. OPTIONAL FIELDS

display_ads_title

This field can be used to display a different title in Display ads (different from 'title') if you wish.

Shorter titles are more likely to fit in our display banners, but longer titles work better for Criteo Search. We recommend full/long titles in 'title', and shorter titles in 'display_ads_title'.

Limit: 150 (25 is recommended)

Type: String

display_ads_value

Contains the margin of the item in the same currency as the item price. A multiple of the margin can also be used to hide the actual product margin but it should be consistent across products.

Value limit : 10 times the product price

Type: String

Example : 299.99

custom_label_0

Add additional custom information about the product.

Character Requirements: Only 5 levels of custom label are authorized (0 to 4)