Генерація фіду товарів для Facebook/Instagram Catalog
При запуску динамічної реклами у Facebook та Instagram каталог товарів відхиляють найчастіше через помилки у фіді. Неправильний формат ціни, відсутність обов'язкових полів або невірний URL зображення — і вся партія товарів не проходить модерацію. Ми стикалися з цим десятки разів і виробили покроковий процес, який гарантує успішне завантаження каталогу з першого разу. Наш досвід показує, що навіть великі інтернет-магазини з сотнями тисяч SKU допускають одні й ті ж помилки: плутають price і sale_price, не вказують google_product_category, використовують HTTP замість HTTPS. В результаті рекламні кампанії не показуються, а бюджет витрачається даремно. Ми пропонуємо комплексну послугу з генерації та налаштування фіду під ключ — від аудиту поточних даних до інтеграції з Pixel та запуску перших динамічних оголошень. Згідно з документацією Meta, фід має відповідати формату CSV, TSV або XML з обов'язковим набором полів.
Які проблеми вирішує правильно налаштований фід?
Meta вимагає фід у форматі CSV, TSV або XML (RSS/Atom). Каталог використовується в динамічній рекламі (Dynamic Ads), Instagram Shopping та Shops — три різних плейсменти з частково пересічними вимогами до полів. Одна помилка у форматі поля price або availability призводить до відхилення всієї партії товарів при завантаженні. Правильне налаштування фіду вирішує три ключові проблеми:
- Відсутність товарів у рекламі — через невалідні дані каталог блокується.
- Низька релевантність — без коректних полів (google_product_category, size, color) Meta не може показувати товари цільовій аудиторії.
- Втрата конверсій — якщо фід не синхронізовано з Pixel, динамічний ретаргетинг не спрацьовує.
Обов'язкові поля каталогу
| Поле | Формат | Приклад |
|---|---|---|
| id | рядок до 100 символів | SKU-44231 |
| title | рядок до 150 символів | Куртка зимова чоловіча синя L |
| description | рядок до 9999 символів | — |
| availability | enum | in stock / out of stock / preorder |
| condition | enum | new / refurbished / used |
| price | число + код валюти | рассчитывается индивидуально |
| link | URL | HTTPS обов'язково |
| image_link | URL | мін. 500×500 px, HTTPS |
| brand | рядок | — |
Додаткові поля для одягу та взуття
Для категорії Apparel & Accessories Meta вимагає:
- google_product_category — числовий ID з таксономії Google (Meta використовує саме її)
- size — розмір (XL, 44, 42/34)
- color — колір мовою цільової аудиторії
- gender — male / female / unisex
- age_group — adult / kids / newborn
- material — матеріал (опціонально, але підвищує relevance score)
Розгорнути повний перелік полів для одягу
Всі поля: id, title, description, availability, condition, price, link, image_link, additional_image_link, brand, google_product_category, color, size, gender, age_group, sale_price, sale_price_effective_date. Відсутність будь-якого обов'язкового поля призведе до помилки завантаження.Що робити, якщо фід відхиляється?
У Commerce Manager є розділ Catalog → Issues, де Meta показує причини помилок для кожної позиції. Найчастіші проблеми:
- Невірний формат ціни: використовуйте правильний формат (число + код валюти), без пробілів перед кодом валюти.
- Відсутність HTTPS: всі посилання (link, image_link) мають бути по HTTPS.
- Перевищення довжини title: обрізайте до 150 символів, включаючи назву варіанту.
- Некоректний availability: використовуйте строго in stock, out of stock або preorder.
Ми проводимо аудит фіду та виправляємо всі помилки до завантаження, гарантуючи успішне проходження модерації. У 90% випадків достатньо однієї ітерації, щоб усунути всі проблеми.
Генератор CSV-фіду
CSV простіший у генерації та налагодженні, ніж XML. Meta приймає обидва формати однаково. Надаємо перевагу TSV — через коми в описі товарів роздільник табуляція надійніший. Нижче таблиця порівняння форматів:
| Формат | Складність генерації | Розмір файлу | Підтримка ком у полях | Швидкість завантаження |
|---|---|---|---|---|
| CSV | Низька | Маленький | Проблематично (екранування) | Висока |
| TSV | Низька | Маленький | Не проблема (табуляція) | Висока |
| XML (RSS) | Висока | Великий | Не проблема | Середня |
Приклад класу на PHP, який генерує TSV-фід з урахуванням варіантів товарів:
class MetaCatalogFeedGenerator { private const HEADERS = [ 'id', 'title', 'description', 'availability', 'condition', 'price', 'link', 'image_link', 'additional_image_link', 'brand', 'google_product_category', 'color', 'size', 'gender', 'age_group', 'sale_price', 'sale_price_effective_date', ]; public function generate(string $outputPath): void { $file = fopen($outputPath, 'w'); // BOM не додаємо — Meta не вимагає, може зламати парсер fputcsv($file, self::HEADERS, "\t"); // TSV надійніший за CSV через коми в описі Product::with(['images', 'category', 'brand', 'variants']) ->where('is_active', true) ->chunk(200, function ($products) use ($file) { foreach ($products as $product) { foreach ($this->expandVariants($product) as $row) { fputcsv($file, $row, "\t"); } } }); fclose($file); } private function expandVariants(Product $product): array { if ($product->variants->isEmpty()) { return [$this->buildRow($product, null)]; } return $product->variants->map( fn($variant) => $this->buildRow($product, $variant) )->toArray(); } private function buildRow(Product $product, ?ProductVariant $variant): array { $id = $variant ? $product->sku . '-' . $variant->sku : $product->sku; $price = $variant?->price ?? $product->price; $stock = $variant?->stock ?? $product->stock; $additionalImages = $product->images->skip(1) ->pluck('cdn_url') ->take(9) // Meta допускає до 10 зображень ->implode(','); $salePrice = ''; $salePriceDate = ''; if ($product->sale_price && $product->sale_ends_at > now()) { $salePrice = number_format($product->sale_price, 2, '.', '') . ' RUB'; $salePriceDate = $product->sale_starts_at->toIso8601String() . '/' . $product->sale_ends_at->toIso8601String(); } return [ $id, mb_substr($product->name . ($variant ? ' ' . $variant->name : ''), 0, 150), strip_tags($product->description), $stock > 0 ? 'in stock' : 'out of stock', 'new', number_format($price, 2, '.', '') . ' RUB', route('products.show', $product->slug) . ($variant ? '?variant=' . $variant->id : ''), $product->mainImage()?->cdn_url ?? '', $additionalImages, $product->brand?->name ?? '', $product->google_category_id ?? '', $variant?->color ?? $product->color ?? '', $variant?->size ?? '', $product->gender ?? '', $product->age_group ?? 'adult', $salePrice, $salePriceDate, ]; } } Налаштування в Business Manager
Після генерації фіду:
- Commerce Manager → Catalog → Data Sources → Add Data Feed
- Вказати URL фіду або завантажити файл вручну
- Вибрати розклад оновлення: щогодини, щодня або вручну
- Призначити каталог рекламним акаунтам
Meta надає діагностику помилок у розділі Catalog → Issues — кожна позиція з проблемою позначається з описом причини. Завантаження фіду з більш ніж 5% помилок призведе до відмови у використанні каталогу для реклами.
Pixel + Catalog для динамічного ретаргетингу
Для Dynamic Ads недостатньо лише фіду — потрібно налаштувати Meta Pixel з подіями:
// Сторінка товару fbq('track', 'ViewContent', { content_ids: ['SKU-44231'], content_type: 'product', value: 4990.00, currency: 'RUB', }); // Додавання в кошик fbq('track', 'AddToCart', { content_ids: ['SKU-44231'], content_type: 'product', value: 4990.00, currency: 'RUB', }); content_ids мають точно збігатися з полем id у каталозі — інакше матчинг не працює. Ретаргетинг на основі каталогу дозволяє скоротити вартість залучення клієнта в середньому на 30-40%.
Процес роботи та що входить
Ми пропонуємо налаштування фіду під ключ:
- Аудит поточного каталогу — перевіряємо структуру, обов'язкові поля, помилки в даних.
- Генерація фіду — пишемо генератор під вашу CMS або ERP, налаштовуємо TSV/CSV/XML.
- Тестування — завантажуємо тестову партію, перевіряємо в Issues Meta.
- Інтеграція Pixel — додаємо події ViewContent, AddToCart, Purchase.
- Деплой та моніторинг — налаштовуємо автооновлення, надаємо доступ до звітів.
В результаті ви отримуєте працюючий каталог, справний фід та налаштований ретаргетинг. Гарантуємо проходження модерації з першого разу — наш досвід більше 5 років і 50+ успішних проєктів.
Зв'яжіться з нами для безкоштовної оцінки вашого каталогу. Замовте налаштування фіду, і ми гарантуємо успішне завантаження з першого разу.
Строки
Генератор фіду + налаштування джерела даних у Business Manager — від 3 до 5 робочих днів. Інтеграція з Pixel та тестування динамічного ретаргетингу — ще від 2 до 3 робочих днів. Точні строки залежать від обсягу каталогу та складності інтеграції.
Оцінимо ваш проєкт безкоштовно. Зв'яжіться з нами, щоб отримати консультацію та розрахунок вартості.







