Генерация фида товаров для 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 | число + код валюты | 4990.00 RUB |
| 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 показывает причины ошибок для каждой позиции. Самые частые проблемы:
- Неверный формат цены: используйте формат 1234.56 RUB, без пробелов перед кодом валюты.
- Отсутствие 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 рабочих дней. Точные сроки зависят от объема каталога и сложности интеграции.
Оценим ваш проект бесплатно. Свяжитесь с нами, чтобы получить консультацию и расчет стоимости.







