Генерація фіду товарів для 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 робочих днів. Точні строки залежать від обсягу каталогу та складності інтеграції.
Оцінимо ваш проєкт безкоштовно. Зв'яжіться з нами, щоб отримати консультацію та розрахунок вартості.







