← All guides

The TikTok product feed: the catalog CSV, and the setting you cannot undo

20 September 2026 · 8 min read

Short answer. A TikTok product feed is a catalog file TikTok fetches from a URL on a schedule. The scheduled route takes a CSV, with nine required fields — sku_id, title, description, availability, condition, price, link, image_link and brand — and availability written with spaces, in stock, not Google's in_stock. The setting that decides whether any of it works is the catalog's Default Currency: it is chosen when the catalog is created, it cannot be changed afterwards, and every product priced in anything else is rejected.

TikTok catalogs feed Video Shopping Ads and catalog campaigns: the ad formats that show a product with its price and take the viewer to your page. The catalog is the product data behind them, and you can fill it three ways — by hand, by connecting your store, or by giving TikTok a feed URL it re-fetches on a schedule. This guide is the third, because it is the one with rules, and two of those rules cost a whole catalogue if you meet them late.

Everything below was checked against TikTok's catalog product parameters, the CSV and XML templates their Ads Manager hands you, and one real import.

First decision: partner sync or a feed of your own

When you create a catalog, TikTok asks for an upload method before anything else, and the first option — Sync from partner platform, with Shopify, WooCommerce and BigCommerce logos under it — is preselected. It connects your store to TikTok directly.

If TikTok is the only place your catalogue goes and you want nothing changed on the way, that connection is the shortest path and you can stop reading. Choose Manual creation instead when you need the same catalogue to reach several channels in the shapes each one asks for, when titles or categories have to be rewritten before they arrive, or when you want to see what was sent before TikTok judges it. That is the option that accepts a feed URL.

The nine required fields

TikTok publishes 9 required and 27 optional parameters. The required nine are where feeds fail, and one of them is not required anywhere else:

TikTok asks for "an accurate value instead of a meaningless one" in the brand field, so the fix is the real brand in your store, not your shop's name written across goods you resell. A wrong brand is worse than a missing one: it is the field they match products by.

availability: five values, and a word no other channel has

Google's four values are written with underscores. TikTok writes them with spaces, in lower case, and publishes five:

A value outside the list is not interpreted charitably. If your export says "available", "disponibil" or a stock count, translate it first — our availability value translator shows what each channel accepts for the same word, side by side.

The setting you cannot undo: the catalog's currency

Creating a catalog asks for a Default Currency and a targeting location. Both are set once. Neither can be edited afterwards — open the catalog's Settings later and only the name has an edit link next to it.

Every product priced in another currency is rejected. Not converted, not ignored: rejected, one error per product, reading "Invalid value: price — Price must be a valid value and match the catalog's default currency." We tested this with a catalogue priced in US dollars against a catalog created in Romanian lei. The upload log read 23 in files, 23 rejected, 0 added. The file itself was fine; the catalog was the wrong shape to receive it.

There is no repair for this. A catalog in the wrong currency is replaced by a new catalog in the right one, and the feed, the product sets and anything built on top move with it. So before you create the catalog, check what your store actually prices in — not what you wish it sold in, and not the currency your ad account bills in, which is a different setting entirely.

A feed tool should tell you this before TikTok does. Ours does: the free feed check reads what your catalogue is priced in, and a TikTok feed in FeedRobin asks which currency the catalog uses and counts the mismatches before you ever paste the link.

The file: CSV on a schedule, XML on an upload

TikTok accepts CSV, XML (RSS) and XML (Atom), plus ZIP and GZ, up to 8 GB. But the route decides the format: the Data Feed Schedule screen — the one that takes a URL and re-fetches it — states under the field that files must be "in a CSV format". The XML templates belong to the one-off upload.

Their RSS template is worth a look anyway, because it explains something about the ecosystem: it is Google's own namespace, xmlns:g, with <g:id> and <g:title>. The same field is sku_id in their CSV and g:id in their XML. If you are hand-building a file, take the template for the format you are actually going to send.

Three formatting rules that only appear in the templates, not on any help page:

sku_id,title,description,availability,condition,price,link,image_link,brand
45974626631733,Gift Card - $10,This is a gift card,out of stock,new,10.00 USD,https://shop.example.com/p/gift-card,https://cdn.example.com/gift.jpg,Example Brand

Connecting the feed, step by step

  1. TikTok Ads Manager → AssetsCatalog Create your catalog.
  2. Pick Manual creation. A catalog belongs to a Business Center, so if you do not have one TikTok asks you to create it here — and the business name you give goes on invoices and tax documents and can only be changed once, so use the legal entity.
  3. Name the catalog after the store, link your ad account, and set the Default Currency to the currency your prices are in. This is the irreversible one.
  4. In the catalog: ProductsAdd Products Data Feed Schedule. Paste the feed URL and set the frequency — hourly is offered, and the clock is UTC, not your local time.
  5. Choose Replace your feed, not "Update your feed". On Update, products missing from the new file stay in the catalog forever, which is how a store ends up advertising something it stopped selling months ago. A generated feed is the complete catalogue every time, so Replace is the honest setting.

Reading the result

The upload log gives four numbers — in files, added, updated, rejected — and a diagnostics list naming each issue with example rows. It is genuinely good feedback, better than a comparison site that simply shows fewer offers than you expected, so read it after the first fetch rather than assuming silence means success.

One number that looks wrong and is not: the Products tab counts products, while the log counts rows. Variants that share an item_group_id are one product with several SKUs, so 23 rows can correctly appear as 20 items.

Doing it without hand-building the file

FeedRobin renders the TikTok catalog CSV from the same catalogue as your Google, Meta and comparator feeds — their field names, their spaced availability, their "available for order" for a backorder, emoji stripped from titles before they cost you the product, and the currency checked against your catalog before TikTok sees it. You paste one link into the Data Feed Schedule screen and it stays current. The free feed check needs no account.

Sources

TikTok Ads Manager Help, Catalog Product Parameters; How to create a Catalog; Catalog issues and suggested actions. Field limits, the quoted image list and the schedule screen's CSV requirement are from TikTok's own downloadable templates and interface, read on 20 September 2026; the rejected-import figures are from a real catalog on that date.

Read next

What is a product feed — and why every store advertising online needs oneThe file behind every Google Shopping ad, Instagram product tag and price-comparator listing: what a product feed contains, who reads it, and what happens when it's wrong.
5 min
Get your products into ChatGPT: the OpenAI product feed, step by stepChatGPT now recommends real products with live prices. How merchant enrollment works, what OpenAI's feed spec requires (JSONL, nine mandatory fields), and why your catalogue disappears about two weeks after you stop uploading.
7 min
Fix “Limited performance due to missing identifiers [gtin]” in Google Merchant CenterWhat Google's missing-GTIN warning means, where to find barcodes for your products, and what to do when a product genuinely has none.
6 min
Not sure what's wrong with your feed?Paste your feed URL and FeedRobin checks every product for missing barcodes, images, descriptions and more — free, no account needed.
Check my feed — it's free What it checks →