Dynamic product ads on Reddit.
Reddit's catalog spec requires six fields and recommends seventeen more, which is a different shape from the other channels: nearly everything you would send to Google is wanted here too, just not enforced. Two of its own rules are easy to miss.
additional_image_link is a JSON array of quoted URLs rather than a comma-separated list, and sale_price_effective_date is a strict ISO 8601 range with a time zone on both ends.
Generated from the Ducted Reddit Product Catalog template, the same field rules your mapping is validated against.
40 fields: 6 required, 17 recommended, 17 optional.
| Field | Level | Accepted values / example |
|---|---|---|
| id | required | reddit_item_1234 |
| title | required | Unisex Cotton T-Shirt |
| description | required | |
| availability | recommended | in_stock · out_of_stock · preorder · backorder |
| condition | recommended | new · refurbished · used |
| price | required | 123.45 USD |
| link | required | |
| image_link | required | |
| brand | recommended | |
| gtin | recommended | 4006381333931 |
| mpn | recommended | |
| google_product_category | recommended | Apparel & Accessories > Clothing > Dresses |
| product_type | recommended | Apparel > Shirts |
| sale_price | recommended | 14.99 USD |
| additional_image_link | recommended | ["https://example.com/images/1234-2.jpg", "https://example.com/images/1234-3.jpg"] |
| item_group_id | recommended | |
| mobile_link | recommended | |
| color | recommended | |
| size | recommended | |
| gender | recommended | male · female · unisex |
| age_group | recommended | newborn · infant · toddler · kids · adult |
| material | recommended | |
| pattern | recommended |
Field rules from the official spec, verified 2026-10-02.
Also supported, always optional (17): sale_price_effective_date, custom_label_0, custom_label_1, custom_label_2, custom_label_3, custom_label_4, size_type, expiration_date, platform_specific_link, cost_of_goods_sold, custom_number_0, custom_number_1, custom_number_2, custom_number_3, custom_number_4, average_review_rating, number_of_ratings
Reddit wants ["https://...", "https://..."], a JSON array. The comma-separated list every other channel accepts fails the format check.
in_stock, out_of_stock, preorder and backorder, with underscores. The spaced values Meta and TikTok use fail the accepted-values check; availability is recommended rather than required, so the record is flagged, not dropped. Reddit asks for condition on refurbished or used products.
Every id must be unique; Reddit recommends the SKU, and the catalog id must match the product id your pixel sends back.
Reddit only shows the struck-out original price when sale_price is lower than price. Every price must carry the catalog's currency.
Descriptions over 180 characters may be cut, which the health check files as a recommendation, and Reddit says titles over 35 characters may be truncated in the ad caption. Neither rejects the record.
One mapped catalog serves every channel; each page covers what that platform's feed needs.
Add a Reddit output to an existing project, or start free and map your first.