В магазине 1 240 карточек, в YML — 1 310 элементов offer, а рекламный кабинет принял 1 186 предложений. Эти числа не обязаны совпадать: одна карточка может содержать несколько вариантов, в фиде могут быть дубли ID и товары не в наличии, а часть записей платформа исключит из-за ошибок.
Сначала определите, что именно нужно посчитать. Для первичной сверки достаточно четырёх показателей: все элементы offer, уникальные offer id, записи в наличии и предложения, прошедшие выбранный набор локальных проверок. Число принятых товаров берите только из отчёта рекламной системы после обработки файла.
Четыре числа вместо одного
В требованиях Яндекс Директа к YML список предложений находится внутри <offers>, а каждый товарный оффер описывается отдельным <offer>. У каждого товара должен быть уникальный идентификатор. Поэтому простой подсчёт тегов отвечает только на вопрос о количестве записей в файле — он не подтверждает количество разных товаров.
Полезно зафиксировать четыре определения:
| Показатель | Что считать | Что он показывает |
|---|---|---|
Элементы offer | Все открывающие теги <offer …> | Объём записей в исходном файле |
| Уникальные ID | Разные значения offer id | Сколько идентификаторов не повторяется |
| В наличии | Офферы с фактическим доступным состоянием | Какой ассортимент заявлен доступным |
| Локально готовые | Уникальные доступные офферы с обязательными полями | Что можно передать на загрузку по выбранным правилам |
Последняя строка — результат вашей локальной проверки, а не решение Яндекса. Платформа отдельно читает файл, проверяет условия формата и страницы товаров. Модерация и обработка могут уменьшить итоговое число.
Учебный пример подсчёта
В условном фиде семь записей. Он нужен только для демонстрации метода и не описывает реальный магазин.
| Строка | id | available | Проверка обязательных полей |
|---|---|---|---|
| 1 | A-101 | true | Поля на месте |
| 2 | B-102 | false | Поля на месте |
| 3 | C-103 | true | Поля на месте |
| 4 | C-103 | true | Повтор ID |
| 5 | D-104 | true | Нет categoryId |
| 6 | E-105 | true | Поля на месте |
| 7 | F-106 | false | Для упрощённого offer нет name |
Получаются разные итоги:
- элементов
offer— 7; - уникальных ID — 6;
- записей с
available="true"— 5; - локально готовых записей — 2:
A-101иE-105.
Пара строк с C-103 требует исправления в источнике: нельзя уверенно выбрать «правильную» запись по позиции в файле. Оффер D-104 не проходит выбранную проверку из-за отсутствующего categoryId. Записи B-102 и F-106 не попадают в доступный ассортимент; у F-106 есть дополнительная ошибка названия.
Четыре счётчика отвечают на разные вопросы. Принятые платформой предложения проверяются отдельно после загрузки.
Как повторить проверку на своём фиде
1. Сохраните точную версию файла
Запишите URL или имя файла, дату и время получения, размер и контрольную сумму. Если источник формируется автоматически, повторная загрузка по тому же адресу уже может вернуть другую версию. Без зафиксированного файла нельзя доказать, откуда взялось расхождение.
2. Запустите полный разбор
В анализаторе товарных фидов WiseLab можно загрузить YML/XML с компьютера, указать URL или вставить код. На момент проверки полный режим заявляет до 25 000 товаров и 15 МБ, быстрый — первые 2 000 целых товаров и до 5 МБ. Быстрый режим подходит для первого осмотра, но не подтверждает полный счётчик большого файла.
Выберите правила Яндекс Директа и полный режим, если файл помещается в лимит. Сохраните отдельно:
- общее число офферов;
- число уникальных ID;
- число дублей ID;
- распределение по наличию;
- число ошибок, предупреждений и рекомендаций.
Если файл превышает лимит инструмента, попросите разработчика или аналитика посчитать эти же показатели потоковым XML-парсером. Поиск строки <offer в текстовом редакторе годится только как быстрая диагностика: комментарии, пространства имён и повреждённая структура могут дать неверный результат.
3. Проверьте смысл ID и вариантов
Один товар на сайте может давать несколько офферов, если цвет, размер или комплект рекламируются как отдельные предложения. Это объяснимое превышение числа офферов над числом карточек. Зафиксируйте правило: какая сущность получает собственный offer id и когда варианты объединяются на одной странице.
Яндекс требует уникальный идентификатор каждого товара и рекомендует сохранять идентификаторы одного товара одинаковыми между фидами. Случайная смена ID превращает обновление в новую сущность для сопоставления. Не исправляйте дубли добавлением случайного суффикса, пока не выяснили, описывают ли записи разные варианты.
4. Отделите наличие от технической готовности
Атрибут available отвечает за возможность купить товар. По документации Директа, если атрибут не указан, система считает присутствующий в фиде товар доступным; для отсутствующих товаров состояние нужно передавать явно. Поэтому заранее решите, как ваш счётчик трактует пропущенный атрибут, и запишите это правило рядом с результатом.
Техническая готовность проверяется отдельно. Для упрощённого оффера нужен name; для type="vendor.model" — vendor и model. Также сверяйте обязательные ссылки, категории, цену и валюту для выбранного формата. В документации Директа BYN входит в список поддерживаемых кодов валют, но цена и валюта должны совпадать с карточкой товара.
Как объяснить расхождение команде
Фраза «в кабинете меньше товаров» не показывает причину. Передайте таблицу переходов между счётчиками:
| Переход | Что исключили | Где искать причину |
|---|---|---|
Карточки сайта → offer | Или добавились варианты | Правило формирования вариантов |
Все offer → уникальные ID | Дубли идентификаторов | Выгрузка из CMS или ERP |
| Уникальные → доступные | Нет в наличии | Остатки и расписание обновления |
| Доступные → локально готовые | Нет обязательных полей, неверные связи | Генератор фида и отчёт анализатора |
| Локально готовые → принятые | Ошибки обработки, страницы, правила площадки | Отчёт рекламного кабинета |
Для каждой строки приложите конкретные ID. Процент без списка примеров плохо помогает разработчику: он не показывает, какие записи исчезли и воспроизводится ли причина.
Материал об ошибках и предупреждениях YML поможет разделить блокирующие проблемы и рекомендации по качеству. После исправления используйте чек-лист приёмки товарного фида: сравните точную версию, число офферов, уникальные ID и состав ассортимента до и после.
Критерий готовности
Подсчёт завершён, когда у каждого числа есть определение, точная версия файла и список исключённых ID. Для загрузки нужен фид без необъяснимых дублей, с согласованным наличием и обязательными полями. Итоговое число товаров подтверждайте после обработки в рекламной системе — локальный зелёный отчёт не заменяет статус кабинета и проверку карточек.
Источники
Материал подготовлен редакцией WiseLab с помощью AI. Источники и фактические утверждения проверены при подготовке.
Что думаете?
Загружаем комментарии…