Skip to main content

Catalog Requirements

The following sections outline the requirements for setting up catalogs in Reddit Ads.

Bulk import catalogs

  • Specifications
    • A UTF-8 encoded CSV file with all products in the catalog. TSV, RSS XML, ATOM, and compressed files aren't supported.
    • File size may be up to 200 MB.
  • Formatting
    • Must contain a title row.
    • Although double quotation marks (") aren't required for text qualifiers, we recommend using them to prevent misinterpreted data. Single quotation marks will be interpreted as part of the text.
    • If your value includes double quotation marks (“):
      1. Double the quotes (“”)
      2. Wrap the entire title with another pair of double quotes
      Example: "T-shirt" by Brand XYZ should be formatted as """T-shirt"" by Brand XYZ"
    • Can only contain the following delimiters: (,), (;), (|), and (\t)
    • Currency should be formatted as a number followed by the ISO 4217 currency code. For example, 123.45 USD and ”123.45 USD” are valid.
    • If UTM parameters or third-party tags must be used, they should be added to the end of the product URL and included in the Link column.
  • Updating: The catalog can be manually refreshed by uploading a new CSV file. This will update ads with the latest product data.

Data feeds catalogs

  • Specifications
    • Supported URLs: A HTTPS, FTP, or SFTP URL for a product feed from a feed partner or hosted elsewhere

      Never include credentials in the URL. Use Catalog Manager fields to pass username and password if required.

    • Supported files: CSV, Google Sheets, RSS 2.0 XML, or compressed files. TSV and ATOM XML files aren't supported.
  • Formatting
    • The link should include the file name but not the credentials:
      • https://reddit.com/best_catalog.csv
      • sftp://reddit.com/best_catalog.csv
      • ftp://reddit.com/best_catalog.csv
    • If UTM parameters or third-party tags must be used, they should be added directly into the feed.
  • Updating: The catalog automatically refreshes based on your sync schedule. This will automatically update ads on refresh. Since you won't be notified when a refresh occurs, we recommend manually checking your catalog regularly.

Required fields

Products in a catalog must contain data in these fields. You'll receive an error if products are missing this data.

Values for all fields must be at least one character in length.

Unless otherwise stated, these fields aren't visible to users.

FieldDescriptionRequirements & Recommendations
idThe unique identifier of the product.
The product ID for your catalog and first-party integration must match so we know they refer to the same product. This helps us know that the catalog item is the same as the item on your website
  • 128 characters maximum
  • Follows the {{Numeric value}} {{ISO 4217 currency code}} format
  • Recommend setting this to the stock-keeping unit (SKU) number
titleThe name of the product. This is visible to users in the caption of the products in your ad. Titles with over 35 characters is likely to be truncated.
  • 300 characters maximum
  • Only plain text (no code)
descriptionDescription of the product to help customers make a purchase decision. You can set this field to be visible when you set up your ad campaign. When this is set to be visible, you'll see it in the caption of the products in your ad.
  • 5,000 characters maximum
  • Only plain text (no code)
linkProduct's landing page URL.
  • 2,000 characters maximum
  • Must be the domain of your business
  • Starts with HTPP or HTTPS
  • Complies with RFC 2396 or RFC 1738
image_linkURL of the product's main image. This is visible to users as the product images in your ads.
  • 2,000 characters maximum
  • 500x500 pixels minimum
  • 20 MB maximum
  • JPG or PNG file type
  • Starts with HTPP or HTTPS
  • Complies with RFC 2396 or RFC 1738
pricePrice of the product. You can set this field to be visible when you set up your ad campaign. When this is set to be visible, you'll see it in the caption of the products in your ad.
  • 200 characters maximum
  • Follows the {{Numeric value}} {{ISO 4217 currency code}} format
  • Uses the same currency as all other entries in the feed

We strongly recommend including data for these product fields to enhance data quality and optimize performance.

Values for all fields must be at least one character in length.

Unless otherwise stated, these fields aren't visible to users.

FieldDescriptionRequirements & Recommendations
google_product_categoryThe Google product category.
  • 2,000 characters maximum
  • A valid category ID or Google Taxonomy path, such as Apparel & Accessories > Clothing > Dresses.
item_group_idA group of products with different variations, such as size, color, and quantities.
  • 128 characters maximum
  • Recommend setting the parent product ID as the item_group_id of all its variants
product_typeRetailer-defined product categorization.2,000 characters maximum
gtinProduct's Global Trade Item Number (GTIN).
  • Contains 0, 8, 12, 13, or 14 characters
  • A numeric value
mpnProduct's manufacturer part number (MPN).
  • 70 characters maximum
  • A numeric value
mobile_linkURL of the product targeted for mobile clients.
  • 2,000 characters maximum
  • Starts with HTTP or HTTPS
  • Complies with RFC 2396 or RFC 1738
additional_image_linksAdditional images of the product.
  • Images must meet image_link requirements
  • JSON-encoded list of URLs
  • 2,000 characters maximum
  • Starts with HTTP or HTTPS
platform_specific_linkURL of the product for a specific platform.

Must be a JSON object containing an iOS and Android URL.

Valid

{
"ios": "https://example.com/a/valid/link/ios",
"android": "https://example.com/a/valid/link/android"
}

Invalid

"https://play.google.com/store/apps/details?id=com.reddit.frontpage"
sale_priceThe sale price of the product. This is displayed to users with the striked-out original price if sale_price is lower than price.
  • 200 characters maximum
  • Follows the {{Numeric value}} {{ISO 4217 currency code}} format
sale_price_effective_dateThe date range when the sale price applies. When this value is set, sale_price will only be effective during the specified period.
If this value isn't set, sale_price will always be effective.
  • Date range must follow ISO 8601
  • Start and end dates must include the time and timezone using either the YYYY-MM-DDThh:mm[±hhmm] or YYYY-MM-DDThh:mmZ formats separated by a slash. For example, 2016-02-24T13:00-0800/2016-02-29T15:30-0800
  • 51 characters maximum
cost_of_goods_soldCosts associated with the product sale as defined by the merchant's accounting convention.Must be the same as price or sale_price (whichever is lower)
custom_label_0, custom_label_1, custom_label_2, custom_label_3, custom_label_4Custom tags assigned to a product, such as Winter sale, Heavy duty, or Summer 2022 collection.200 characters maximum
custom_number_0, custom_number_1, custom_number_2, custom_number_3, custom_number_4Custom numeric values assigned to a product. Custom numbers can be used to create filters with numeric values, such as filters for product set creation or search.200 characters maximum
brandProduct's brand name.2,000 characters maximum
colorThe color of the product.200 characters maximum
genderThe gender of the product.
  • 200 characters maximum
  • Must be set to Male, Female, or Unisex
average_review_ratingThe average rating of the product.A numeric value
number_of_ratingsThe number of ratings for the product.200 characters maximum
conditionCondition of the product at the time of sale.
  • Must be set to new, refurbished, or used
  • Required for refurbished or used products
sizeThe product's size.200 characters maximum
size_typeProduct's size type, like regular, tall, or big.Must be set to regular, petite, plus, tall, big, or maternity
materialThe product's fabric or material.200 characters maximum
patternProduct's pattern or graphic print.200 characters maximum
availabilityThe availability of the product.Must be set to in_stock, out_of_stock, preorder, or backorder. To ensure out-of-stock items are not selected, create a product set filtered on IN_STOCK
expiration_dateDate when the product stops showing.
  • Must include the date, time, and time zone
  • Must be ISO 8601 compliant and follow either the YYYY-MM-DDThh:mm[±hhmm] or YYYY-MM-DDThh:mmZ format
  • 25 characters
age_groupThe age group of the product.Must be set to either newborn, infant, toddler, kids, or adult

We're here to help

Our Reddit Ads team is ready to support you from setup to success.

Snoo Punch Up