RAPI

FLOW

Создать магазин

Как подготовить товарный фид и запустить рекламу отдельных SKU

Учебный YML-фид на трёх товарах: как связать SKU с ID, проверить выгрузку, отобрать предложения в ЕПК и учесть изменение наличия. Шаги запуска и диагностика ошибок.

Тёмный кот выбирает отмеченные товарные карточки на экране ноутбука рядом с керамической кружкой

Для рекламы отдельных товаров подготовьте обновляемый фид, проверьте соответствие его записей карточкам магазина и ограничьте набор предложений в товарном объявлении. В Яндекс Директе это можно сделать через Единую перфоманс-кампанию — ЕПК. Загрузка каталога сама по себе не означает, что выбраны нужные товары или начались показы.

Ниже — инструкция для собственного интернет-магазина с доступом к каталогу, Директу и Яндекс Метрике. Пройдём учебный пример: в выгрузке три варианта кружки, для рекламы выбраны два, но один пока отсутствует. Инструкция основана на документации; этот пример не запускался в платном рекламном кабинете. Путь через Мастер кампаний и реклама товаров маркетплейса требуют отдельной настройки.

Какие товары выбрать до подготовки фида

SKU — отдельная товарная позиция, например кружка определённого цвета и объёма. Фид — файл с данными предложений, из которых рекламная система может сформировать объявления. В YML, формате каталога на основе XML, отдельное предложение записывается в элементе offer, а его идентификатор — в атрибуте id.

Внутренний артикул магазина и offer id могут различаться. Сначала установите соответствие между ними: возьмите артикул из каталога или учётной системы, ID — из настроек выгрузки либо её текущего файла, адрес — со страницы нужного варианта. У каждого предложения должен быть уникальный ID, а один и тот же товар в разных фидах должен сохранять одинаковый идентификатор.

Для первого отбора удобна небольшая группа, которую можно проверить вручную. Выберите товары с понятной ценой, возможностью доставки в выбранный регион и экономикой, допускающей рекламные расходы. Отсутствующую позицию можно оставить в списке будущего продвижения, но её нельзя считать доступной только ради запуска.

В нашем учебном примере магазин собирается рекламировать две кружки объёмом 350 мл. Большую кружку пока оставляет вне теста. Цены и артикулы вымышлены; предполагаем, что у каждой вариации есть своя страница.

SKU магазинаПредложениеoffer idЦенаВ наличииМетка отбора
CUP-GREEN-350Зелёная кружка, 350 мл101790 ₽Даpilot
CUP-BLUE-350Синяя кружка, 350 мл102790 ₽Нетpilot
CUP-GREEN-500Зелёная кружка, 500 мл103990 ₽Даreserve

Откройте страницы всех выбранных вариаций, в том числе отсутствующей. Проверьте цвет, объём, фото, цену и наличие; для доступного товара пройдите добавление в корзину и начало оформления. Если ссылка открывает другой вариант, исправьте её до рекламы: одинаковое название модели не делает варианты взаимозаменяемыми.

Как получить YML и что в нём проверить

Начните с экспорта в системе управления магазином — CMS — или учётной системе. Найдите её штатную выгрузку YML для Директа и проверьте, какие поля она передаёт. Если выгрузки нет или она не умеет передавать нужную метку, передайте разработчику таблицу соответствия и требования ниже. Названия разделов и возможности модулей зависят от вашей системы.

Для этого примера используем упрощённое описание предложения с элементом name. Ключевые поля имеют разное назначение и условия обязательности.

ПолеЧто передать и проверить
offer idУникальный постоянный идентификатор конкретного предложения
nameНазвание с вариантом товара; обязательно для упрощённого описания
urlАдрес соответствующей страницы товара
categoryIdID категории, объявленной в разделе categories
pictureАдрес изображения; нужен для товарного объявления ЕПК
price и currencyIdАктуальную ненулевую цену и её валюту; при передаче цены валюта обязательна
availabletrue при наличии, false при отсутствии; обязателен для отбора по наличию
custom_label_0Нашу метку pilot для выбранных товаров, reserve для остальных

Проверьте также само изображение: для этого формата каждая сторона должна быть не меньше 450 пикселей. Ссылка на картинку другого цвета или размера товара не подходит, даже если файл технически принят.

