Мониторинг цен конкурентов для аптек на агрегаторе

Мониторинг цен конкурентов для аптек на агрегаторе

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

Владелец аптеки пришел с задачей: он хочет видеть не свои цены, которые и так знает, а цены конкурентов по своему ассортименту. И не разово, а регулярно, чтобы реагировать. Ниже – как устроен такой мониторинг и почему сопоставление товаров сложнее самого сбора данных.

Мониторинг цен конкурентов для аптек на агрегаторе

Постановка задачи

Формулировка клиента была короткой: “по названию моего товара найти такие же товары конкурентов, которые тоже делают доставку, и два раза в неделю присылать выгрузку с моими ценами и ценами конкурентов, подсвечивая позиции, где я дороже или дешевле”.

В этом предложении спрятаны четыре отдельные подзадачи, и только одна из них – собственно парсинг.

  1. Забрать свой ассортимент.
  2. Найти на площадке те же позиции у конкурентов.
  3. Отфильтровать тех, кто действительно конкурирует, – то есть делает доставку в нужный регион.
  4. Собрать все в отчет, где виден не набор чисел, а решение: что поднимать, что опускать, где все в порядке.

Самая тяжелая часть – сопоставление товаров

Кажется, что сверить цены просто: берешь название, ищешь, сравниваешь. На практике именно здесь проект либо работает, либо превращается в генератор мусора.

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

Поэтому сопоставление делается в несколько слоев:

  • Прямое совпадение по коду. Если на площадке есть внутренний идентификатор карточки товара, это самый надежный путь. Один товар – одна карточка – список аптек с ценами.
  • Нормализация названия. Название приводится к единому виду: убираются лишние символы, унифицируются сокращения, отдельно выделяются дозировка, количество в упаковке и форма выпуска.
  • Сравнение по нормализованным признакам. Совпадение считается действительным, только если совпали и действующее вещество, и дозировка, и количество. Иначе позиция уходит в отдельный список “требует проверки”.

Этот последний список – принципиальная вещь. Автоматика не имеет права молча подставлять сомнительные совпадения: одно ошибочное сопоставление, и клиент опустит цену там, где этого делать не надо. Лучше честно сказать “здесь я не уверен”, чем подсунуть красивое, но неправильное число.

Фильтр по доставке

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

Как выглядит отчет

Выгрузка делается два раза в неделю. Это не просто таблица цен, а таблица с выводами:

  • название позиции и моя цена;
  • минимальная цена среди конкурентов с доставкой и сколько таких конкурентов;
  • разница в гривнах и в процентах;
  • цветовая подсветка: красное – я существенно дороже, зеленое – я самый дешевый, желтое – разница в пределах погрешности;
  • отдельный лист с позициями, где сопоставление не удалось и нужен глаз человека.

Смысл цвета простой: владелец открывает файл и за тридцать секунд видит, куда смотреть. Длинные таблицы без приоритетов никто не читает дальше второй недели.

Техническая сторона

Нагрузка на источник

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

Стабильность

Агрегаторы регулярно меняют верстку и внутренние адреса. В парсер заложены проверки на адекватность результата: если вдруг у половины товаров исчезла цена или количество найденных конкурентов обвалилось в разы, я получаю уведомление и проверяю, что изменилось на сайте, до того как клиент увидит странный отчет.

История

Каждая выгрузка сохраняется. Через несколько месяцев появляется то, чего не дает ни один разовый срез: видно, кто из конкурентов системно демпингует, кто поднимает цену следом за вами, а кто вообще не следит за рынком.

Когда мониторинг окупается

Разработка здесь – это сопоставление товаров, фильтры и отчет, а дальше ежемесячная поддержка: площадка меняется, и парсер нужно держать в рабочем состоянии. Окупится ли это, зависит не от сложности задачи, а от оборота.

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

Кому нужен мониторинг цен

Лучше всего это работает там, где выполняются два условия: товар сравнимый и покупатель видит цены рядом. Аптеки, электроника, автозапчасти, бытовая химия, стройматериалы – классика. Если у вас уникальный товар, мониторинг конкурентов мало что даст.

Второе условие – готовность что-то делать с результатом. Мониторинг сам по себе не приносит денег. Деньги приносит решение: поднять цену там, где вы самый дешевый без нужды, и опустить там, где вы на пятом месте в выдаче и не получаете заказов.

С чего начать

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

Дальше, если картина интересная, настраивается расписание: раз в неделю, два раза в неделю, ежедневно – по потребности. Подробнее о направлении есть на странице парсинг сайтов с защитой от ботов и в других разборах блога.

Опишите свой случай: какая площадка, сколько позиций, как часто нужны данные. За короткий разговор я скажу, решается ли задача и сколько это будет стоить.

Частые вопросы

Как система понимает, что это тот же товар?+
В несколько слоев: сначала прямое совпадение по идентификатору карточки, потом нормализация названия с выделением дозировки, фасовки и формы выпуска. Сомнительные совпадения не подставляются молча, а уходят в отдельный список на проверку.
Можно ли сравнивать цены товаров с разной фасовкой?+
Нет, это самая частая ошибка в мониторинге. Разная фасовка - это разные товары, и система считает совпадение действительным только при одинаковом количестве и дозировке.
Как часто нужен мониторинг?+
Зависит от ниши. Двух раз в неделю хватает большинству магазинов. Ежедневный мониторинг имеет смысл там, где конкуренты реально меняют цены каждый день.
С чего начать, если не уверен в пользе?+
С разовой выгрузки по своему ассортименту. Вы увидите реальную картину и уже потом решите, нужно ли регулярное наблюдение.
Похожая задача?

Опишите ее - за 15-20 минут скажу, решается ли она, каким путем и сколько примерно будет стоить. Без обязательств.

Обсудить задачу →