1 - Overview
A product feed is a file that contains information about all products on your site. We will use this information to build the dynamic product banners.
In this article, you will find details about what you can include in your feed and how to format each field.
2 - Feed formats supported by Criteo
To make sure Criteo can retrieve your product feed, please use one of these formats:
Feed format |
Detail |
Download |
TSV |
This format is based on the Tab-separated value. The header must be declared in the first row of the file. Field names can contain spaces or underscores (e.g. image_link or image link) |
|
CSV |
This format is based on the Comma-separated value. The header must be declared in the first row of the file.Field names can contain spaces or underscores (e.g. image_link or image link) |
|
XML |
This format should respect the basics of the XML structure. Products are represented by a set of XML nodes. The product list must start by <?xml declaration tag. |
3 - Product Information to provide
All field names must be in English. Product information should not contain HTML tags or style tags.
3.1 - Required fields to advertise your products
3.1.1 ID
This field is required for all products in the feed, and cannot be empty/blank. The ID is a unique product identifier that represents only one product. Once an ID is assigned to a product and imported, it 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. |
Character Requirements: The ID must only contain ASCII characters, and must not contain quotation marks.
Limit: 240
Type: String
Example: abc123-black-7.5
3.1.2 title
This field is required for all products in the feed, and cannot be empty/blank 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.
|
Character Requirements: The name must start with a letter or number.
Limit: 150
Type: String
Example: Working Boots – Size 7.5
3.1.3 description
The description is a short piece of text that gives more information about a product in addition to its name. Because of banners' design, 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.
3.1.4 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. |
Character Requirements: We accept both IDs and fulll category path
Type: String
Example: Women’s > Shoes > Working Boots OR 2271
3.1.5 link
This field is required for all products in the feed, and cannot be empty/blank 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. |
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
3.1.6 image_link
This field is required for all products in the feed, and cannot be empty/blank 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. |
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.
Limit: 2000
Type: String
Example: http://www.example.com/product/image/working-boots.png
3.1.7 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 ?).
Limit: 2000
Type: String
Example: http://www.example.com/product/image/working-boots-side.png
3.1.8 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. Character Requirements: The availability must be populated with one of the following three values: · preorder · out of stock · in stock |
Limit: 25
Type: String
Example: in stock
3.1.9 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. |
Character Requirements: The decimal separator must be a period (.) with no thousands separator.
Limit: 14
Type: String
Example: 1299.99
3.1.10 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. |
Character Requirements: The decimal separator must be a period (.) with no thousands separator.
Type: String
Limit: 50
Example: 99.99
3.1.11 gtin (upc, ean)
This field is required for Criteo Predictive Search Global Trade Item Number (GTIN) is a unique product identifier used to identify a product, a service, or an item in the global marketplace. GTIN includes:
Character Requirements: The value must be a 8-, 12-, 13-, or 14-digit number (UPC, EAN, JAN, or ISBN). |
Limit: 50
Type: String
Example: 0001234560012
3.1.12 mpn
MPN is the number that uniquely identifies the product to its manufacturer.
Limit: 70
Type: String
Example: 4060882
3.1.13 brand
This field is required for Criteo Sponsored Products 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. |
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.
Limit: 70
Type: String
Example: Criteo
3.1.15 product_type
This field is required for Criteo Sponsored Products 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 > (> 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.
Limit: 500
Type: String
Example:
- Single: Computing<Keyboards and Mice<Mice<Wireless Mice
- Multiple: Computing<Keyboards and Mice<Mice<Wireless Mice,Gifts<For Dad<Mice
3.1.16 product_type_key
This field is required for Criteo Sponsored Products This field lists the unique ID and hierarchy for the product_type or set of product_type(s). Each key in the hierarchy needs to be delimited by " > ". If a product is available in multiple categories, please send as comma (,) delimited with the primary category first in the array. |
Character Requirements: The product_type_key can only contain ASCII characters. The delimiter between categories must be > (> for XML feeds). If a product is available in multiple categories, please send the different categories as comma (,) delimited with the primary category first.
Limit: 500
Type: String
Example:
- Single: XY1 > YZ1 > Z1
- Multiple: XY1 > YZ1 > Z1 , AB1 > BC2 > A
3.1.17 number_of_reviews
This field is recommended for Criteo Sponsored Products This field contains the number of reviews for the product. number_of_reviews is required if you want this information to be displayed in the ad. |
Limit: 8
Type: Integer
Example: 2456
3.1.18 product_rating
This field is recommended for Criteo Sponsored Products This field represents the rating of the product. product_rating is required if you want this information to be displayed in the ad. |
Character Requirements: The decimal separator must be a period (.) with no thousands separator.
Limit: 8
Type: String
Example: 4.5
3.1.19 filters
This field is required for Criteo Sponsored Products filters are attributes that designate differences between products in the same category. Filters should be provided as a comma separated list of attribute name value pairs. They must match the list of filters available on your website and matching this product. This is critical for Criteo Sponsored Products. |
Character Requirements: The Key=Value pairs must be comma (,) separated and multiple values pipe (|) separated.
Limit: 2000
Type: String
Example: Color=Red|Black, Size=XL, Screen Size = 15"
3.1.20 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. |
Character Requirements: The value must be yes or no
Type: Boolean
Example: no
3.2 - Optional fields
3.2.1 mobile_link
The mobile_link is the link to the mobile-optimized version of your product landing page. This url should be different from the one that you provide in the 'link' field. By providing a mobile link: you will improve your customers’ user experience, and reduce the landing page loading latencies.
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: 2000
Type: String
Example: http://m.example.com/product/working-boots
3.2.2 condition
The condition is used to qualify the product with three different accepted values: ‘new’, ‘refurbished’ and ‘used’.
Character Requirements: Only 3 values are accepted:
- 'new' [new]
- 'refurbished' [refurbished]
- 'used' [used]
Type: String
Example: new
---
Product Variants
3.2.3 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
Characters Requirements: The item_group_id can only contain ASCII characters, and must not contain quotation marks.
Limit: 240
Type: String
Example: abc123
3.2.4 color
Detail: This attribute will indicate the dominant color(s) of the product.
Limit: 100
Type: String
Example: Black
3.2.5 gender
Required for all products in an item group that vary by gender.
Characters Requirements: Only 3 values are accepted:
- 'male' [male]
- 'female' [female]
- 'unisex' [unisex]
Type: String
Example: male
3.2.6 age_group
This attribute will be used to indicate the age group targeted for your product.
Characters Requirements: Only 5 values are accepted:
- 'newborn' [newborn]
- 'infant' [infant]
- 'toddler' [toddler]
- 'kids' [kids]
- 'adult' [adult]
Type: String
Example: adult
3.2.7 material
This attribute will indicate the material or fabric that a product is made of. Required for all products in an item group that vary by material.
Limit: 200
Type: String
Example: leather
3.2.8 pattern
This attribute indicates the pattern or the graphic print for the product. Required for all products in an item group that vary by pattern.
Limit: 100
Type: String
Example: Striped
3.2.9 size
This attribute will indicate the size of the product. Required for all products in an item group that vary by size.
Limit: 100
Type: String
Example: L
3.2.10 size_type
You can specify the cut of the product by adding the size type.
Characters Requirements: Only 5 values are accepted:
- 'regular' [regular]
- 'petite' [petite]
- 'plus' [plus]
- 'big and tall' [big and tall]
- 'maternity' [maternity]
Limit: N/A
Type: String
Example: regular
3.2.11 size_system
Detail: You can specify the country's sizing system of the product by adding the size system.
Character Requirements: There are 11 accepted values: US, UK, EU, DE, FR, JP, CN (China), IT, BR, MEX, AU
Limit: N/A
Type: String
Example: US
---
For marketplace sellers
3.2.12 cross_sellers_product_id
This field is only required if you are a marketplace and are reselling a product for several sellers.
The cross_sellers_product_id is a unique product identifier grouping several id referring to the same product sold by different sellers. Once a cross_sellers_product_id is assigned to a product and imported, the cross_sellers_product_id may not be used for a different product, nor can the cross_sellers_product_id for a particular product change. Because cross_sellers_product_id represents a collection of products, several products may have the same value for cross_sellers_product_id
Characters Requirements: The cross_sellers_id must start with a letter or number, and can only contain ASCII characters.
Limit: 250
Type: String
Example: abc123
3.2.13 seller_name
This field is only required if you are a marketplace and are reselling a product for several sellers.
The seller_name identifies the display name of a seller. This name is generally the the name displayed along with a particular product on a seller's page or in the buy box. There should be a one-to-one relationship between seller_name and seller_id.
Limit: 200
Type: String
Example: My Electronics Store
3.2.14 seller_id
This field is only required if you are a marketplace and are reselling a product for several sellers.
The seller_id is a unique identifier that represents a seller on your retailer site. There should be a one-to-one relationship between seller_id and seller_name
Limit: 200
Type: String
Example: 3265fd
---
Shipping Information
3.2.15 shipping
This attribute will be used to specify the shipping detail for each country supported, indicating the price and service
Type: String
Example:
<shipping>
<country>US</country>
<service>Standard</service>
<price>15.5 USD</price>
</shipping>
3.2.16 shipping_weight
The shipping_weight represents the weight of the product.
Character Requirements: Only the following units are accepted: lb, oz, g, kg
Type: String
Example: 1 kg
3.2.17 shipping_height
The shipping_height represents the height of the product.
3.2.18 shipping_width
The shipping_width represents the width of the product
3.2.19 shipping_length
Detail: The shipping_length represents the length of the product.
3.2.20 shipping_label
This attribute can be used to assign labels to specific products using values of your choosing, such as perishable, bulky, or promotion.
Limit: 100
Type: String
Example: promotion
---
Product Pack & Bundle
3.2.21 multipack
This attribute specifies a pack of identical products.
Type: Integer
Example: 2
3.2.22 is_bundle
This attribute specifies a group of different products.
Type: Boolean
Example: FALSE
3.2.23 promotion_id
Detail: This attribute specifies a promotion ID.
Limit: String
Type: 60
Example: 123654
3.2.24 promo_text
Detail: This field contains the promotional text for this product
Limit: String
Type: 60
Example: Special Buy
---
Additional Attributes
3.2.25 custom_label_0
Add additional custom information about the product.
Character Requirements: Only 5 levels of custom label are authorized (0 to 4)
Limit: 100
Type: String
3.2.27 adwords_redirect
URL to track separately all clicks from Google Shopping.
Limit: 200
Type: URL
Example: http://www.mywebsite.com/productpage.html
3.2.28 excluded_destination
The 'excluded destination' attribute prevents an item from appearing in certain destinations even though it appears in your product data.
3.2.30 unit_pricing_measure
The ‘unit pricing measure’ attribute defines the measure and dimension of an item. Eg. 25floz or 15oz.
Example: 15oz
3.2.31 unit_pricing_base_measure
The ‘unit pricing base measure’ attribute specifies your preference of the denominator of the unit price. Eg. 50floz.
Example: 50oz
3.2.32 display_ads_title
This field can be used to display a different title in Display ads (different from 'title') if you wish.
As 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
3.2.33 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
3.2.34 map_price
The map_price field represents the "Minimum Advertiser Price" of a product. This field value is never displayed in our ads and must be specified if for some reason, you cannot display in ads a price inferior to the map_price. If the current price of the product is lower than the map_price, price will not be displayed in the ad.
Character Requirements:The decimal separator must be a period (.) with no thousands separator.
Type: String
Example : 1299.99
3.2.34 model_number
The model_number is used to differentiate one product in a series from another. The model_number is often used by brands to differentiate similar products in the same category. The same model_number may sometimes appear on similar variation products with different id values.
Limit: 200
Character Requirements: The model_number can only contain ASCII characters.
Type: String
Example: AXY27
Example Catalog structure
XML Feed example
XML
<rss xmlns:g="http://base.google.com/ns/1.0"version="2.0"> <channel> <title>Your Website</title> <link>http://www.yoursite.com/us/</link> <description>Your Website</description> <item> <g:id>abc123-black-7.5</g:id> <g:title>Working Boots Size 7.5</g:title> <g:description>Excellent for daily use</g:description> <g:google_product_category>Women’s > Shoes > Working Boots</g:google_product_category> <g:link>http://www.example.com/product/working-boots</g:link> <g:image_link>http://www.example/com/product/image/working-boots.png</g:image_link> <g:additional_image_link>http://www.example.com/product/image/working-boots-side.png</g:additional_image_link> <g:additional_image_link>http://www.example.com/product/image/working-boots-side_2.png</g:additional_image_link> <g:availability>in stock</g:availability> <g:price>1299.99</g:price> <g:sale_price>1199.99</g:sale_price> <g:gtin>0001234560012</g:gtin> <g:brand>Criteo</g:brand> <g:adult>no</g:adult> <g:product_type>Women’s > Shoes > Working Boots</g:product_type> <g:mobile_link>http://m.example.com/product/working-boots</g:mobile_link> <g:condition>new</g:condition> <g:availability>in stock</g:availability> <g:availability_date>2016-06-25T13:00-0800</g:availability_date> <g:sale_price_effective_date>2016-03-01T13:00-0800/2016-03-11T15:30-0800</g:sale_price_effective_date> <g:item_group_id>abc123</g:item_group_id> <g:color>Black</g:color> <g:gender>male</g:gender> <g:age_group>adult</g:age_group> <g:material>leather</g:material> <g:pattern>Striped</g:pattern> <g:size>L</g:size> <g:size_type>regular</g:size_type> <g:size_system>US</g:size_system> <g:shipping> <g:country>US</g:country> <g:service>Standard</g:service> <g:price>5.5 USD</g:price> </g:shipping> <g:shipping_weight>1 kg</g:shipping_weight> <g:shipping_label>promotion</g:shipping_label> <g:multipack>2</g:multipack> <g:is_bundle>FALSE</g:is_bundle> <g:custom_label_0>custom data 0</g:custom_label_0> <g:custom_label_1>custom data 1</g:custom_label_1> <g:custom_label_2>custom data 2</g:custom_label_2> <g:custom_label_3>custom data 3</g:custom_label_3> <g:custom_label_4>custom data 4</g:custom_label_4> <g:sale_price_effective_date>2016-03-01T13:00-0800/2016-03-11T15:30-0800</g:sale_price_effective_date> <g:adwords_redirect>http://www.mywebsite.com/productpage.html</g:adwords_redirect> <g:excluded_destination>Shopping</g:excluded_destination> <g:expiration_date>2016-07-24</g:expiration_date> <g:unit_pricing_measure>15oz</g:unit_pricing_measure> <g:unit_pricing_base_measure>50oz</g:unit_pricing_base_measure> </item> </channel> </rss> |