Цена нужна покупателю для выбора и обязательна для товарной галереи, но называть её безусловно обязательной для любого сценария Директа было бы неверно. Состав полей проверяйте по требованиям именно выбранного формата. Таблица выше помогает разобрать пример и не заменяет полную проверку вашей выгрузки.

Полный учебный файл на три предложения

Ниже приведён полный учебный XML-документ, от объявления кодировки до закрывающего yml_catalog. Все адреса на shop.example — учебные заглушки: карточек и изображений по ним нет. Перед загрузкой замените все данные примера своими: сведения магазина, адреса, категории, ID, названия, цены, наличие и метки.

<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2026-10-29 10:00">
  <shop>
    <name>Учебный магазин кружек</name>
    <company>Учебная компания</company>
    <url>https://shop.example/</url>
    <currencies>
      <currency id="RUB" rate="1"/>
    </currencies>
    <categories>
      <category id="10">Кружки</category>
    </categories>
    <offers>
      <offer id="101" available="true">
        <url>https://shop.example/cups/green-350</url>
        <price>790</price>
        <currencyId>RUB</currencyId>
        <categoryId>10</categoryId>
        <picture>https://shop.example/images/green-350.jpg</picture>
        <name>Кружка керамическая зелёная, 350 мл</name>
        <custom_label_0>pilot</custom_label_0>
      </offer>
      <offer id="102" available="false">
        <url>https://shop.example/cups/blue-350</url>
        <price>790</price>
        <currencyId>RUB</currencyId>
        <categoryId>10</categoryId>
        <picture>https://shop.example/images/blue-350.jpg</picture>
        <name>Кружка керамическая синяя, 350 мл</name>
        <custom_label_0>pilot</custom_label_0>
      </offer>
      <offer id="103" available="true">
        <url>https://shop.example/cups/green-500</url>
        <price>990</price>
        <currencyId>RUB</currencyId>
        <categoryId>10</categoryId>
        <picture>https://shop.example/images/green-500.jpg</picture>
        <name>Кружка керамическая зелёная, 500 мл</name>
        <custom_label_0>reserve</custom_label_0>
      </offer>
    </offers>
  </shop>
</yml_catalog>

В yml_catalog date указывайте фактические дату и время генерации, а не дату из примера. Разделы currencies и categories расположены перед offers; значения categoryId ссылаются на существующую категорию. Сохраните файл в указанной кодировке UTF-8.

При формировании XML нужно экранировать специальные символы в данных: обычный амперсанд & записывают как &amp;, знак < — как &lt;. Например, адрес с параметрами внутри элемента записывается так:

<url>https://shop.example/cups/green-350?color=green&amp;volume=350</url>

После разбора XML это будет адрес с обычным & между параметрами. Экранируют содержимое полей, а сами теги оставляют тегами. Если значение атрибута заключено в двойные кавычки, двойную кавычку внутри значения передают как &quot;. Штатный экспорт должен формировать корректный XML; при ручных правках проверьте результат повторно.

Атрибут available в примере указан у всех трёх предложений. По умолчанию Директ считает товары в фиде доступными, поэтому отсутствие атрибута не исключает распроданный вариант. Наличие должно совпадать с карточкой и оформлением покупки.

Загрузка фида и проверка данных

В Директе откройте «Библиотека → Фиды → Добавить фид». Можно загрузить файл с компьютера или указать HTTP(S)-ссылку на него. Для меняющихся цен и остатков удобнее обновляемая ссылка: при ручной загрузке нужно самостоятельно передавать новую версию после изменений.

Откройте адрес выгрузки без входа в CMS и убедитесь, что по нему доступен сам файл с актуальными данными. Затем добавьте источник и дождитесь обработки в Директе. Если появился отчёт об ошибках, найдите указанные предложения и исправьте генератор или исходные поля каталога. Разовая правка скачанного файла не поможет, если следующая автоматическая выгрузка снова вернёт ошибку.

Проверьте результат на трёх уровнях:

  1. Файл принят. Нет блокирующих ошибок структуры, обязательных элементов и повторяющихся ID; ожидаемые предложения обработаны.
  2. Данные верны. Адрес, фото, цена и наличие каждого выбранного предложения совпадают с сайтом.
  3. Источник обновляется. Новая выгрузка содержит свежие данные и время генерации; Директ обработал нужную версию.

