Русский English

API для получения триггерных событий плеером

      Содержание раздела:

Общее описание запроса

Запрос направляется на встроенный HTTP сервер плеера для запуска воспроизведения определенного объявления.

Встроенный HTTP сервер плеера работает на интерфейсе 127.0.0.1 и не требует авторизации.

Base URL: http://127.0.0.1:9036/

GET current-playlist?frameId=<frameId> Текущий плейлист для фрейма

{
   "playlist": [1, 2, 13],
   "playlistEndTime: "12:12:45 09.05.2019", //optional
   "currentIndex": 0,
   "currentAdvertisement": 13,  //optional
   "lastTime": 3000
}

playlist - список id объявлений текущего плейлиста
playlistEndTime - время, до которого плейлист актуален (HH:mm:ss dd.MM.yyyy)
currentIndex - текущая позиция в списке объявлений
lastTime - оставшееся время в миллисекундах для текущего объявления

GET advertisements Текущий плейлист для фрейма

[
{
  "frameId": 7922,
  "items": [
    {
      "advertisementId": 33428,
      "filePath": "C:\\Users\\admin\\AppData\\Local\\CityScreen\\CSPlayer\\screen\\files\\metro_stat_ScreenShots\\index.html",
      "type": "interactive",
      "name": "metro_stat_ScreenShots.zip"
    },
    {
      "advertisementId": 32045,
      "url": "https://google.com",
      "filePath": "",
      "type": "web_site",
      "name": "https://google.com"
    },
    {
      "advertisementId": 33526,
      "filePath": "C:\\Users\\admin\\AppData\\Local\\CityScreen\\CSPlayer\\screen\\files\\1_Taksi_Uber_Yandex_5siek_Diekabr_600_300.mp4",
      "type": "video",
      "name": "1_Такси_Uber(Yandex)_5сек_Декабрь"
    },
    {
      "advertisementId": 33916,
      "filePath": "C:\\Users\\admin\\AppData\\Local\\CityScreen\\CSPlayer\\screen\\files\\3_Taksi_Uber_Yandex_5siek_Diekabr_600_300.mp4",
      "type": "video",
      "name": "3_Taksi_Uber_Yandex_5siek_Diekabr_.mp4"
    },
    {
      "advertisementId": 33763,
      "filePath": "C:\\Users\\admin\\AppData\\Local\\CityScreen\\CSPlayer\\screen\\files\\VIRA_STROY_Svoboda_5s_1.jpeg",
      "type": "picture",
      "name": "VIRA_STROY_Svoboda_5s"
    }
  ]
}
]

frameId - Id фрейма
items - список доступных объявлений для текущего фрейма
advertisementId - Id объявления
filePath - Путь до файла объявления
type - Тип объявления
name - Название объявления

POST media-metering OTS

{
 period: 30000, // presence validity period in ms
 count: 10, // может не совпадать с числом маков/людей
 macAddresses:
     [ //optional
         {
             class: "WIFI",
             signal: "-89", //optional
             address: "A3FFD0897214"
         },
         {
             class: "BT",
             signal: "-89", //optional
             address: "1234567890AB"
         },
     ],
 people: 
     [ //optional
         {
             gender: "MALE",
             age: 21, //optional
             ageSegment: "20-30",
             uuid: null //optional
         },
         {
             gender: "FEMALE",
             age: 69, //optional
             ageSegment: "60-70",
             uuid: null //optional
         }
     ]
}

POST execute-trigger/<frameId> Триггеры

Тело запроса:

{
  "trigger": "18",
  "type": "interrupt",
  "timeout": 1
}
  • trigger — название триггера объявления, обязательное поле;
  • type — тип триггера, обязательное поле;
  • timeout — время в миллисекундах, обязательное для некоторых типов.

Типы триггеров

тип описание
interrupt показать немедленно
queue-or-interrupt показать в течение n сек, если время до конца объявления меньше времени таймаута. Или показать после таймаута
queue-or-discard показать в течение n сек, если время до конца объявления меньше времени таймаута. Или отменить триггер
queue поставить в очередь следующим

Поле timeout обязательно для типов:

  • queue-or-interrupt
  • queue-or-discard

Ответы сервера

200 OK

{
  "trigger": "18",
  "timeout": 2000
}

timeout — время в мс до момента, когда плеер начнет показ объявления по триггеру.

404 Not found

Если такого фрейма или триггерного события не найдено на плеере.

{
    "error": 404,
    "reason": "Frame %d not found",
    "trigger": "18",
}

400 Bad request

Ошибка в запросе или теле запроса.

{
    "error": 400,
    "reason": "Error message",
    "trigger": "18",
}

412 Precondition Failed

В случае, если невозможно показать объявление по триггеру с типом queue-or-discard (условие по времени не может быть выполнено).

{
    "error": 412,
    "reason": "Error message",
    "trigger": "18",
    "possible-timeout": 7000  
}