О поиске карточек товара при мониторинге цен Яндекс.Маркет

Почему это важно?

По определению Яндекса, карточка товара — это набор страниц с подробной информацией о товаре. Карточка содержит информацию о товаре, картинки, предложения магазинов, рейтинг товара, отзывы и т.п.

Очевидно, что парсинг Яндекс Маркета с любой целью, будь то наполнение собственного сайта магазина или мониторинг цен конкурентов, начинается с поиска соответствующей товару карточки.
Этот этап еще называют матчинг или мэтчинг (matching).
Ошибка на этом этапе приводит к неверной оценке вашей рыночной позиции по товару и, как следствие — к недополучению прибыли либо затовариванию на складе, в конечном итоге — к потере денег.

Автоматически или вручную?

Это не такой уж странный вопрос для сервиса мониторинга цен. Некоторые подобные нашему сервисы прямо требуют указание заказчиком ссылок страниц для мониторинга.

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

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

Чтобы этот этап проходил как можно более гладко (люди тоже, бывает, ошибаются), очень важно, чтобы данные для проверки представить в удобном для сотрудника (то есть, эргономичном) виде.
В наших EXCEL-отчетах рядом с вашим наименованием присутствует название из найденной карточки, а под табличкой подробных сведений — дополнительный список карточек в порядке убывания «похожести» с точки зрения системы. (пример отчета)

Как работает поиск карточек на parser.market?

Все «просто» — ищем подходящую карточку и показываем предложения в ней.

Но, как всегда, есть нюансы, которые не позволяют обойтись этим простым и емким объяснением.
Успех поиска карточки напрямую зависит от названия в прайсе, ровно так же, как и успех ручного поиска.
Чем ближе название товара к названию в карточке, тем больше шансов найти именно то, что нужно.

На хорошо структурированном рынке, вроде бытовой техники, нюансов обычно немного,

Карточка товара может оказаться:

Пустой (то есть, карточка товара существует, но предложений в ней нет).
В этом случае алгоритм считает задачу выполненной, ведь, отрицательный результат — тоже результат
Самое важное для нас — постараться не выдать заказчику результат по похожему, но не тому товару, поскольку такой мониторинг цен введет заказчика в заблуждение.

Удаленной — ошибка 404 (карточка существовала на Яндекс Маркете, возможно, появится снова)
В этом случае алгоритм ищет другие карточки товара, если находит то, что кажется достоверным — выдает результат по ней.
Если ничего достоверного не находится (то что находится — мало похоже на товар из задания) — предлагает посмотреть на результаты из поиска и/или список похожих карточек.

Несколько карточек на один товар — чаще всего это означает, что большинство из них создавались самими продавцами, и содержат они часто только предложение этого продавца.
При этом ценовой разброс в них может быть велик, и выбор одной из этих карточек не даст адекватного представления о ценовом предложении на рынке.
В зависимости от результатов поиска карточки возможны три варианта поведения алгоритма:
1. Ищет и предлагает наиболее популярную карточку.
2. Если есть основание полагать, что на карточках дублируется один и тот же товар — мы показываем несколько карточек, вместо названий магазинов — ID карточек и ссылки на них.
В этом случае, вместо названия товара на Яндекс Маркете Вы увидите фразу: «возможно, дубликаты, показано несколько карточек».
3. Если результаты поиска вообще не выглядят достоверными, будут показаны результаты поиска, а также список «похожих», по мнению системы, карточек.

Как уточнить карточку товара при следующем поиске?

Найденные карточки товара запоминаются системой, поэтому в следующий раз карточка уже не ищется, что позволяет ускорить получение результатов.
Записи о карточках привязаны к заказчику, поэтому чьи-то неточности в названиях не повлияют на ваши результаты.

Если карточка найдена неверно, либо существует более подходящая для Вас карточка товара, в следующем поиске ее можно уточнить.

Для управления поиском карточек существуют 3 параметра в файле с заданием:

marketid — прямое указание на карточку товара, состоит только из цифр.
Если указано — система перезаписывает id карточки и в дальнейшем ориентируется уже на новую.
Если новая карточка приводит к ошибке 404 — система начинает поиск карточки, как если бы она не была указана.
Этот параметр полезен, если в базе компании хранятся id карточек товара Яндекс Маркета, хотя бы по каким-то определенным позициям.

donotsearch — если «1» — система не будет искать новую карточку даже при ошибке 404.

textsearch — здесь можно прямо задать поисковый запрос, если название товара в прайсе слишком детальное

Откуда берутся ошибки в поиске карточек?

1. Первый источник — сами продавцы, почти каждый пишет наименование товара по-своему.

  1. Простая иллюстрация из практики (и это еще относительно понятный рынок брендовой бытовой техники, а не, например, китайских аксессуаров для телефонов):

Название товара прайсе: Триммер BRAUN BT3241+GIL FUS PrG Flb Бр+1к
Название товара в найденной карточке Яндекс Маркета: Триммер Braun BT 3241 (ссылка)
Варианты названий товара в предложениях магазинов:
Триммер Braun BT 3241
Триммер Braun BT 3241, black
Braun Bt3241+gil FUS PRG FLB Бр+1к .
Триммер Braun BT3241 черный/желтый
Триммер Braun BT3241 + бритва Gillette
Триммер Braun BT3241 Черный
Машинка для стрижки Braun BT 3241
Триммер Braun BT3241 + Бритва Gillette + 1 кас черный/желтый (насадок в компл:2шт)
Braun Триммер Braun BT3241 + Бритва Gillette + 1 кас черный/желтый (насадок в компл:2шт)
Машинка для стрижки Braun BT3241 + Бритва Gillette + 1 кас черный/желтый
Триммер для бороды Braun BT3241 + Бритва Gillette