Валидация проверяет структуру и элементы, но не подтверждает за вас, что синяя кружка действительно есть на складе. Принятый файл также не означает успешную модерацию объявления.

По справке Директ скачивает фид по ссылке раз в сутки. Для ЕПК дополнительно проверяется отбор товаров — раз в сутки или чаще, когда это возможно; большие файлы могут обрабатываться реже. Обновление не мгновенно: изменение в CMS ещё не доказывает, что рекламная система уже получила новую цену или остаток.

Товарное объявление и отбор выбранных SKU

По документации путь создания начинается с «Добавить → Кампанию → Режим эксперта → Единая перфоманс-кампания». Укажите сайт, проверьте счётчик Метрики и цель покупки. Заранее определите предел расходов, места показа и географию, в которой магазин может исполнить заказ; затем создайте группу с нужными настройками аудитории и таргетинга.

Цель должна отражать выбранный этап покупки: клик по кнопке не равен оплаченному заказу. Пройдите тестовый сценарий и проверьте событие в Метрике; подробности есть в инструкции по целям магазина. Сумму теста определяйте по допустимым расходам и экономике заказа — этому посвящён расчёт рекламного бюджета.

Добавьте в группу товарное объявление и выберите фид как источник, указав ссылку или загрузив файл. Сверьте, что подключена именно подготовленная выгрузка. Если задача ограничена отдельными товарами, отключите продвижение каталогов: оно ведёт на страницу каталога, тогда как здесь нужны страницы выбранных товаров. Настройка обычных объявлений по ключевым фразам отдельно разобрана в руководстве по первой поисковой кампании.

Как две выбранные позиции превращаются в одну

В настройках товарного объявления откройте «Товары → Фильтр». Для ЕПК документация предусматривает фильтры по custom_label_0–custom_label_4, ID и наличию. В нашем примере задача отбора выражается так: метка custom_label_0 имеет значение pilot и товар доступен к покупке, то есть available=true.

Выберите соответствующие поля и значения в доступном интерфейсе. Это описание требуемого результата, а не строка для вставки в поле фильтра: названия операторов и расположение настроек могут различаться. Условия объединяются через «И», поэтому предложение должно удовлетворять каждому из них.

IDМетка pilotНаличие trueПодходит под оба условия
101ДаДаДа
102ДаНетНет
103НетДаНет

Ожидаемый результат — одно подходящее предложение, ID 101. Метка выбирает две кружки объёмом 350 мл, а наличие исключает синюю. Большая кружка 103 не попадает в отбор, хотя продаётся на сайте.

Сверьте показанное число подходящих товаров с таблицей. Одной цифры недостаточно: проверьте в исходном фиде ID, метку и наличие, а в доступном просмотре предложений — сами товары. Ноль означает, что нужно искать несовпадение условий или данных; два и больше на этом этапе требуют проверки наличия и того, не пропущено ли одно из условий.

Отбор по ID тоже предусмотрен справкой; для него рекомендованы числовые идентификаторы. Однако способ перечисления нескольких ID нужно сверять с вашим интерфейсом. Не подменяйте служебную метку произвольным param: для нашего решения используем именно custom_label_0.

Если CMS не передаёт метки либо интерфейс не позволяет собрать нужное сочетание условий, подготовьте отдельную обновляемую выгрузку только выбранных предложений. Для примера это 101 и 102 с прежними ID. При доступном фильтре наличия исключайте 102 им; если такого отбора нет, генератор должен включать в рекламную выгрузку только выбранные товары в наличии. Проверьте это правило и обновление файла, иначе отдельная выгрузка быстро устареет.

Что делать при изменении наличия

Продолжим пример: синяя кружка 102 поступила на склад. Сначала подтвердите её доступность на сайте и при оформлении, затем обновите источник данных. В новом фиде у 102 должно стать available="true", метка pilot и ID остаются прежними, время генерации меняется.

