Создание рекламодателя:

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 будет в ответе


Загрузка ролика

  1. Загрузка файла
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 будет в ответе

  1. Создание контента с файлом
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 рекламодателя
}
  1. Удаление контента из библиотеки рекламодателя

Контент не будет удалён, если он используется в активных рекламных кампаниях.

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