Здесь стоит отметить, что предложения магазинов в Яндекс Маркете тоже проходят этап сопоставления (матчинга) с карточками товаров.

Отсюда напрашивается простой вывод — чем ближе ваше название в прайсе к названию в карточке, там больше шансов:
— найти карточку в процессе парсинга Яндекс-маркета
— попасть на правильную карточку товара
— быть найденным потенциальным покупателем

2. Ошибки/опечатки — куда же без них? В примере ниже для артикула роутера DVB4231GL заказчику стоило бы написать модель 4C, и тогда наш алоритм, скорее всего, нашел бы правильную карточку.

В данном примере правильной является неочевидная вторая карточка из дополнительного списка.

Wi-Fi роутер Xiaomi Mi Wi-Fi Router 4A Gigabit Edition599214003Ссылка на карточку, id: 599214003
Wi-Fi роутер Xiaomi Mi Wi-Fi Router183740383Ссылка на карточку, id: 183740383
Роутер беспроводной Xiaomi Mi WiFi Router 4C DVB4231GL 10100BASE-TX белый1400535672Ссылка на карточку, id: 1400535672
Беспроводной маршрутизатор (роутер) Xiaomi Mi WiFi Router 4C Global (DVB4231GL)2000532305707Ссылка на карточку, id: 2000532305707
Роутер беспроводной Xiaomi Mi WiFi Router 4A DVB4230GL 10100BASE-TX1400535683Ссылка на карточку, id: 1400535683

2. Второй источник — особенности алгоритма сопоставления.

Несмотря на схожесть подходов к поиску подходящей карточки у разных сервисов, каждый программист мыслит по-своему, а значит — разные реализации выдают результаты разной степени достоверности.
Бесплатные проверки после регистрации помогут оценить, подходит ли для вашего ассортимента автоматическое распознавание карточек на parser.market.
В крайнем случае, всегда есть возможность указать карточки для парсинга цен вручную, используя загрузку задания по образцу.

3. Еще один источник ошибок — как ни странно, сам Яндекс-маркет.

Первый пример (часть найденных предложений скрыта для краткости):

Что мы видим:

Название товара в прайсе: Триммер BRAUN MGK7221+GIL FUS PrG Flb Бр+2к+чх
Название товара в найденной карточке (id: 676043004, ссылка) — Набор для стрижки Braun MGK 7221 — 26 предложений, от 5939 до 8150 рублей
Найденные системой «похожие» карточки (цены — на момент написания страницы):

Триммер Braun MGK7221+GIL (0 предложений)675914635Ссылка на карточку, id: 675914635
Триммер Braun MGK7221 + бритва Gillette (1 предложение, 8235руб)976497964Ссылка на карточку, id: 976497964
Машинка для стрижки Braun MGK7221 + Бритва Gillette (1 предложение, 9090руб)651824143Ссылка на карточку, id: 651824143
Триммер Braun MGK7221 + бритва Gillette (1 предложение, 8235руб)1406810025Ссылка на карточку, id: 1406810025
Триммер Braun MGK7221 + бритва Gillette (0 предложений) 948355183Ссылка на карточку, id: 948355183

В данном примере карточки оказались настолько «похожими», что, формально, если бы наш (или любой другой) сервис предложил в качестве результата любую из шести(!) найденных карточек — придраться не к чему, поскольку это один и тот же товар (судя по артикулу)!
Тем не менее, очевидно, что практическая польза есть только в первом результате — остальные, по сути, лишь дезориентируют заказчика.

То есть, это и не ошибка вовсе (ни со стороны сервиса, ни со стороны заказчика) — а последствия — те же, что и при поиске неверного результата (ориентируетесь на 9т.р, в то время, как на самом деле полно предложений меньше 6т.р)!

4. Обновления карточек Яндекс Маркетом

Пример 1:

Искомый товар: Электронная книга PocketBook 632
Указанный заказчиком id карточки: 476823007 (ссылка на карточку)
Результат — ошибка 404 (Яндекс Маркет не знает такой карточки), но, учитывая количество таких ошибок, нет никаких оснований списывать все на опечатки заказчика.

Несмотря на это, (если в файле задания не задан параметр audoid = 1) в данном случае система находит карточку 175233410 (ссылка) с тем же самым товаром
Старая карточка, по всей вероятности, была удалена Яндекс Маркетом, а предложения этого товара привязываются к новой.

Пример 2:

Вариант удаленной карточки с переадресацией.
В прайсе заказчика указаны три товара и id карточек к ним, которые, очевидно, когда-то существовали на Яндекс Маркете.

460216080ссылка на карточкуПлеер Apple iPod touch 7 256GB
460219062ссылка на карточкуПлеер Apple iPod touch 7 128GB
460226072 ссылка на карточкуПлеер Apple iPod touch 7 32GB

При попытке перейти по ссылкам предполагаемых карточек Яндекс Маркет переадресовывает на новую карточку 460216079 (ссылка)