Option 2: Provide Product Data Files to Update Your Catalog

Add product details to your catalog using product data files.

This document explains how to update your TSV files and send data files to Epsilon Retail Media, essential for running campaigns and enabling Epsilon Retail Media to deliver personalized ads.

Prerequisites for the Product Detail File Delivery

  • File Format: Ensure all files are tab-delimited (TSV). This format must be consistent across all files.
  • Unquoted TSV: TSV files cannot be in quoted format. Ensure you synchronize unquoted files.
  • Header Row: Include a header row in each data file to identify columns.
  • Gzip Compression: Deliver the TSV files using gzip compression.
  • File Naming Convention: Use the following format for naming files: <clientname>_ONLINE_PRODUCT_CATALOG_YYYYMMDD.gz
    • <clientname>: Replace with the appropriate client name.
    • YYYYMMDD: The date the file is delivered in Year-Month-Day format. It is recommended to ingest the product catalog daily for serving the best ads. Each ingestion is a full refresh, meaning the previous day's catalog is completely wiped, and the new catalog is uploaded and used. Therefore, the date in the file name is crucial.

Required Fields for Product Catalog Fields

You must share the TSV file containing the following details:

Field nameDescription
product_code or product_id (Required)A code to identify the product in your system, typically the GTIN of the product.

This is the same product ID used within your site's integration with Epsilon/CitrusAd. It should be a product-level ID, not a SKU-level ID (i.e., it should not contain size or color information).
product_name (Required)The name or title of the product as it appears on your site.
product_description (Required)The description of the product as it appears on your site.
URL (Required)The URL of the page containing this product on your site.
image_url (Optional)A hyperlink to the image of a product. Must be a valid URL.
inventory or availability (Required)Indicate "Y" if the product is currently available for purchase online; otherwise, indicate "N". Alternatively, this can be provided as a numeric inventory value, where 0 represents "N" and 1 represents "Y".

If the value is 0, product ads will not be served for the product.
price (Optional)The price of this product in local currency, including the exact amount in dollars and cents. Do not include the currency symbol.
sale_price (Optional)The sale price of this product in local currency, including the exact amount in dollars and cents. Do not include the currency symbol.
type (Optional)The product category or classification. This field is typically specific to the retailer and may often be NULL. Additional information or guidelines may be required to accurately populate this field.
UPC (Required)The Universal Product Code (UPC) of the product.
PARENT_SKU_NUMBER (Optional)Parent SKU Number – The client should verify if a parent SKU number is unavailable and confirm whether the UPC or Product ID should be used as an alternative.
CATEGORY_HIERARCHY_IDS (Optional)Delimited hierarchy of category IDs for the product. For example, 1234>2345>3456
CATEGORY_HIERARCHY_NAMES (Optional)Delimited hierarchy of category names for the product. For example, Men>Tops>Shirts
PRODUCT_BRAND (Required)The brand this product is associated with.
FILTERS (Required)A json array of product filters.
FILTER:KEY (Required)This is required for the category and broad display placements.

To add filters like categories into the system effectively, we recommend that retailers share their list of categories (retailer_taxonomy). Categories should be added in the format "category:", such as "category:Books".

If this type of column is used, retailers must provide a value for . Multiple columns with this syntax can be included in a TSV file.
subClassName (Required for cross-sell onsite placements only)The name of the subclass or category that the relevant product belongs to. For example, a butter product may belong to the 'bread' subclass but not to 'bandages.' This classification enables better product targeting.
xSellSubClassName (Required for cross-sell onsite placements only)The names of the subclasses/categories the relevant product is able to target products within.
custom_payload (Optional - On-site only for integrations where the retailer receives additional custom metadata to render a product.)This field contains a custom payload that should be threaded through to ad generation.

The value for this column must be a valid JSON object serialized into a byte array and Base64 encoded.
PRODUCT_REVIEW_COUNT (Optional)Current count of online reviews for this product.
PRODUCT_RATING_COUNT (Optional)Current count of online ratings for this product.
PRODUCT_RATING_AVERAGE (Optional)Current average rating for this product.
COLLECTION_ID (Optional)The ID for a collection that the product belongs to (e.g., Outfit, Series, etc.). All products in the same collection should share the same collection ID.
COLLECTION_TYPE (Optional)The type for a collection that the product belongs to (e.g., Outfit, Series, etc.). All products in the same collection should share the same collection ID.
COLLECTION_IMAGE_URL (Optional)The URL of an image displaying this collection.
COLLECTION_URL (Optional)The URL of the page on your site containing this collection.
GENDER (Optional)The gender (mens, womens, boys, girls, unknown) this product is associated with.
SIZEThe size of this product.
CUSTOMPRODUCT_ATTRIBUTE#Custom fields containing information specific to your business. Work with your Client Integration Engineer to determine the content of this field or if additional fields are needed.

Share Your TSV File

After updating your TSV file with all the required fields, share it with your Epsilon Client Integration Engineer (CIE). Additionally, provide the following details along with the file:

  • Data contact email address
  • Header Record for each of the files
  • Notify Epsilon team that files have been sent and include row counts for each file