Тип офера задаёт, из чего соберётся название в объявлении. Упрощённый живёт на теге name: его хватает, когда имя товара и так понятное. Тип vendor.model требует бренд и модель. Комбинированный держит все элементы вместе и даёт больше данных для заголовка. Технику и товары с чёткой моделью я описываю как vendor.model. Обычный SKU с простым именем оставляю упрощённым.
Само название собираю спокойно: что это за товар, кто производитель, какая модель и какая модификация. Без капса, эмодзи и рекламных вставок. Поле description оставляю под факты и характеристики. Обещания вроде бесплатной доставки уношу в sales_notes. После запуска id не меняю. Вместе с новым идентификатором пропадает история конверсий по этому SKU.
Метки и коллекции
Для отбора внутри кампании есть отдельные поля. Объявление они не собирают. Ими я только режу каталог: новинка, хит, распродажа, маржа или приоритет. Так один файл обслуживает несколько групп, и мне не нужны пять копий XML.
| Поле | Зачем | Ограничение |
|---|
| custom_label_0 и ещё четыре метки | Сегмент: новинка, хит, распродажа, маржа | Текст до 175 символов. Условие: равно, содержит, не содержит |
| custom_score | Числовой приоритет товара | 0 или целое положительное. Условие: равно, больше, меньше, диапазон |
| id, url, name, picture коллекции | Страница подборки, не карточка | В офере ставлю collectionId. Блок коллекций стоит после категорий |
Коллекция — страница каталога. С июня 2025 она входит в настройку товарной кампании, поэтому пустой блок я не оставляю. Обязательные поля коллекции — id, url, name и picture. Акции и новинки помечаю меткой внутри того же фида, а не новым файлом на весь ассортимент.
Как проверить файл до загрузки
До библиотеки фидов я смотрю поля и ссылки, а не только то, что файл открывается.
Обычный проверщик XML не видит запятую в цене, available в виде yes и чужой id. До библиотеки фидов я прохожу файл сам: кодировка, дата, уникальность, наличие, картинки и ответ сервера. Если на этом шаге тихо, отчёт кабинета потом короче.
- Кодировка UTF-8. Windows-1251 Директ тоже читает, но я оставляю UTF-8, чтобы кириллица в названии не поехала.
- В корне стоит date с датой и временем выгрузки. Пустая или кривая дата — повод пересобрать файл, а не загружать как есть.
- id уникальны и совпадают с электронной коммерцией Метрики. К адресу товара добавляю параметр _ym_debug=2, открываю консоль и сравниваю id покупки с id в фиде.
- available только true или false. Цена с точкой. Валюта RUR или RUB.
- picture не меньше 450 на 450 пикселей, без водяного знака. Формат JPG, PNG, WebP или GIF, вес до 10 МБ.
- Для подборок в файле есть блок коллекций с id, url, name и picture, а в офере указан collectionId.
- Адрес фида по HTTPS отвечает 200, без цепочки на ошибку и без допуска по IP. По ссылке файл не тяжелее 512 МБ, ручная загрузка — не тяжелее 200 МБ.
На аккаунт приходится до 50 фидов. Один файл я держу в пределах 100 000 товаров, крупный каталог делю по категориям или брендам. По ссылке робот скачивает фид раз в сутки. У единой перфоманс-кампании фильтры пересчитываются не реже раза в сутки, на большом файле интервал бывает реже. Выгрузку из CMS ставлю раньше этого окна, чтобы робот забрал уже свежие цены и остатки.
Файл может прийти из CMS, сервиса или ручной вёрстки, проверка одна. У модуля на Битриксе, WooCommerce, InSales или OpenCart смотрю коллекции, метки и честный available. Сервис годен, если не режет обязательные поля и обновляет файл сам. Ручной XML оставляю на пилот в десятки SKU и кладу на HTTPS.