Snapchat's catalog-fed ad format is called Dynamic Ads: you give Snapchat a product catalog, build a campaign with an ad template in Snapchat Ads Manager, and Snapchat assembles ads from your products. It comes up often for Nordic stores, because Snapchat has a large audience in Sweden, Norway, and Denmark.
The Snapchat feed channel type builds that catalog: a channel whose columns follow Snapchat's product catalog field list.
What setup does — and doesn't — get you#
Being straight about this matters more than the setup steps, because the feed is only one of three things Snapchat needs and the other two aren't in Renable:
- Creating this channel prepares a catalog. It does not start any ads. Campaigns, ad templates, and budgets are built in Snapchat Ads Manager. A published Renable channel means Snapchat has good product data to read — nothing more.
- The Snap Pixel is a hard requirement, and it isn't optional. Snapchat requires the Snap Pixel installed on your store and passing product IDs back on Page View, View Content, Add to Cart, and Purchase — and those IDs have to match the IDs in this feed exactly. A perfect catalog with a missing or mismatched pixel powers nothing. If your product IDs differ between your site and this feed, fix that before anything else.
- There's an audience threshold too. Snapchat opens Dynamic Ads to an account once its pixel events match 1,000 Snapchatters. A new pixel takes time to get there, so a brand-new setup can be entirely correct and still not have the format available yet. That's the process, not a fault.
- Creating the catalog needs Organization Admin rights in Snapchat, on top of a Snapchat business account and an ad account. Snapchat runs automated catalog diagnostics on what you send — errors block individual products, warnings don't — and automated media review. There's no human catalog-approval queue documented.
- "Snapchat accepts Google Merchant Center feeds" isn't quite what Snapchat says. Its own wording is that you may use a catalog file or data feed you already use on other platforms provided it meets Snapchat's specification. Most of the fields are the same, but the values differ in places — which is exactly what this channel type gets right for you.
Creating the channel#
From a project's Channels section, create a channel and pick the Snapchat feed type. It seeds:
- Snapchat's catalog columns —
id,title,description,link,image_link,availability,price,sale_price,brand,condition, the identifiers (gtin,mpn),item_group_id, andgoogle_product_category— bound to your product data. - Two starter rules — availability drops to
out of stockwhen a product's stock hits zero or its content is incomplete, and sale price fills only when a product is actually discounted. Snapchat has no "archived" column, so the availability rule is what keeps a half-built product out of an ad; Snapchat excludes out-of-stock products from Dynamic Ads on its side. The values are written Snapchat's way —in stockandout of stock, with spaces, not the underscores Google uses. - Output left at XML. Snapchat reads RSS/Atom XML, CSV, and TSV on every data-feed route, so nothing needs changing.
On the Settings tab, the Used for card shows the channel declared for Snapchat with its always-on Dynamic Ads use — that's what drives the field checks — plus one add-on:
- Video ads — see the section below. It's a real capability with a real precondition.
- Extra product images — additional images per product beside the main one. Snapchat reads up to twenty, more than any other destination Renable supports. Turning the chip on adds an
additional_image_linkcolumn (one click from the ghost row on the Fields tab) and starts asking for at least two images per product; it makes more of your images available to Snapchat, and Snapchat decides what it uses.
Snapchat feeds are always the main feed; there's no Used as choice on the Snapchat row. Snapchat's own documentation both defines a supplemental feed type and says a catalog can only hold one feed, so rather than offer a structure we can't stand behind, Renable leaves it out until that's settled.
About product videos#
Snapchat does take one video per product from the catalog, for the format it calls Product Level Video Ads. Toggling Video ads on adds a video column to the checks and to the ghost row you can add in one click.
What that gets you is eligibility, not a video ad. Snapchat plays a product's video only when the Dynamic Ad template in Snapchat Ads Manager is set up for one — Snapchat's documented requirements are an automatic layout and preferred video tags on the template. Without both, Snapchat ignores the video and falls back to the product image, however good the feed is. So: add the video column here, then configure the template on Snapchat's side. [VERIFY: whether Product Level Video Ads are available to every advertiser — Snapchat documents the format in its developer docs but not in its Business Help field list, and it isn't clear whether the format needs enabling by a Snapchat contact.]
One naming detail. Snapchat's own documentation calls this column video[0].url in a CSV or TSV feed. Renable names the field video_link, because square brackets aren't valid in an XML element name and this channel type writes XML — and it accepts either spelling, so if you switch the channel to CSV or TSV you can rename the column to Snapchat's exact form and the checks still recognise it.
Delivering the feed#
Snapchat fetches your feed URL on a schedule you set in Snapchat Ads Manager — hourly or daily. Add the channel's feed URL as a data feed on your Snapchat catalog. See Connecting a channel to Meta, Google, or TikTok for where to find the URL.
If you turn on the Compress feed file (.gz) switch, Snapchat reads it — gzipped files are explicitly supported. Snapchat states it does not read .zip archives, which Renable never produces, so there's nothing to avoid.
Checking the output#
- Preview tab → Source view shows the exact file content per product.
- The Fields tab marks Snapchat's required fields and their fill rates from the latest render. A few of Snapchat's limits are looser than Google's and are checked here: product IDs up to 128 characters and titles up to 375, though Snapchat recommends much shorter titles so they don't get cut off on the ad itself. Availability values are written without underscores, there's no
backorder, and Snapchat adds two values Google doesn't have —discontinuedandavailable for order. Renable checks these in lower case; if your own catalog maps availability through asIn stock, the Fields tab flags it even though Snapchat's own field list is written that way. [VERIFY: which capitalisation Snapchat's ingestion actually accepts — its documentation showsIn stock,in stock, andIN_STOCKon different pages.] - One of brand, GTIN, or MPN is what Snapchat actually requires. Renable fills brand, because it's the one of the three every catalog can produce. Products with no brand in your catalog ship the word Generic rather than an empty column — so if you'd rather send something else (your store name, say), set that fallback on the
brandfield in the Fields tab. - Images: Snapchat reads JPEG, PNG, and WebP, and wants at least 200 × 200 pixels. It does not read GIF.
- Render results and warnings show on the Activity tab — see Channel events and troubleshooting.