Создание рекламодателя:
curl 'http://visiobox.cloud/v3/odvertisers/' -H 'Authorization: OAuth <token>' -H 'Content-Type: application/json' --data-binary '{"name":"Test","description":"","logo":null}'
{
"name":"Test",
"description":"",
"logo":null
}
id
будет в ответе
Загрузка ролика
- Загрузка файла
curl 'http://visiobox.cloud/v3/content/files' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Authorization: OAuth <token>' -H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundary8HmpcBj8J6y71Chi' --data-binary $'------WebKitFormBoundary8HmpcBj8J6y71Chi\r\nContent-Disposition: form-data; name="file"; filename="02_01_NY_\u0424\u0440\u0435\u0448\u0438_\u0438_\u043f\u0438\u0432\u043e_16_12_08_1.mp4"\r\nContent-Type: video/mp4\r\n\r\n\r\n------WebKitFormBoundary8HmpcBj8J6y71Chi--\r\n'
Поле файла file
id
будет в ответе
- Создание контента с файлом
curl 'http://visiobox.cloud/v3/content/items/' -H 'Authorization: OAuth <token>' -H 'Content-Type: application/json' --data-binary $'{"name":"02_01_NY_\u0424\u0440\u0435\u0448\u0438_\u0438_\u043f\u0438\u0432\u043e_16_12_08_1.mp4","description":"","type":"video","data":{"orientation":"landscape","default_play_audio":true},"content_file_id":13,"tags":[],"advertiser_id":5}'
{
"name":"02_01_NY_\u0424\u0440\u0435\u0448\u0438_\u0438_\u043f\u0438\u0432\u043e_16_12_08_1.mp4",
"description":"",
"type":"video",
"data":{
"orientation":"landscape", // "portrait" если это контент портретной ориентации
"default_play_audio":true
},
"content_file_id":13, // ID залитого файоа
"tags":[],
"advertiser_id":5 // ID рекламодателя
}
- Удаление контента из библиотеки рекламодателя
Контент не будет удалён, если он используется в активных рекламных кампаниях.
curl 'http://visiobox.cloud/v3/content/items/1' -H 'Authorization: OAuth <token>' -X DELETE
Создание кампании
curl 'http://visiobox.cloud/v3/od/campaigns/' -H 'Authorization: OAuth <token>' -H 'Content-Type: application/json' --data-binary $'{"type":"normal","name":"\u0422\u0435\u0441\u0442","description":"","advertiser":1,"requirements":{"orientation":"landscape"},"start":"2019-10-16","end":"2019-10-17","start_time":null,"end_time":null,"algorithm":"each_n","layout":null,"programmatic_platforms":[],"interval":60,"max_interval":69,"order":0,"playback_items":[{"data":{"orientation":"landscape"},"content_items":[{"content_item_data":{"play_audio":true},"id":2,"playback_item_data":{}}]}],"players":[{"id":1,"skip_days":[]}],"expand":false}'
{
"type":"normal", // "pipeline" для цикл-в-цикле
"name":"\u0422\u0435\u0441\u0442",
"description":"",
"advertiser":1, // ID рекламодателя. Все ролики должны быть его.
"requirements":{"orientation":"landscape"}, // Или portrait. Все ролики и устройства должны соответствовать
"start":"2019-10-16",
"end":"2019-10-17",
"start_time":null,
"end_time":null,
"algorithm":"each_n",
"layout":null,
"programmatic_platforms":[],
"interval":60, // Раз в сколько секунд играть кампанию
"max_interval":69, // round(interval * 1.15)
"order":0,
"playback_items":[
// По элементу для каждого ролика в кампании
{
"data":{"orientation":"landscape"},
"content_items":[{
"content_item_data":{"play_audio":true},
"id":2, // content item ID (не файла!)
"playback_item_data":{}
}]
}
],
"players":[
// По элементу для каждого плеера
{"id":1,"skip_days":[]}
],
"expand":false
}
Остановка кампании
curl 'http://visiobox.cloud/v3/od/campaigns/3' -X PATCH -H 'Authorization: OAuth <token>' -H 'Content-Type: application/json' --data-binary '{"terminated":true}'
Удаление кампании
curl 'http://visiobox.cloud/v3/od/campaigns/3' -X DELETE -H 'Authorization: OAuth <token>'
Запрос планограммы
Запрос планограммы делается перед созданием кампании чтобы убедиться что есть место Или после чтобы понять почему не получилось
curl 'http://visiobox.cloud/v3/od/campaign_preview/players/?limit=50&requirements=%7B%22orientation%22%3A%22landscape%22%7D&start=2019-10-16&end=2019-10-16&type=normal&player_type=single&algorithm=each_n&duration=15&interval=60&max_interval=69&allow_unavailable=1&tags_op=or' -H 'Authorization: OAuth <token>'
Ответ
{
"objects": [
// Для каждого плеера
{
// Для каждого дня
"calendar": [
{
"share_left": 0.75,
"date": "2019-10-16",
"available": true // Доступен или нет
}
],
"player": {
"id": 2,
// Ещё всякие поля
}
}
],
"meta": {"total": 2, "limit": 50, "offset": 0}
}
Запрос списка плееров
Все плееры
http://visiobox.cloud/v3/players
Только не активированные
http://visiobox.cloud/v3/players?activated=0
Только онлайн
http://visiobox.cloud/v3/players?online=1
Последний раз онлайн до указанного времени (UTC)
http://visiobox.cloud/v3/players?last_online_at__lt=2019-10-28T13:00:00