Сопоставление отелей и номеров: запуск с разбивкой по районам

Сопоставление отелей и номеров запущено

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

В diji.tech мы запустили на отельной стороне новую возможность: сопоставление отелей и номеров (mapping). Она состоит из пяти частей — сопоставление отелей, сопоставление типов номеров, сведение удобств отеля к общему словарю, поиск отелей с разбивкой по районам и регионам и сбор фотографий отелей и номеров в один пул. Ниже разбираем, какую операционную боль закрывает каждая часть, как результат выглядит на экране, что стоит проверить в день запуска и чем измерять качество. В конце — список того, чего эта возможность не делает.

Один отель, разные записи: четыре проблемы, которые мы закрыли

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

  • Дубли в выдаче. Один и тот же отель приходит отдельной записью от каждого подключённого поставщика. Если источников пять, в списке будет пять строк. Прежде чем что-то сравнивать, сотрудник вынужден вручную разобрать, какие строки относятся к одному и тому же объекту.
  • Хаос в названиях номеров. Один и тот же тип номера в одном источнике записан как Standard Double, в другом — DBL STD, в третьем — «Стандартный двухместный». Сотруднику кажется, что он сравнивает два предложения по одному номеру, а на деле он может сравнивать два разных номера.
  • Пустая выдача фильтров. Вы отмечаете «есть парковка» — и число результатов падает сильнее, чем ожидалось. Причина не в том, что парковки нет: один источник пишет это удобство как Car Park, другой — «Парковка», третий — Parking, а фильтр не считает их одним и тем же.
  • Непродаваемый источник с бедным контентом. У части поставщиков цена отличная, но в записи нет ни фотографии, ни адреса. По карточке без фото не кликают: предложение с лучшей себестоимостью так и остаётся в списке непроданным — только из-за слабого контента.

Все четыре растут из одного корня: записи из разных источников не переведены на общий язык. Сопоставление занимается ровно этим переводом.

Единый идентификатор отеля: три записи сводятся к одной карточке

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

Записи одного отеля от трёх поставщиков сводятся в одну карточку

Три записи одного отеля привязываются к общему идентификатору; решение по цене и решение по контенту принимаются раздельно.

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

  1. Решение по цене. Из нескольких предложений по одному отелю сторону продажи выигрывает самое выгодное по стоимости. Сотруднику не нужно искать, какой источник дешевле: цена карточки уже и есть дешёвая.
  2. Решение по контенту. Пустые поля выигравшего предложения — название отеля, адрес, фотография — дополняются из других источников. То есть карточка выглядит заполненной, даже если победившая по цене запись сама по себе бедна контентом.

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

И здесь же предупреждение: сопоставление ведётся централизованно. Карточка отеля, само сопоставление и таксономия удобств — это не экран внутри панели агентства. На стороне агентства меняется результат поиска: дедуплицированный, дополненный по контенту и пригодный для фильтрации список.

Сопоставление типов номеров и общий язык питания

Даже когда отель схлопнулся в одну карточку, работа не закончена: настоящее сравнение происходит на уровне номера. Сопоставление типов номеров связывает по-разному записанные названия номеров разных поставщиков с одним и тем же типом. Только после этого «два предложения по одному отелю» действительно означает «два предложения по одному номеру».

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

Код Значение Как это пишут в текстах поставщиков (примеры)
RO Только номер «Room Only», «Только проживание», «No meal»
BB Номер и завтрак «Bed & Breakfast», «Завтрак включён»
HB Полупансион «Half Board», «Полупансион»
FB Полный пансион «Full Board», «Полный пансион»
AI Всё включено «All Inclusive», «Всё включено»
UAI Ультра всё включено «Ultra All Inclusive», «Ультра всё включено»

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

Список типов номеров, фотография выбранного номера, условия отмены и вариант питания

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

Удобства отеля: общий словарь, который заставляет фильтр работать

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

Вместе с сопоставлением удобства отеля нормализуются в централизованном словаре; концепция и тематика объекта обогащаются тем же способом. Результат становится виден в двух местах:

  • В фильтрах поиска выбор удобства или темы теперь захватывает один и тот же набор записей независимо от источника.
  • В карточке отеля часть удобств выводится текстом, остальные показаны счётчиком. Если вы видите на карточке счётчик вроде «+43 удобства», это число относящихся к объекту позиций: пользователь примерно оценивает наполненность отеля, не открывая карточку.

Разбивка по районам и регионам: название провинции — это не направление

«Анталья» — не направление, а название провинции. Когда клиент хочет остановиться в Ларе, а видит сотни результатов по всей провинции, продажа теряется самым тихим образом: никто не получает сообщения об ошибке, никто не жалуется, поиск просто бросают.

Подсказка адреса теперь понимает четыре типа ввода: регион, округ, псевдоним аэропорта и название отеля. Пользователь, набравший «Лара», получает округ; набравший код аэропорта — его окрестности; набравший название отеля — сам объект. Фильтр Расположение рядом со списком результатов показывает разбивку по районам со счётчиками: сколько отелей в каком районе, видно без единого клика.

