Adevisto
All posts
TechnicalJuly 5, 2026·7 min read

Meta Catalog vs TikTok Shop: what agencies get wrong about feed formats

Both take product feeds. Both accept CSV and XML. Both use similar field names. Every agency we talk to assumes the same feed will work in both. It will not — here is what breaks.

Meta Catalog and TikTok Shop both take product feeds. Both accept CSV, XML and Google Sheets. Both use similar field names. Every agency we talk to assumes the same feed will work in both. It will not. Here is what breaks.

1. Product IDs are not interchangeable

Meta uses id as the primary identifier — free-form, any string. TikTok Shop wants seller_sku matching an active SKU in the TikTok Shop backend. If you push your Meta id column into TikTok Shop, most products will be silently rejected because the SKU does not exist in the store.

2. Availability field values differ

Meta accepts in stock, out of stock, available for order, discontinued. TikTok Shop expects in_stock, out_of_stock only — underscored, no space, no aliases. A feed that validates in Meta will fail half its rows in TikTok Shop and you will not know why unless you check the error log line by line.

3. Image requirements are stricter on TikTok

Meta accepts JPG or PNG up to 8MB, single or multi-image. TikTok Shop requires a minimum 800x800px, aspect ratio close to 1:1, and rejects anything with promotional text overlays or watermarks. Agency-produced product images often have a promotional overlay — great for Meta ads, silent rejection in TikTok Shop.

4. Category taxonomies are different

Meta uses google_product_category, mapped from Google's taxonomy. TikTok Shop uses its own product category tree with categoryId. Mapping between them is not automatic. A feed that classifies a product as "Apparel and Accessories > Clothing > Shirts" in Meta needs an explicit mapping to TikTok's category id for Shirts — and those mapping tables change quarterly.

5. Price format has subtle differences

Meta accepts prices like "19.99 USD" or "1999 USD". TikTok Shop requires a numeric price with currency as a separate field, no unit indicator inline. If your feed generation puts "USD" in the price field for TikTok Shop, the row rejects.

The fix is native formatting

The common thread: every destination has its own spec, and mapping a single source-of-truth catalog to each spec is a per-destination transformation, not a one-size feed. Doing this by hand across four channels and thirty clients is where the ops overhead lives. Doing it in a platform that knows each spec natively is where the leverage lives — which is exactly what we built Adevisto to do.

See it running on one of your real clients.

Book a 20-minute demo. Send us a client URL. We'll have a working feed inside the call.

Keep reading