Откройте опубликованную выгрузку и найдите 102. После обработки новой версии Директом повторите проверку условий и количества: теперь ожидаются два предложения, 101 и 102. Товар 103 по-прежнему исключён меткой. Для отдельной рекламной выгрузки проверьте также, что генератор добавил 102 обратно, если раньше исключал его из-за отсутствия.

Если товар закончился, выполните обратную проверку: измените источник, убедитесь в новом available="false" и проверьте результат обработки. Пока актуальность отбора не подтверждена, приостановите соответствующее продвижение. После замены фида или изменения его структуры пересмотрите фильтры: по справке они могут сброситься, если нужных элементов в новом источнике нет.

Модерация, запуск и первые результаты

До отправки проверьте предпросмотр объявления и переход на нужную вариацию. Исправьте неверную цену, изображение или посадку в источнике. После завершения проверки отправьте объявление на модерацию; показы могут начаться после её прохождения и оплаты. Без средств генерация товарных объявлений не начнётся, поэтому отсутствие готовых объявлений не всегда вызвано XML.

Проверяйте статус кампании, объявления и фида отдельно. Отбор означает, что предложение подходит по заданным условиям; он не гарантирует показ каждому выбранному SKU или покупку. После начала размещения сопоставляйте расходы, переходы и заказы с заранее выбранной целью теста и допустимым расходом.

Для корректного офферного ретаргетинга — повторного обращения к посетителю с конкретным товаром — в Рекламной сети Яндекса ID товара в электронной коммерции Метрики должен совпадать с offer id фида. Проверьте это соответствие, если используете такой сценарий. Оно не является отдельным универсальным условием любого запуска товарной рекламы.

Если показов нет или набор товаров не совпадает с ожидаемым, двигайтесь от источника проблемы к действию:

Что наблюдаетеЧто проверитьЧто делать дальше
Объявления не сформированы, показов нетБаланс и статус кампании, затем загрузку фида и принятые предложенияУстранить указанную причину; после обработки снова проверить статус
Фид не принят или часть оферов пропущенаОтчёт загрузки, обязательные поля, уникальность ID, XMLИсправить исходные данные или генератор и передать новую версию
Подходящих товаров нольЗначения метки, наличие и все условия через «И»Сопоставить условия с конкретным offer; исправить расхождение
В отбор попал лишний товарЕго ID, метку, наличие; сохранность фильтра после замены фидаИсправить метку или фильтр, повторить сверку состава
Товары отобраны, показов всё ещё нетМодерацию, затем географию, места показа, аудиторию и ограничения кампанииИсправить причину статуса или неподходящие настройки
Есть переходы, но нет зафиксированных покупокРаботу оформления и цели, фактические заказы, расход и объём полученных данныхИсправить измерение или покупку; при недостатке данных не объявлять товары неэффективными

Если причина остаётся неясной, соберите ID кампании и фида, время последней обработки, текст ошибки и ID проблемных предложений. Эти данные помогут специалисту воспроизвести проблему. При неверной цене или рекламе отсутствующего товара сначала остановите соответствующее продвижение и исправьте источник, затем возвращайтесь к оценке эффективности.

Чек-лист перед запуском и после обновления

  • Сопоставьте выбранные SKU с offer id и страницами: по каждому адресу открывается нужный вариант с правильной ценой и фото.
  • Проверьте возможность покупки на сайте: наличие в карточке, корзине и фиде совпадает, отсутствующие товары явно исключаются из отбора.
  • Проверьте новую выгрузку: XML читается, дата генерации актуальна, Директ принял ожидаемые предложения без блокирующих ошибок.
  • Сверьте условия и состав отбора: в исходном примере проходит только 101, после поступления 102 — позиции 101 и 102; товар 103 остаётся вне теста.
  • Проверьте счётчик и цель тестовой покупкой, задайте предел расходов, географию и места показа, подтвердите переход из предпросмотра.
  • Перед началом показов убедитесь, что модерация пройдена, средства зачислены и нет статуса с причиной блокировки; после начала проверяйте расходы, переходы и реальные заказы.
  • После изменения цены, наличия или замены фида дождитесь обработки и повторно проверьте фильтры. При неподтверждённой актуальности приостановите соответствующее продвижение.

Весь функционал бесплатно на 3 месяца

Далее 990 рублей в месяц

Создать магазин