Мы часто сталкиваемся с ситуацией: клиент запускает товарную рекламу в Яндекс.Маркете, а система сообщает, что 30% товаров не участвуют. Не хватает обязательных атрибутов. На одном проекте из 12 000 позиций в рекламу уходило только 7 000. Причина — отсутствие тегов <param> с характеристиками: цвет, память, размер. Без них Яндекс не может правильно сопоставить товар с запросом, и эффективность кампании падает в 2–3 раза. Качественно настроенный фид решает эту проблему и экономит до 30% рекламного бюджета за счёт лучшего таргетинга. Снижает стоимость клика на 15-20% за счёт точного попадания в запрос.
Какие проблемы решает грамотный YML-фид?
Правильно сформированный фид — это не просто выгрузка каталога. Это возможность управлять тем, как Яндекс видит ваши товары. Без тегов <param> товары не участвуют в уточняющих запросах («купить смартфон 128 ГБ чёрный»). С ними — конверсия растёт на 15–25%. Кроме того, отсутствие профиля под товарную рекламу приводит к тому, что Яндекс не может корректно отображать объявления по моделям, брендам и категориям.
Почему стандартный экспорт не подходит?
Встроенный профиль (Каталог → Экспорт → Добавить профиль → Яндекс.Маркет (YML)) генерирует базовый фид, но не выгружает свойства инфоблока как <param>. Для товарной рекламы это критично: без параметров Яндекс не может показывать объявления по уточняющим запросам. Также стандартный экспорт не позволяет гибко управлять структурой торговых предложений, а при больших каталогах (от 50 000 товаров) время генерации достигает 2 часов.
Сравним подходы:
| Характеристика | Встроенный экспорт | Кастомный генератор |
|---|---|---|
Поддержка <param> |
Требует доработки | Полный контроль |
| Работа с торговыми предложениями | Базовая | Гибкая логика |
| Производительность (100K+ товаров) | Медленно — до 2 часов | XMLWriter с потоком — 15 минут |
| Кастомизация структуры | Ограничена | Любая схема |
Кастомный генератор обрабатывает каталог из 50 000 позиций в 8 раз быстрее — 15 минут вместо 2 часов. Это особенно важно при ежедневном обновлении фида.
Как ускорить генерацию фида?
Для больших каталогов используйте потоковую запись XMLWriter без буферизации всего DOM. Например:
// /local/cron/yandex_market_feed.php $categories = getIblockSections($IBLOCK_ID); $tmpFile = tempnam(sys_get_temp_dir(), 'yml_'); $xml = new XMLWriter(); $xml->openUri($tmpFile); $xml->startDocument('1.0', 'UTF-8'); // ... генерация структуры yml_catalog Официальная документация: YML-формат Яндекс.Маркета подчёркивает: фид должен содержать все характеристики, влияющие на выбор покупателя. Мы это гарантируем.
Как добавить недостающие параметры в фид?
Решение — перехватить событие OnGetYmlOfferXml и добавить элементы <param>:
// /local/php_interface/init.php \Bitrix\Main\EventManager::getInstance()->addEventHandler( 'catalog', 'OnGetYmlOfferXml', function (\Bitrix\Main\Event $event) { $offer = $event->getParameter('OFFER'); $xml = $event->getParameter('XML'); $paramProps = ['COLOR' => 'Цвет', 'MEMORY' => 'Память', 'SCREEN_SIZE' => 'Диагональ экрана']; foreach ($paramProps as $propCode => $paramName) { if (!empty($offer['PROPERTIES'][$propCode]['VALUE'])) { $xml .= sprintf( '<param name="%s">%s</param>', htmlspecialchars($paramName), htmlspecialchars($offer['PROPERTIES'][$propCode]['VALUE']) ); } } return new \Bitrix\Main\EventResult( \Bitrix\Main\EventResult::SUCCESS, ['XML' => $xml] ); } ); Шаги:
- Определите свойства инфоблока, которые нужно выгрузить как параметры (цвет, память, размер).
- Напишите обработчик на
OnGetYmlOfferXml, который добавляет<param>для каждого свойства. - Проверьте фид в личном кабинете Яндекс.Маркета.
Типичные ошибки и их устранение
Частая проблема — неверный формат даты в yml_catalog. Дата должна быть в формате YYYY-MM-DD HH:MM, иначе фид отклоняется. Дублирующиеся id офферов возникают, когда товары и торговые предложения имеют одинаковые ID. Решение — генерировать уникальные ID, например, 'Товар123-ТП1'. Недопустимые символы в XML (например, амперсанд) нужно заменять на &. И наконец, все товары должны иметь цену (тег price) — если цены нет, товар не участвует в выгрузке.
Что входит в настройку фида
Наши инженеры (опыт работы с Битрикс — более 5 лет, более 50 настроенных фидов) выполняют полный цикл:
- Анализ структуры каталога и свойств инфоблоков. Выявляем, какие характеристики важны для Яндекс.Маркета, и проверяем их заполнение.
- Проектирование схемы фида: определяем маппинг стандартных полей и добавляем кастомные параметры через события или кастомный генератор.
- Реализация: пишем обработчики или отдельный скрипт генерации, используем XMLWriter для производительности.
- Тестирование: загружаем фид в личный кабинет Яндекс.Маркета, проверяем на ошибки и валидность.
- Оптимизация производительности: для каталогов от 10 000 товаров настраиваем кэширование и потоковую запись.
- Интеграция с планировщиком cron для ежедневного обновления фида.
Оценка сроков настройки
Стандартный YML-профиль с маппингом свойств и добавлением <param> через хуки — 4–8 часов. Кастомный генератор для сложного каталога с торговыми предложениями и параметрами — 1–2 рабочих дня. Для точной оценки необходима консультация по вашему проекту.
Получите бесплатный аудит текущего фида — свяжитесь с нами. Мы проверим структуру, производительность и подскажем, как улучшить выгрузку. Закажите настройку фида и увеличьте эффективность рекламы.







