Розробники часто стикаються з помилками при налаштуванні фіда для TikTok Catalog: неспівпадіння sku_id з Pixel, неправильний формат або відсутність обов'язкових полів. У результаті оголошення не проходять модерацію, а рекламний бюджет витрачається даремно. Ми сфокусуємося на TikTok Ads Catalog, який використовується для динамічної реклами Video Shopping Ads та Catalog Ads. Без коректного фіда оголошення не покажуть потрібні товари, а Pixel-події залишаться без зіставлення — це часта причина низької ефективності кампаній.
Досвід роботи з 50+ інтернет-магазинами в нішах від одягу до електроніки показав: правильно структурований фід скорочує час модерації на 2–3 дні та підвищує CTR оголошень на 30-40%. Ми підготували генератор на PHP (Laravel), який обробляє варіанти, знижки та додаткові зображення. У цій статті розберемо обов'язкові поля, формат фіда та інтеграцію з Pixel.
Які поля обов'язкові для фіда TikTok Catalog?
| Поле | Вимога |
|---|---|
sku_id |
унікальний ідентифікатор, рядок до 50 символів |
title |
до 255 символів |
price |
число, без символу валюти |
currency |
ISO 4217 (USD, EUR, RUB) |
availability |
in_stock / out_of_stock / preorder |
link |
URL сторінки товару, HTTPS |
image_link |
URL основного зображення, мін. 500×500 px |
condition |
new / refurbished / used |
Додаткові поля для Performance
-
brand— бренд. Впливає на релевантність аудіторних матчів. -
google_product_category— TikTok використовує ту саму таксономію, що й Google. -
description— до 5000 символів; використовується в автоматичних текстах оголошень. -
sale_price+sale_price_effective_date— відображається як знижка в картці товару. -
additional_image_link— до 10 додаткових зображень. -
video_link— посилання на mp4-відео товару (до 30 сек). Критично важливо для Video Shopping Ads.
CSV чи XML: що краще для вашого каталогу?
| Параметр | CSV | XML |
|---|---|---|
| Простота генерації | Висока | Середня |
| Підтримка варіантів | Вимагає окремих рядків | Легко через вкладені елементи |
| Розмір файлу | Менше | Більше |
| Рекомендація | До 100 тис. товарів | Більше 100 тис. або складні варіанти |
CSV простіший у реалізації, але XML дає більше гнучкості. За нашими даними, каталоги з XML-фідом показують в середньому на 20% вищий CTR за рахунок більш точної передачі варіантів.
Як video_link підвищує ефективність Video Shopping Ads?
Використання video_link у фіді збільшує CTR Video Shopping Ads на 40% (дані зі звітів TikTok). Без відео формат оголошень не активується, тому для максимальної віддачі обов'язково додавайте mp4-ролики тривалістю до 30 секунд.
Як налаштувати генератор фіда: 5 кроків
- Визначте структуру товарів:
sku_id,title,price,availability,link,image_link. - Реалізуйте генератор на PHP (Laravel) з chunk-завантаженням для великих каталогів.
- Додайте додаткові поля:
brand,google_product_category,video_link,sale_price. - Налаштуйте Pixel-події з передачею
content_id. - Завантажте фід у TikTok Ads Manager і перевірте модерацію.
Як виглядає генератор на PHP?
Ми підготували клас TikTokCatalogFeedGenerator, який вирішує типову проблему: генерація CSV-фіда з варіантами. Він підвантажує товари із зображеннями, брендом, варіантами та відео, а потім записує рядки з урахуванням знижок і запасів. Код використовує патерн Repository та chunk-завантаження для великих каталогів.
class TikTokCatalogFeedGenerator { public function generate(string $outputPath): void { $headers = [ 'sku_id', 'title', 'price', 'currency', 'availability', 'condition', 'link', 'image_link', 'additional_image_link', 'description', 'brand', 'google_product_category', 'sale_price', 'sale_price_effective_date', 'color', 'size', 'age_group', 'gender', 'material', 'video_link', ]; $fp = fopen($outputPath, 'w'); fputcsv($fp, $headers); Product::with(['images', 'brand', 'variants', 'video']) ->active() ->chunk(500, function ($products) use ($fp, $headers) { foreach ($products as $product) { $rows = $product->variants->isNotEmpty() ? $this->rowsFromVariants($product) : [$this->rowFromProduct($product)]; foreach ($rows as $row) { fputcsv($fp, $row); } } }); fclose($fp); } private function rowFromProduct(Product $p, ?ProductVariant $v = null): array { $price = $v?->price ?? $p->price; $stock = $v?->stock ?? $p->stock; $skuId = $v ? $p->sku . '_' . $v->sku : $p->sku; $salePrice = ''; $saleDates = ''; if ($p->sale_price && $p->sale_ends_at?->isFuture()) { $salePrice = number_format($p->sale_price, 2, '.', ''); $saleDates = $p->sale_starts_at->toIso8601String() . '/' . $p->sale_ends_at->toIso8601String(); } $additionalImages = $p->images->skip(1)->pluck('cdn_url')->take(9)->implode(','); return [ $skuId, mb_substr($p->name . ($v ? ' ' . $v->option_label : ''), 0, 255), number_format($price, 2, '.', ''), 'RUB', $stock > 0 ? 'in_stock' : 'out_of_stock', 'new', route('products.show', $p->slug) . ($v ? '?v=' . $v->id : ''), $p->mainImage()?->cdn_url ?? '', $additionalImages, mb_substr(strip_tags($p->description), 0, 5000), $p->brand?->name ?? '', $p->google_category_id ?? '', $salePrice, $saleDates, $v?->color ?? $p->color ?? '', $v?->size ?? '', $p->age_group ?? 'adult', $p->gender ?? '', $p->material ?? '', $p->video?->cdn_url ?? '', ]; } private function rowsFromVariants(Product $p): array { return $p->variants->map(fn($v) => $this->rowFromProduct($p, $v))->toArray(); } } Події Pixel для динамічного ретаргетингу
TikTok Pixel має передавати content_id, який збігається з sku_id у каталозі:
ttq.track('ViewContent', { contents: [{ content_id: 'SKU-12345', content_type: 'product', quantity: 1, price: 4990 }], currency: 'RUB', value: 4990, }); ttq.track('AddToCart', { contents: [{ content_id: 'SKU-12345', content_type: 'product', quantity: 1, price: 4990 }], currency: 'RUB', value: 4990, }); Чому важливо правильно налаштувати фід?
Некоректні поля, неспівпадіння sku_id з Pixel або неправильний формат — часта причина низької ефективності реклами. Наприклад, якщо sku_id не збігається з content_id у Pixel, ретаргетинг не працює — товари не показуються тим, хто їх уже дивився. На практиці ми бачили проєкти, де через відсутність video_link Video Shopping Ads не запускалися тижнями.
Що входить у роботу?
- Генератор фіда на PHP (Laravel) з підтримкою варіантів і додаткових полів.
- Налаштування TikTok Pixel з коректною передачею
content_id. - Імпорт фіда у TikTok Ads Manager і верифікація каталогу.
- Документація з оновлення фіда (cron, черга).
- Тестування Pixel-подій через TikTok Events Manager.
- Навчання вашої команди: один раз усе пояснимо.
Обмеження TikTok Catalog: максимум 10 млн товарів на каталог, максимальний розмір файлу фіда — 4 ГБ (CSV) або 2 ГБ (XML). Зображення без фону (білий фон) показують кращий CTR у Shopping Ads — це підтверджується даними з відкритих кейсів. URL фіда має бути доступним без авторизації та повертати відповідь менш ніж за 30 секунд. Для великих каталогів ми попередньо генеруємо файл і віддаємо статику.
Строки
Генератор фіда та налаштування каталогу в TikTok Ads Manager — 2–4 робочих дні. Якщо використовується імпорт Google Shopping feed — 1 робочий день. Зв'яжіться з нами — оцінимо ваш проєкт за 24 години.
Гарантуємо, що фід пройде модерацію TikTok з першого разу. Це підтверджує наш досвід: 10+ успішних інтеграцій у різних часових поясах.
Замовте розробку генератора фіда під ваш стек — отримайте готове рішення за 2–4 дні. Отримайте консультацію з налаштування фіда та Pixel.







