Аналитика (json) — различия между версиями
Kdadmin (обсуждение | вклад) (Новая страница: «== Введение == XML-шлюз аналитики Слетать.ру содержит набор методов для ценового анализа да…») |
(нет различий)
|
Версия 11:13, 10 июля 2015
Содержание
Введение
XML-шлюз аналитики Слетать.ру содержит набор методов для ценового анализа данных о турах. Анализ может быть как динамическим (отслеживание изменений стоимости данного тура с момента выпуска), так и сравнительным (сопоставление разных туров по стоимости). На страницах настоящего руководства описаны следующие группы методов:
- «Минимальные цены по параметрам поиска». Этот метод позволяет получать информацию о самых дешёвых турах, соответствующих введённым параметрам поиска, на каждую дату заданного диапазона. На Рис. 0.1. представлен пример реализации графика минимальных цен. По заданному поисковому запросу (тур из Москвы в Египет на двоих, продолжительностью от 6 до 16 ночей, без ограничений по курорту, туроператору, категории отеля, типу размещения или типу питания), выводятся минимальные цены на туры в диапазоне «дата поиска + 45 дней»; цены на туры представлены в виде гистограммы; диапазон дат вылета, выбранный при поиске (5 апреля – 13 апреля) выделен затенением; при наведении курсора мыши на столбец гистограммы выводится точная цена тура, название туроператора, тип питания, тип номера, название курорта, название отеля и количество звёзд.
pic 1
- «Минимальные цены тура на другие даты». Метод, описанный в этом разделе, используется для построения графика изменения цены тура, соответствующего заданным параметрам поиска, в диапазоне дат. На Рис. 0.2 приведён пример реализации графика. В описании таблицы приведены параметры тура: отель (с указанием количества звёзд), курорт, город вылета, продолжительность тура (в ночах), тип питания и тип размещения; на гистограмме представлены минимальные цены на туры, соответствующие заданным параметрам, на интервал дат, ограниченный только датой поиска (анализируются данные по всем турам, представленным в системе Слетать.ру); при наведении курсора мыши на столбец гистограммы во всплывающем окне выводится информация о туроператоре, дате вылета, дате и времени поиска и цене тура (в сравнении с ценойанализируемого тура); пользователь может отфильтровать данные по туроператорам.
pic 2
- «История цены тура». Эта группа методов позволяет строить график изменения цены на выбранный тур с момента его появления в системе до момента поиска. На Рис. 0.3 приведён пример реализации графика. Для выбранного тура (на двоих в Хургаду 9 апреля, с вылетом из Москвы, продолжительностью 6 ночей, отель Triton Empire Hotel 3*, тип размещения Standard, тип питания HB, оператор Pegas Touristik) выводится график изменения цены; пользователь может просмотреть динамику за неделю, за месяц или за всё время с момента появления тура в системе поиска Слетать.ру.
pic 3
Минимальные цены по параметрам поиска
Метод GetToursGroupByDate позволяет получать информацию о самых дешёвых турах, соответствующих введённым параметрам поиска, на каждую дату заданного диапазона. Адрес сервиса: http://graph.sletat.ru/main.svc/Метод принимает поисковые параметры и возвращает массив из двух колонок для постройки графика, в первой – даты вылета в формате dd.MM.yyyy, во второй – минимальная цена тура на дату.
Параметры:
- countryId - идентификатор страны;
- cityFromId - идентификатор города вылета;
- cities - список идентификаторов курортов через запятую (по умолчанию не используется);
- meals - список идентификаторов питания через запятую (по умолчанию не используется);
- stars - список идентификаторов категорий отелей через запятую (по умолчанию не используется);
- hotels - список идентификаторов отелей через запятую (по умолчанию не используется);
- adults - количество взрослых, по умолчанию 2;
- kids - количество детей, по умолчанию 0;
- nightsMin – минимальная продолжительность тура (в ночах), по умолчанию 3;
- nightsMax - максимальная продолжительность тура (в ночах), по умолчанию 10;
- priceMin - минимальная цена тура (по умолчанию не используется);
- priceMax - максимальная цена тура (по умолчанию не используется);
- date1 - первая дата в диапазоне дат туров в формате dd.MM.yyyy, по умолчанию текущая дата + 1 день;
- date2 - вторая дата в диапазоне дат туров в формате dd.MM.yyyy, по умолчанию текущая дата + 8 дней;
- sources - список идентификаторов туроператоров через запятую (по умолчанию не используется);
- ticketsIncluded - при значении 1 отображаются цена на туры только с перелетом (по умолчанию 0);
- limitMin – временной интервал (от текущих даты и времени), за который нужно сделать выборку данных (60 – за последний час, 1440 – за последние сутки, и т.д.).
Пример вызова:
http://graph.sletat.ru/main.svc/GetToursGroupByDate?countryId=40&cityFromId=832&cities=1592,1642&meals=115&stars=403,404&adults=2&nightsMin=7&nightsMax=10&date1=12.05.2013&date2=27.06.2013&ticketsIncluded=1
Запрашиваются данные по направлению Москва – Египет (Шарм-эль-Шейх и Хургада), в отели 4 и 5 звезд, тип питания AI, продолжительность 7-10 ночей, на диапазон дат с 12 мая по 27 июня.
Пример ответа:
{
"GetToursGroupByDateResult":
{
"Data":
{
"data":
[
[
"12.05.2013",
15537,
"12.05.2013",
"18:25",
"Sunmar",
"Fortuna Fortuna Sharm el-Sheikh 4*",
"4*",
"Шарм-Эль-Шейх",
"AI",
"Standard",
"DBL",
7
],
[
"13.05.2013",
15537,
"12.05.2013",
"18:25",
"Sunmar",
"Fortuna Fortuna Sharm el-Sheikh 4*",
"4*",
"Шарм-Эль-Шейх",
"AI",
"Standard",
"DBL",
7
],
[
"14.05.2013",
16674,
"12.05.2013",
"18:25",
"Pegas Touristik",
"Aida Hotel Sharm",
"4*",
"Шарм-Эль-Шейх",
"AI",
"Standard Room Double",
"---",
7
]
]
},
"ErrorMessage": null,
"IsError": false
}
}В примере ответа для читаемости оставлены данные лишь для трех дат. Массив data содержит вложенные массивы, каждый из которых содержит краткое описание самого дешевого тура для каждой даты из указанного в параметрах диапазона. Ниже описывается каждый элемент таких массивов:
|
Поле |
Тип |
Описание |
|
data[0] |
str |
Дата начала тура в формате dd.MM.yyyy. |
|
data[1] |
int |
Цена тура. |
|
data[2] |
str |
Дата последнего изменения информации о туре в базе данных в формате dd.MM.yyyy. |
|
data[3] |
str |
Время последнего изменения информации о туре в базе данных в формате HH:mm. |
|
data[4] |
str |
Название туроператора. |
|
data[5] |
str |
Название отеля. |
|
data[6] |
str |
Категория отеля. |
|
data[7] |
str |
Название курорта. |
|
data[8] |
str |
Тип питания. |
|
data[9] |
str |
Тип размещения. |
|
data[10] |
str |
Тип номера. |
|
data[11] |
int |
Продолжительность тура, ночей. |
Минимальные цены тура на другие даты
Метод GetTourPriceGroupByDate возвращает данные для построения графика (дата – минимальная цена) и вывода подсказок к каждой точке (дата последнего обновления информации о туре, туроператор). Адрес сервиса: http://graph.sletat.ru/main.svc.
| Хеши туров
В выдаче GetTours (JSON API) для каждого тура в массиве данных элемент с индексом 67 содержит уникальный хеш тура, который запрашивает данные для описываемого графика. |
Параметры:
- countryId - идентификатор страны;
- dptCityId - идентификатор города вылета;
- hash – хеш тура;
- dateStart - первая дата в диапазоне дат в формате dd.MM.yyyy;
- dateEnd - вторая дата в диапазоне дат в формате dd.MM.yyyy;
- sources - список идентификаторов туроператоров (по умолчанию не используется).
Пример вызова:
http://graph.sletat.ru/Main.svc/GetTourPriceGroupByDate?countryId=40&dptCityId=832&dateStart=07.05.2013&dateEnd=06.07.2013&hash=Gb1cwWo1vF4xCEPuHVo71Q%3D%3D
Запрашиваются данные для тура по направлению Москва – Египет для диапазона дат с 7 мая 2013 г. до 6 июля 2013 г.Пример ответа:
{
"GetTourPriceGroupByDateResult":
{
"Data":
{
"dates":
[
"13.05.2013",
"14.05.2013",
"15.05.2013",
"16.05.2013",
"18.05.2013",
"19.05.2013",
"20.05.2013",
"23.05.2013",
"26.05.2013",
"27.05.2013",
"30.05.2013",
"03.06.2013",
"06.06.2013",
"09.06.2013",
"10.06.2013",
"13.06.2013",
"16.06.2013",
"17.06.2013",
"20.06.2013",
"23.06.2013",
"24.06.2013",
"27.06.2013",
"30.06.2013",
"01.07.2013",
"04.07.2013"
],
"found":
[
"12.05.2013 19:00:00",
"11.05.2013 12:53:00",
"12.05.2013 19:03:00",
"11.05.2013 19:31:00",
"11.05.2013 14:28:00",
"12.05.2013 19:03:00",
"12.05.2013 19:03:00",
"12.05.2013 19:00:00",
"12.05.2013 18:56:00",
"12.05.2013 18:56:00",
"12.05.2013 17:17:00",
"12.05.2013 18:41:00",
"12.05.2013 18:41:00",
"12.05.2013 17:57:00",
"12.05.2013 17:57:00",
"12.05.2013 12:06:00",
"12.05.2013 09:08:00",
"12.05.2013 17:30:00",
"12.05.2013 17:30:00",
"12.05.2013 13:41:00",
"12.05.2013 13:41:00",
"12.05.2013 13:41:00",
"11.05.2013 20:45:00",
"12.05.2013 19:03:00",
"12.05.2013 17:50:00"
],
"prices":
[
19020,
38328,
20901,
22324,
22324,
21596,
21596,
21596,
24474,
24474,
25928,
27351,
27351,
27351,
27351,
27351,
26023,
24474,
24474,
24474,
24474,
24474,
24474,
24474,
24474
],
"sources":
[
7,
119,
163,
163,
163,
163,
163,
163,
163,
163,
163,
163,
163,
163,
163,
163,
163,
163,
163,
163,
163,
163,
163,
163,
163
]
},
"ErrorMessage": null,
"IsError": false
}
}Возвращаются четыре массива данных:
- dates – даты, для которых есть цена на тур;
- found – дата и время последнего обновления информации к каждой дате из массива dates;
- prices – минимальные цены тура на каждую дату из массива dates;
- sources – туроператор каждого тура;
История цены тура
Методы GetToursPriceLogCount, GetTourPriceLog и GetTourPriceLogBulk позволяют строить график изменения цены на выбранный тур с момента его появления в системе до момента поиска. Адрес сервиса: http://graph.sletat.ru/main.svc.
| Хеши туров
В выдаче GetTours (JSON API) для каждого тура в массиве данных элемент с индексом 68 содержит уникальный хеш тура, который используется для получения статистических данных по нему. В XML API к каждому туру хеш передается в поле TourArchiveHash. Используя данные хеши туров, можно вызывать методы сервиса graph.sletat.ru. |
GetToursPriceLogCount
Метод принимает один или несколько хешей и выдает первоначальную цену тура, по которой он был найден первый раз. Данная цена может использоваться для указания на процент изменения цены по сравнению с текущей ценой. Также метод возвращает количество зафиксированных изменений цены для каждого тура. Параметр hashes – список хешей. Хеши отделяются знаком |.Пример вызова:
http://graph.sletat.ru/main.svc/GetToursPriceLogCount?hashes=ybzzZjdSGrM5N07eDIccHQ%3D%3D%7CzjlRE0oa0a1NizaBj%2Fnmog%3D%3D%7CX1%2BF8A81B4Z8rhlFBanrZQ%3D%3D
Пример ответа:
{
"GetToursPriceLogCountResult":
{
"Data":
{
"counts"
[
10,
10,
10
],
"firstPrices"
[
52250,
52833,
53417
]
},
"ErrorMessage":null,
"IsError":false
}
}Массив counts содержит кол-во зафиксированных изменений цен к каждому туру (последовательность элементов в массиве соответствует каждому хешу в параметре hashes). Массив firstPrices содержит первую зафиксированную цену для каждого тура.
GetTourPriceLog
Метод возвращает зафиксированные изменения цен для указанного тура. Параметр hash – хеш тура.Пример вызова:
http://graph.sletat.ru/main.svc/GetTourPriceLog?hash=ybzzZjdSGrM5N07eDIccHQ%3D%3D
Пример ответа:
{
"GetTourPriceLogResult":
{
"Data":
{
"Dates":
[
"04.02.2013",
"08.02.2013",
"12.02.2013",
"17.02.2013",
"21.02.2013",
"25.02.2013",
"01.03.2013",
"05.03.2013",
"09.03.2013",
"13.03.2013"
],
"Prices":
[
52250,
51999,
51623,
51498,
49443,
49202,
49202,
42554,
42554,
42554
]
},
"ErrorMessage":null,
"IsError":false
}
}Массив Dates содержит даты, в которые были зафиксированы изменения цены, а массив Prices содержит минимальное значение цены в этот день.
GetTourPriceLogBulk
Функционал аналогичен методу GetTourPriceLog, но с помощью этого метода можно запросить данные сразу по нескольким турам (до 100 туров за один запрос). Параметр hashes – хеши туров, разделенные знаком “|”
Пример вызова:
http://graph.sletat.ru/main.svc/GetTourPriceLogBulk?hashes=9g5NjLS2rtCYgL3I7ZpQfg%3D%3D%7COhF1RqS9dfLXHsEBeMBnkw%3D%3D
Пример ответа:
{
"GetTourPriceLogBulkResult":
{
"Data":
{
"Array":
[
{
"Dates":
[
"17.03.2013",
"21.03.2013",
"25.03.2013",
"29.03.2013",
"02.04.2013",
"06.04.2013",
"10.04.2013",
"14.04.2013",
"18.04.2013",
"19.04.2013",
"23.04.2013",
"24.04.2013",
"28.04.2013",
"02.05.2013",
"07.05.2013",
"11.05.2013",
"12.05.2013",
"15.05.2013",
"16.05.2013",
"17.05.2013",
"18.05.2013",
"21.05.2013",
"22.05.2013",
"23.05.2013",
"27.05.2013",
"28.05.2013",
"31.05.2013",
"04.06.2013",
"08.06.2013",
"10.06.2013",
"14.06.2013",
"18.06.2013",
"22.06.2013",
"26.06.2013",
"27.06.2013",
"28.06.2013",
"29.06.2013",
"30.06.2013",
"07.07.2013",
"08.07.2013"
],
"Hash": "OhF1RqS9dfLXHsEBeMBnkw==",
"Prices":
[
20406,
20336,
20352,
20224,
20307,
20829,
20733,
20662,
20989,
21103,
21030,
21030,
20738,
20719,
12466,
12467,
12467,
12447,
12409,
12355,
12355,
12321,
12298,
12343,
12397,
12389,
12535,
12683,
12897,
13072,
13150,
12921,
13265,
13149,
13149,
13107,
13072,
13072,
13109,
13109]
},
{
"Dates":
[
"14.05.2013",
"15.05.2013",
"16.05.2013",
"18.05.2013",
"21.05.2013",
"22.05.2013",
"23.05.2013",
"27.05.2013",
"28.05.2013",
"31.05.2013",
"04.06.2013",
"08.06.2013",
"10.06.2013",
"14.06.2013",
"18.06.2013",
"22.06.2013",
"26.06.2013",
"27.06.2013",
"28.06.2013",
"29.06.2013",
"30.06.2013",
"01.07.2013",
"07.07.2013",
"08.07.2013"
],
"Hash": "9g5NjLS2rtCYgL3I7ZpQfg==",
"Prices":
[
31093,
30966,
31161,
31064,
24144,
23935,
23973,
31015,
31015,
28892,
29251,
29466,
29466,
29511,
28892,
29933,
29888,
30067,
30032,
29879,
29879,
29879,
31674,
31674
]
}
]
},
"ErrorMessage": null,
"ExecutionTimeMs": 73,
"IsError": false
}
}
Массив Array содержит элементы, каждый из которых описывает данные по изменению цен для одного тура. Каждый такой элемент содержит массив Dates с датами, в которые были зафиксированы изменения цены, а массив Prices содержит минимальное значение цены в этот день. Элемент hash является уникальным идентификатором тура, для которого предоставлены данные.