Anthony Baitsur
22 990
Блоги

Что такое метапоиск авиабилетов — ответ команды Aviasales на «Разбор полётов» от читателя

Директор по продуктам Aviasales — об особенностях работы сервиса для поиска авиабилетов.

Поделиться

В избранное

В избранном

Начитавшись публикаций с догадками по поводу работы метапоисковиков, «разоблачающих» комментариев и предполагающих заметок, мы решили написать свою статью и честно рассказать о том, как поиск авиабилетов устроен на самом деле.

Что такое метапоиск авиабилетов

Представьте себе рынок:

  • сотни авиакомпаний по всему миру;
  • несколько систем дистрибуции (GDS) с различными правилами и опциями;

  • консолидаторы со специальными условиями от авиакомпаний;

  • тысячи онлайн-агентств путешествий (online travel agency, ОТА);
  • десятки различных тарифов, опций и правил у каждой авиакомпании;

  • разнообразные ограничения на стороне GDS и авиакомпаний для разных рынков и стран.

Поиск по всему этому массиву данных — дело масштабное. Каждый раз, когда пользователь Aviasales нажимает кнопку «Искать», мы отправляем обезличенный поиск нашим партнёрам, получаем от них ответ (а это около 300 ответов API совершенно разнообразных форматов и размеров, то есть до 150 МБ данных на каждый поиск), нормализуем эти ответы, склеиваем их, сортируем и показываем пользователю.

Чем мы принципиально отличаемся от других

  • Мы не кэшируем страницу с результатами наших поисков, а каждый раз делаем новый запрос к API партнёров, чтобы пользователь сразу видел ту сумму, которая будет списана с его карты.

  • Мы принципиально не разрешаем нашим партнёрам добавлять на своей стороне дополнительные услуги без прямого согласия пользователя и очень ревностно следим за соблюдением этих правил.

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

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

Авиакомпаний недостаточно: зачем нужны агентства в поиске Aviasales

  1. Основной бизнес авиакомпаний — перевоз пассажиров из точки А в точку B.
  2. На таком сложном рынке есть масса возможностей оптимизировать поисковые запросы и среди множества тарифов выбирать лучшие.

  3. Интерлайны: у каждой авиакомпании есть ряд ограничений, вызванных наличием специальных договоров или членством в одном из альянсов. Это значит, что Thai Airways никогда не продаст на своем сайте авиабилет с пересадкой, в котором один из сегментов будет выполнять Air Asia, а EasyJet не предложит вернуться домой с помощью WizzAir, хотя это может быть значительно дешевле.
  4. Ценообразование ОТА устроено так, что посредники могут активно играть со своим маркапом (наценкой), зарабатывая, например, на дополнительных услугах, а не на комиссиях.

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

Почему отличаются цена и наличие билетов

Причин довольно много.

  1. Кэширование цен в поисковой выдаче (мы этого не делаем принципиально).
  2. Билет может быть продан за то время, что пользователь переходит на сайт. По некоторым тарифам количество билетов крайне ограниченно, их быстро разбирают.
  3. Билеты могут не успеть оплатить или вовсе отменить — через некоторое время бронь слетает, и они снова начинают отображаться в поиске.
  4. Как мы уже рассказывали выше, Aviasales работает с сотнями партнёров, во время поиска могут случаться и технические проблемы. Например, API партнёра может не ответить — это происходит нечасто, в среднем — в 0,2% случаев.
  5. На стороне ОТА тоже живые люди и свои алгоритмы ценообразования. Для них метапоиск — канал трафика, поэтому могут быть и манипуляции с ценами. Мы запрещаем нашим партнёрам внезапно повышать цену после перехода наших пользователей к ним на сайт, а недобросовестных партнёров оперативно отключаем.

  6. Да, бывает и такое, что какие-то ОТА или авиакомпании не сотрудничают с тем или иным метапоисковиком по какой-то причине. Мы напрямую работаем с большинством российских и международных авиакомпаний и ОТА.

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

Правда ли, что если искать билеты из Бутово с Android-устройства, будет дешевле

Это самый распространённый миф, который путешествует из одной статьи в другую. К сожалению (ха-ха), в случае с метапоиском авиабилетов — это неправда.

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

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

Мы заботимся о пользователях и хотим, чтобы они спокойно, быстро и безболезненно завершили процесс бронирования на официальных сайтах авиакомпаний и агентств.

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

Какие существуют инструменты планирования

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

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

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

Ещё мы выпустили специального бота «аномальных» цен, который в режиме реального времени отправляет в мессенджеры дешёвые билеты по заданным направлениям.

Ещё есть блог с идеями для поездок и адекватными советами.

Что в итоге

Я прошёлся по основным темам, которые часто обсуждают на форумах, в блогах и пабликах. Надеюсь, что получилось понятно. Если остались вопросы, пишите.

{ "author_name": "Anthony Baitsur", "author_type": "self", "tags": [], "comments": 94, "likes": 81, "favorites": 40, "is_advertisement": false, "section_name": "blog", "id": "32372", "is_wide": "" }
{ "is_needs_advanced_access": false }

Комментарии Комм.

Популярные

По порядку

0

Прямой эфир

Подписаться на push-уведомления
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } } ]