Начало


Я часто езжу в поездки и покупаю авиабилеты.
И так же часто страдаю от интерфейса агрегаторов авиабилетов.
Я не могу выбрать билет и совершить покупку.


Кейс


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


В этот раз я захотел слетать в Серфаус — это горнолыжная деревня в Австрии.
Улететь не ранее 5 января, вернуться на позднее 15 января. На 6-8 дней.


Теперь нужно найти лучший билет под эти условия.
"Лучший" в моем случае — это комбинации объективной цены и субъективного удобства перелета — время вылета/прилета, аэропорт вылета, авиакомпания и так далее.


Как кейс решается у агрегатора авиабилетов


  1. Трансформирую деревню Серфаус в три ближайших аэропорта — Мюнхен, Инсбрук и Цюрих с помощью гугл-карт.
  2. Иду в агрегатор авиабилетов. Нахожу инструмент типа "Календарь низких цен".
  3. Открываю его в трех вкладках для трех аэропортов.
  4. Выбираю январь.
  5. Начинаю тыкать в каждый день января, чтобы увидеть время вылета/прилета и цену билета.
  6. Если мне понравился какой-то билет, тыкаю в него, чтобы убедиться, что билет реально есть. Потому что кеш.
  7. Чтобы запомнить, в какой день какой билет мне понравился, я записываю его в блокнот или таблицу.

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


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


Как кейс должен решаться


  1. Указываю "Серфаус" в поле "Куда" в агрегаторе.
  2. Выбираю примерные даты.
  3. Выбираю подходящую продолжительность.
  4. Получаю список билетов для покупки.
  5. Выбираю подходящий билет и покупаю.

… такого сценария работы нет у агрегаторов.


Мысли


  • Агрегаторы не умеют работать с моим сценарием.
  • У нас 2017 год, web 3.0, *aas'ы, микросервисы и вообще скоро на Марс.
  • Есть миллион API для поиска билетов, запилю свой блекджек.

Поиск решения


Получасовое гугление показало, что в 2017 году нет свободного API для поиска билетов.
Ни у кого из агрегаторов.


  • Но как же, ведь есть куча партнерок, скажете вы!
  • Да, куча есть. Но они не дают доступа к API либо вообще (ставь наш баннер/виджет и лей трафик к нам на сайт), либо дают, но после непрозрачной процедуры модерации заявок на доступ к API.
    Один из крупнейших сервисов так и пишет — заполняйте заявку, 4 недели мы подумаем, потом может быть ответим.

Единственное доступное API есть у гугла. Называется QPX Express.


Решение


С помощью QPX и Google App Script за 70 минут был написан эдд-он к гугл-таблице, который читает из неё куда тебе нужно лететь, ищет билеты, и пишет в неё же все варианты с ценами.


Результат выглядит так: image


Вверху таблицы я заполняю откуда/куда (IATA коды аэропортов через запятую) и в каком диапазоне дат я хочу полететь. Указываю сколько дней (списком через запятую) готов потратить на поездку.
На второй половине листа я получаю результат — список авиабилетов отранжированный по цене.
На одном листе у мне все подходящие варианты авиаперелета.
Встроенными инструментами фильтрации я могу выбрать нужные мне даты/время.


Остаётся перейти на сайт авиакомпании и купить билет.


Минус решения


Минус решения — доступ к API стоит денег (первые 50 запросов в день бесплатно, потом $0.035 за 1 запрос), поэтому сделать микросайт для всех не получилось.


Пока нельзя вбить "Серфаус" в поле "Куда". Думаю, что это решится одним из гугловых API.


Я тоже так хочу


Если вы хотите искать билеты так же, то здесь инструкция, как это сделать.
Просто потестировать QPX API можно здесь бесплатно.


Что дальше


Поиск гостиницы — это абсолютно такой же кейс, который закрывается так же неудобно.


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


Если вы знаете, какие сервисы могут дать бесплатное/платное API для поиска билетов и/или гостиниц — пишите в комментарии/ЛС.

