Dynamic product ads on Snapchat.
Snapchat's catalog spec is strict on pairs: seven fields are required, then at least one of brand, gtin or mpn, and a location-aware product needs both an address and an availability radius or neither.
Prices are read as 199 USD or USD 199; a bare number is taken to be US dollars, so any other currency has to carry its ISO code. Out of stock products are excluded from ads automatically, which makes availability the field that quietly decides your reach.
Generated from the Ducted Snapchat Product Catalog template, the same field rules your mapping is validated against.
43 fields: 7 required, 1 recommended, 35 optional.
| Field | Level | Accepted values / example |
|---|---|---|
| id | required | 12345 |
| title | required | Blue Cotton T-Shirt |
| description | required | |
| link | required | |
| image_link | required | |
| availability | required | in stock · out of stock · preorder · discontinued · available for order |
| price | required | 199 USD |
| google_product_category | recommended | Apparel & Accessories > Clothing > Activewear |
Field rules from the official spec, verified 2026-10-02.
Also supported, always optional (35): condition, brand, gtin, mpn, age_group, color, gender, item_group_id, product_type, adult, custom_label_0, custom_label_1, custom_label_2, custom_label_3, custom_label_4, size, additional_image_link, sale_price, sale_price_effective_date, address, availability_radius, mobile_link, icon_media_url, ios_app_name, ios_app_store_id, ios_url, android_app_name, android_package, android_url, material, pattern, display_size, size_system, size_type, offer_details
Snapchat requires at least one of the three on every product. A feed of unbranded goods with no identifiers fails at the first record.
Location-aware products carry address (a JSON latitude / longitude pair) and availability_radius in kilometres together. One without the other is an error.
Every product needs a unique id, and the ids must match what the Snap Pixel sends back. A catalog with duplicates may fail to upload entirely.
199 and USD 199 are the same price to Snapchat, so a bare number passes the health check and a European store sending 199 advertises in US dollars; the ISO code has to be in the cell. A sale_price equal to or above price is flagged.
One mapped catalog serves every channel; each page covers what that platform's feed needs.
Add a Snapchat output to an existing project, or start free and map your first.