Настройка фида товарной рекламы для Яндекс.Маркета в 1С-Битрикс

Мы часто сталкиваемся с ситуацией: клиент запускает товарную рекламу в Яндекс.Маркете, а система сообщает, что 30% товаров не участвуют. Не хватает обязательных атрибутов. На одном проекте из 12 000 позиций в рекламу уходило только 7 000. Причина — отсутствие тегов `<param>` с характеристиками: цвет
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка фида товарной рекламы для Яндекс.Маркета в 1С-Битрикс
Простой
~1 день

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1460
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    882
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    809
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1164

Мы часто сталкиваемся с ситуацией: клиент запускает товарную рекламу в Яндекс.Маркете, а система сообщает, что 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] ); } ); 

Шаги:

  1. Определите свойства инфоблока, которые нужно выгрузить как параметры (цвет, память, размер).
  2. Напишите обработчик на OnGetYmlOfferXml, который добавляет <param> для каждого свойства.
  3. Проверьте фид в личном кабинете Яндекс.Маркета.

Типичные ошибки и их устранение

Частая проблема — неверный формат даты в yml_catalog. Дата должна быть в формате YYYY-MM-DD HH:MM, иначе фид отклоняется. Дублирующиеся id офферов возникают, когда товары и торговые предложения имеют одинаковые ID. Решение — генерировать уникальные ID, например, 'Товар123-ТП1'. Недопустимые символы в XML (например, амперсанд) нужно заменять на &amp;. И наконец, все товары должны иметь цену (тег price) — если цены нет, товар не участвует в выгрузке.

Что входит в настройку фида

Наши инженеры (опыт работы с Битрикс — более 5 лет, более 50 настроенных фидов) выполняют полный цикл:

  • Анализ структуры каталога и свойств инфоблоков. Выявляем, какие характеристики важны для Яндекс.Маркета, и проверяем их заполнение.
  • Проектирование схемы фида: определяем маппинг стандартных полей и добавляем кастомные параметры через события или кастомный генератор.
  • Реализация: пишем обработчики или отдельный скрипт генерации, используем XMLWriter для производительности.
  • Тестирование: загружаем фид в личный кабинет Яндекс.Маркета, проверяем на ошибки и валидность.
  • Оптимизация производительности: для каталогов от 10 000 товаров настраиваем кэширование и потоковую запись.
  • Интеграция с планировщиком cron для ежедневного обновления фида.

Оценка сроков настройки

Стандартный YML-профиль с маппингом свойств и добавлением <param> через хуки — 4–8 часов. Кастомный генератор для сложного каталога с торговыми предложениями и параметрами — 1–2 рабочих дня. Для точной оценки необходима консультация по вашему проекту.

Получите бесплатный аудит текущего фида — свяжитесь с нами. Мы проверим структуру, производительность и подскажем, как улучшить выгрузку. Закажите настройку фида и увеличьте эффективность рекламы.