Комментарии (27)


  1. djhox
    03.10.2017 10:15
    +1

    А знаете чего так не работает? По тому что агрегаторы делают запрос в агенства по продаже авиабилетов, агенства делают запрос в GDS, каждый запрос для агенства стоит денег и что б посмотреть стоимость по каждой комбинации дат — делается отдельный запрос. Вы же хотите делать под 100 запросов под одного человека. И, хоть в это мало кто верит, комиссия агенства на продажу авиабилета иногда составляет около рубля (гривны) и агенства выживают только за счет количества выкупленных билетов. Работаю в агенстве по продаже авиабилетов, так что инфа 100%


    1. isxam
      03.10.2017 10:37

      То есть агрегаторы при каждом поиске делают запрос к агенству и агенство при каждом запросе прокидывает его к GDS? Ни на одном из уровней данные не кешируются? Неужели на популярных агрегаторах подавляющее число уникальных поисковых запросов :/


      1. djhox
        03.10.2017 14:06

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


    1. mot Автор
      03.10.2017 10:46

      1. Чем гипотетические 100 запросов для описанного кейса отличается от 100 запросов для текущего механизма работы агрегатора, когда 1 пользователь занимается перебором дат и аэропортов — смотрю с 10 по 17, потом с 11 по 18, потом беру другой аэропорт и продолжаю перебор?

      2. Сколько сейчас приходится запросов на 1 покупку? Как от пользователя сделавшего покупку, так и на всю массу пользователей? (например за день на 100 покупок 1000000 запросов).


      1. djhox
        03.10.2017 14:07

        Так такое количество запросов делает куда меньшее количество человек, а добавив такую возможность — будет делать каждый второй


      1. djhox
        03.10.2017 14:13

        На второй вопрос ответить довольно сложно, большинство наших клиентов — бизнесмены и компании: у них есть четкие даты. Для остальных на покупку может уходить и больше 100 запросов: есть и те которые сначала выискивают лучшее предложение как и Вы, а потом ежедневно проверяют, вдруг появится что-то дешевле, а когда стоимость поднимается — звонят и говорят: «вчера мы видели стоимость ниже, сделайте нам вчерашнюю стоимость»


  1. lair
    03.10.2017 11:44
    +1

    http://matrix.itasoftware.com не решает вашу проблему?


    1. JDBiber
      03.10.2017 12:07

      Немного странный сервис
      Round trip: Nuremberg to Kiev, Oct 27 — Oct 31 No flights found.
      swoodo: 206 вариантов


      1. lair
        03.10.2017 12:20

        … мне показывает 17 страниц результатов.


        1. JDBiber
          03.10.2017 13:16

          может фильтр по IP? какой самый деевый был. у меня на свуду 260


    1. mot Автор
      04.10.2017 15:00

      Спасибо за ссылку, по сути это демо того же QPX API.

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


      1. lair
        04.10.2017 15:01

        Там же есть календарь лучших цен, который показывает сразу. Более того, он еще и фильтруемый.


  1. thunderspb
    03.10.2017 13:22

    Эх, такую бы штуку по лоукостерам европейским типа RyanAir, Wizzair…


    1. vitovt
      04.10.2017 07:48
      +1

      azair.com вполне решает задачу


      1. thunderspb
        04.10.2017 13:03

        Ох тыж, спасибо. Век живи — век гугли, блин!


    1. otjog
      04.10.2017 14:58

      Azair.eu


    1. robben1234
      04.10.2017 14:58

      www.kiwi.com/en

      Тот самый юз-кейс, который описал автор, у них работает. Есть лоу-косты. По крайней мере европейские точно, в Азии меньше выбор.


  1. vitovt
    04.10.2017 07:50

    Интересный кейс, спасибо! Для себя написал такую штуку только на symfony +MySQL и по крону раз в сутки запускаю поиск Билетов. Ещё подключил разные апи типа Момондо и скайсканера но это больше для статистики — все равно точных цен они не возвращают


    1. mot Автор
      04.10.2017 15:00

      Можете дать детали, как подключили API скайсканера?


  1. IgorPastukhov
    04.10.2017 09:46

    Matrix. Тот случай, когда web 3.0 и микросервисы и собственные велосипеды:-)


  1. v1ptyoz
    04.10.2017 14:58

    Нам на ДВ бы такие проблемы…
    Из Хабаровска три калеки летит на международные направления (регулярки). Цены одинаково конские всегда.


  1. nochnoj
    04.10.2017 14:58
    +1

    Столкнулся с той же проблемой лет 7 назад, решил запилить свое решение. Сделал даже сайт и алгоритм, который даже работал. Думал о том чтобы стартап сделать.
    Но опять же — столкнулся с теми же проблемами что и вы, нет свободного апи, запросы в галилей и прочие сервисы стоят денег, а мой алгоритм запрашивал ну очень много. Пробовал обойтись скрейпингом. Но скрейпинг сайтов работал недолго и надо было обновлять постоянно, апи сайтов или не было или они не спешили делиться доступом к нему с каким-то левым чуваком. Так что работало по факту на основании цен ryanair и несколько русских агенств.
    В итоге забросил дело. Вижу что в этом мало что изменилось за последнее время.


  1. CkoeTael
    04.10.2017 14:58

    Можно использовать api мобильных приложений))


    1. mot Автор
      04.10.2017 15:01

      Что конкретно нужно сделать?)


      1. CkoeTael
        04.10.2017 16:03
        +1

        Качаешь нужное приложение и снимаешь https трафик, практически у всех под https передается json с запросом.


  1. Miletskyi
    05.10.2017 10:33

    Рекомендую сайт www.azair.eu
    Является очень гибким инструментом для поиска билетов. Нашел когда-то случайно
    Обратите особое внимание на Advanced Options ;)

    результат поиска по вашим датам

    Учтите, что он использует ограниченную базу операторов и тот же СкайСканер ИНОГДА находит перелеты подешевле


    1. mot Автор
      05.10.2017 11:54

      Спасибо, сервис действительно ищет очень гибко.

      Но база правда ограниченная — например с 6 по 13 января Москва-Мюнхен он видит только рейсы Победы и не видит рейсов других авиакомпаний.