Product feed upload guide
For a comprehensive list of all the fields that can/should be included in your Product Dataset, please refer to the Dataset parameters page.
Introduction
Powering your Retail Media integration involves providing a daily product feed with up-to-date information about all the SKUs in your catalog.
This section outlines the file formats, upload methods, and ingestion frequencies supported by Criteo.
Connection
There are four main ways to store and send the product feed:
- using Criteo's SFTP server,
- using your own SFTP server,
- through an HTTP GET request,
- using the Product Importer API (recommended for wide datasets).
We detail those options below.
Using Criteo's SFTP server
Criteo provides an SFTP server for storing the feed file. Access can be granted using a randomly generated username and password or an SSH key. Your Technical Account Manager will provide the access credentials.
Uploading the feed
- Use a consistent filename for all subsequent feeds
- Please append a datestamp (
_yyyyMMdd
) to the end of the filename so that each subsequent feed does not overwrite the previous version. This is helpful in case we should ever need to revert to a prior version. - Example:
feed_[yyyyMMdd]
-->feed_20240701
,feed_20240702
,feed_20240703
, etc.
Using your own SFTP server
Criteo supports retrieving the feed from your own SFTP server.
Please provide the SFTP server details to your Technical Account Manager to configure the connection.
HTTP(s)
Criteo can access the feed via an HTTP GET request.
Please provide the necessary endpoint to your Technical Account Manager for configuration.
Using the Product Importer API
Please refer to the guides on this page to get started with the Product Importer API. You will also find Product Importer examples on this page.
Specification
Formats
Criteo can process two types of feed files: CSV (or TSV) and XML.
Please refer to the Feed examples for templates.
CSV/TSV
- Choose your preferred separator (comma for CSV, tab for TSV).
- Declare column headers in the first row.
- Field names in headers should not contain spaces; use underscores (_) instead.
- Use lowercase characters only.
XML
XML files can often be generated by web servers or automated feed providers. The file uses a series of XML nodes to enclose product data.
- Ensure the file has a valid XML tree structure.
- Begin with an XML declaration:
<?xml version="1.0" encoding="UTF-8"?>
. - Enclose each product in its own node.
- Place the product's SKU ID either in its own node or as an attribute of the product node.
Examples of SKU ID nodes
SKU ID as its own node:
<product>
<skuid>12345</skuid>
<!-- other product data -->
</product>
SKU ID as an attribute:
<product skuid="12345">
<!-- product data -->
</product>
JSON
JSON files can be used to for feeds, need to make sure the JSON feed has arrays of products with a specific name for an array object.
Example of the feed with the array called "Products"
{
"Products": [{
"id": "3865406",
"title": "Red Men's T-Shirt Size L",
"product_type": "'Computing>Keyboards and Mice>Mice','Hardware>Input Device'",
"product_type_key": "'123>4567>89012','456>7890'",
"google_product_category": "Electronics > Electronics Accessories > Memory",
"brand": "Adidas",
"gtin": "123456789012",
"price": "24.99",
"link": "https://www.example.com/ProductA",
"availability": "in stock",
"image_link": "https://www.example.com/image.png",
"item_group_id": "256dc9",
"regiondata": "{'123':{'Price':'3.50'}, '456':{'Price':'4.29'}, '872':{'Price':'3.75'}, '958':{'Price':'5.00'}}",
"seller_id": "as5df",
"seller_name": "bestbookshop",
"description": "A red cotton T-Shirt",
"product_rating": "4.5",
"number_of_reviews": "56",
"sale_price": "34.99",
"filters": "Colour=Red|Black, Size=XL, Screen Size=21",
}]
}
Frequency of ingestion
Regardless of the storage method, Criteo's servers can ingest the feed up to 4 times per day.
The feed is then processed, which can take up to 24 hours (see the "Processing the Feed" section below).
Size
Criteo has a soft cap of 10GB per feed file.
If the feed size exceeds this limit, contact your Technical Account Manager to raise the limit accordingly.
Compressed feed files
To optimize the upload and processing of your product feed, Criteo supports the use of compressed files across all connection types. You can compress your feed file using .zip
or .gz
formats. This can significantly reduce the file size, leading to faster upload times and more efficient data handling.
- Compression formats supported:
.zip
and.gz
- Connection types supported: Compressed files can be used regardless of whether you are using Criteo's SFTP server, your own SFTP server, or HTTP(s) methods.
Using compressed files helps streamline the feed submission process, particularly for larger datasets, ensuring quicker and more reliable integration with Criteo's systems.
Processing the feed
Once the feed is uploaded, Criteo processes it as follows:
- File validation: Checks for format compliance (CSV/TSV/XML) and structure.
- Data parsing: Extracts product data from the file.
- Data validation: Verifies that all required fields are present and correctly formatted.
- Database update: Updates the product catalog in Criteo's system with the new data.
These 4 steps can take up to 24 hours to finish.
Please ensure that your feed file adheres to the specifications to avoid processing delays.
Connecting to Criteo's SFTP server
To facilitate the secure transfer of your product feed files, Criteo provides an SFTP server.
You can connect using either a username and password or an SSH key. You will find below detailed instructions for both methods, including terminal commands and steps for using FileZilla.
Using username and password
Please make sure you replace the username and password in the examples below with the credentials provided by your Technical Account Manager.
Terminal connection
To connect to Criteo's SFTP server via terminal using a username and password, follow these steps:
- Open your terminal.
- Type the following command:
sftp [email protected]
- When prompted, enter your password:
123e4567-e89b-12d3-a456-426614174000
.
FileZilla connection
To connect using FileZilla with a username and password:
- Open FileZilla.
- Go to File > Site Manager.
- Click New Site and configure the following settings:
- Host:
data-sftp.criteo.com
- Port: Leave blank or enter
22
(for SFTP). - Protocol: SFTP - SSH File Transfer Protocol
- Logon Type: Ask for password
- User:
top_123e4567-e89b-12d3-a456-426614174000
- Host:
- Click Connect.
- Enter your password when prompted.
Using an SSH key
Generating an SSH key
Before connecting with an SSH key, you need to generate one if you don't already have it:
- Open your terminal.
- Run the following command to generate an RSA key pair:
ssh-keygen -t rsa -b 2048 -C "[email protected]"
- Replace
"[email protected]"
with your email address. This is a label that helps identify the key. - Follow the prompts to choose a file location and set a passphrase (optional).
Sharing the public key
Send the public key to your Technical Account Manager. The public key file is typically located at ~/.ssh/id_rsa.pub
. You can view and copy the contents of this file with:
cat ~/.ssh/id_rsa.pub
Terminal connection
To connect to Criteo's SFTP server via terminal using an SSH key:
- Use the following command:
sftp -i ~/.ssh/id_rsa [email protected]
- Replace
~/.ssh/id_rsa
with the path to your private key if it's located elsewhere.
FileZilla connection using SSH key
To connect using FileZilla with an SSH key:
- Open FileZilla.
- Go to Edit > Settings.
- Under Connection > SFTP, click Add key file….
- Browse and select your private key file (
id_rsa
). - Go to File > Site Manager.
- Click New Site and configure the following settings:
- Host:
data-sftp.criteo.com
- Port:
22
- Protocol: SFTP - SSH File Transfer Protocol
- Logon Type: Key file
- User:
top_123e4567-e89b-12d3-a456-426614174000
- Key file: Browse to your private key if not already added.
- Host:
- Click Connect.
These instructions will help you securely connect to Criteo's SFTP server using either method, ensuring safe and efficient management of your product feeds.
Updated 7 days ago