Налаштування YML-фіду для Яндекс.Маркет у Бітрікс

Ми часто стикаємося з ситуацією: клієнт запускає товарну рекламу в Яндекс.Маркеті, а система повідомляє, що 30% товарів не беруть участі. Не вистачає обов'язкових атрибутів. На одному проєкті з 12 000 позицій у рекламу потрапляло лише 7 000. Причина — відсутність тегів `<param>` з характеристиками:
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування YML-фіду для Яндекс.Маркет у Бітрікс
Простий
~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
    763
  • 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 робочих дні. Для точної оцінки необхідна консультація по вашому проєкту.

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