Фильтр расположения с разбивкой по районам и карточки результатов поиска отелей

Экран результатов: слева оценка гостей и фильтр Расположение со счётчиками по районам, справа — карточки отелей с фотографией, категорией, счётчиком удобств и строкой номера и питания.

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

Фотографии отелей и номеров: один пул, взаимное дополнение

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

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

Практический итог: список вариантов, который вы отправляете клиенту, выглядит одинаково качественно вне зависимости от источника.

Чек-лист на запуске

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

  • Снимите базовые показатели. По трём самым продаваемым направлениям выполните поиск и запишите, сколько раз один и тот же отель попадает в список и сколько карточек идут без фотографии. Задним числом эти цифры получить не удастся.
  • Проверьте три самых используемых фильтра удобств. Сравните число результатов с включённым и выключенным фильтром.
  • Сделайте два поиска по районам. Вместо названия провинции наберите округ или район и убедитесь, что результаты действительно относятся к этой территории.
  • Откройте два предложения по одному отелю. Убедитесь, что тип номера и код питания читаются одинаково в обоих; если они различаются, сравнивать цены нельзя.
  • Заполните вкладку фотографий по своим контрактным отелям. При пустой галерее отеля и отсутствующих снимках номеров ваш собственный отель проигрывает отелям поставщиков.
  • Передайте команде набор кодов питания. Общее понимание RO, BB, HB, FB, AI и UAI в отделе продаж не даёт озвучить клиенту неверный объём включённого.
  • Обновите привычку сравнения. Рефлекс «дешёвое я найду сам» больше не нужен: цена карточки и есть самое выгодное предложение.

Чем измерять качество сопоставления

Сопоставление — не та возможность, о которой говорят «включили, и стало лучше». Это работа над качеством, и её надо измерять. Четыре показателя ниже стоит снять на своей установке до запуска и после него. Референсных значений мы не публикуем: единственное осмысленное сравнение — это ваши собственные цифры до и после.

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

Повторяйте измерения не разово, а на одном и том же направлении и на одном и том же диапазоне дат. Другие даты — другая доступность; когда доступность меняется, измерение теряет смысл.

Границы и примечания

Что эта возможность не делает, важно не меньше того, что она делает. Ниже — то, что находится за рамками.

  • Управление сопоставлением не является экраном в панели агентства. Карточка отеля, типы номеров и таксономия удобств ведутся централизованно. Ручное вмешательство агентства в результат сопоставления в объём этого анонса не входит.
  • Продажи дополнительных услуг к отельному бронированию нет. Разница, которую вы видите при выборе номера, — это вариант питания; её не следует путать с продажей дополнительных услуг на авиационной стороне.
  • В ваших контрактных отелях загружаются только фотографии отеля и номеров. Загрузки и хранения файлов договоров нет.
  • Интеграции с channel manager нет. Потока, который выталкивает цены и квоты вашего собственного инвентаря во внешний менеджер каналов или забирает их оттуда, не существует.
  • Выгрузки отельного инвентаря во внешний XML/API нет.
  • Модуля группового бронирования (блока номеров) на отельной стороне нет.
  • Массовый список гостей или номеров нельзя импортировать из Excel или CSV.
  • Автоматическое обновление статуса бронирования работает только у поставщиков, которые это поддерживают; обещания «автоматический контроль статуса у всех поставщиков» мы не даём.
  • Дифференциации цены по гражданству гостя нет.

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

Часто задаваемые вопросы

Я продолжу видеть один объект дублями от пяти разных источников?

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

Если побеждает самое дешёвое предложение, фотография на карточке тоже от этого поставщика?

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

Как один и тот же тип номера у разных поставщиков считается одинаковым?

Сопоставление типов номеров связывает по-разному записанные названия номеров с одним и тем же типом. На стороне питания используется канонический набор кодов RO, BB, HB, FB, AI, UAI. Чтобы два предложения были сравнимы, совпадать должны и тип номера, и код питания.

Почему фильтр удобств раньше иногда давал неполный результат?

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

Мои собственные контрактные отели попадают в этот поток?

Ваши контрактные отели выводятся в той же выдаче, что и отели поставщиков. Карточка отеля состоит из шести вкладок, одна из которых — фотографии; загрузив снимки отеля и номеров, вы добьётесь того, что ваш собственный отель выглядит не менее наполненным, чем отели поставщиков.

Сопоставлением управляю я?

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

Что можно сделать сегодня

  1. Снимите базовые показатели. Выполните поиск по трём самым продаваемым направлениям и запишите сегодня, сколько раз повторяется один и тот же отель и сколько карточек идут без фотографии.
  2. Дозаполните вкладку фотографий по своим контрактным отелям. Составьте список объектов с неполной галереей отеля и отсутствующими снимками номеров и закройте его.
  3. Поделитесь набором кодов питания с отделом продаж. Команда, которая знает значения RO, BB, HB, FB, AI и UAI, не опишет клиенту неверный объём включённого.

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