Rest API

Введение

Вы можете получать статистические данные, собранные с ваших устройств, с помощью запроса REST API на наш сервер. Seemetrix REST API – это функция, унаследованная от нашего LibAnalytics REST API.

Все API методы, размещенные по адресам https://analytics.3divi.ru/api/*, и запросы к ним идентифицируются с помощью секретного ключа user_key. Зайдите на веб-сайт https://my.seemetrix.net/profile/ (раздел “REST API”), чтобы узнать user_id и user_key для своей учетной записи.

Вставьте user_key в ссылку для прохождения аутентификации:

https://analytics.3divi.ru/api/<path>?key=user_key_key

Вы авторизированы для чтения информации с ваших устройств.

В случае ввода неправильного ключа вы получите ошибку 401.

В случае, если вы неправильно указали user_id или device_id в запросах, вы получите ошибку 403.

Warning

Имейте в виду, что все методы API определены без префикса хоста и «/ api».

Обязательно указывайте косую черту (“/”), иначе вы получите ошибку 404.

Методы API работают только по https протоколу.

Управление устройствами

Получить полный список устройств, принадлежащих пользователю:

GET /user/(int:user_id)/devices/

Аргументы:

  • user_id (int) – идентификатор пользователя.

Формат ответа:

  • online_total (int) – количество устройств онлайн;
  • online (list[Device]) – список устройств онлайн;
  • offline_total (int) – количество устройств оффлайн;
  • offline (list[Device]) – список устройств оффлайн;
  • frozen_total (int) – количество замороженных устройств;
  • frozen (list[Device]) – список замороженных устройств.

Пример ответа:

GET https://analytics.3divi.ru/api/user/632/devices/?key=d482d4c3c4bd4dd796abccf726ae126
{
  "frozen": [
    {
      "acl": [                                          (список идентификаторов пользователей, имеющих доступ к устройству)
        436,
        632
      ],
      "created": "Fri, 08 Sep 2017 04:35:12 GMT",
      "d": 3035,                                        (идентификатор устройства)
      "f": 1,
      "ip": "87.249.208.18",
      "k": "9909e1d0933740f0811913647e3662e8",          (ключ устройства)
      "modified": "Fri, 15 Sep 2017 07:36:38 GMT",
      "n": "Device #1",                                 (имя устройства)
      "o": 0,
      "or": 0,
      "s": "bc862d09e7cb682c0d7e923d8c751d16",
      "sid": 2
    }
  ],
  "frozen_total": 1,
  "offline": [
    {
      "acl": [
        632,
        436
      ],
      "created": "Thu, 27 Jul 2017 04:29:20 GMT",
      "d": 2899,
      "f": 0,
      "ip": "-",
      "k": "a4424dad66f144cb818823f90a40f35b",
      "modified": "Thu, 27 Jul 2017 04:29:20 GMT",
      "n": "Device #5",
      "o": 0,
      "or": 0,
      "sid": 0
    }
  ],
  "offline_total": 1,
  "online": [
    {
      "acl": [
        436,
        632
      ],
      "created": "Thu, 07 Sep 2017 10:40:21 GMT",
      "d": 3024,
      "f": 0,
      "ip": "87.249.208.18",
      "k": "23f69c44cd964dcc9caac2d08217705d",
      "modified": "Fri, 15 Sep 2017 07:24:12 GMT",
      "n": "Device #3",
      "o": 1,
      "or": 0,
      "s": "ca514a44ddc4a77afff71541564fd958",
      "sid": 2
    }
  ],
  "online_total": 1
}

Статистика с устройств

Получить статистику с конкретного устройства:

GET /statistics/device/(int:device_id)/

Пример ответа:

GET https://analytics.3divi.ru/api/statistics/device/3024/?key=d482d4c3c4bd4dd796abccf726ae1266&tzo=1&last_week
{
  "begin": "2017/09/08 11:00:00",               (начало временного диапазона в запросе)
  "begin_iso": "2017-09-08T11:00:00+01:00",     (начало временного диапазона в формате ISO с указанием часового пояса)
  "end": "2017/09/15 11:00:00",                 (конец временного диапазона даты в запросе)
  "end_iso": "2017-09-15T11:00:00+01:00",       (конец временного диапазона в формате ISO с указанием часового пояса)
  "max_date": "2017/09/15 10:00:00",            (максимальная дата и время доступных данных)
  "min_date": "2017/09/15 08:00:00",            (максимальная дата и время доступных данных)
  "objects": [                                  (массив, упорядоченный по дате)
    {
      "i": {                                    (идентификатор временного интервала)
        "d": 15,                                (день месяца от 1 до 31)
        "h": 8,                                 (час от 0 до 23)
        "m": 9,                                 (месяц от 1 до 12)
        "y": 2017                               (год)
      },
      "t": 7                                    (общий счетчик просмотров)
    },
    {
      "i": {
        "d": 15,
        "h": 9,
        "m": 9,
        "y": 2017
      },
      "t": 0
    },
    {
      "i": {
        "d": 15,
        "h": 10,
        "m": 9,
        "y": 2017
      },
      "t": 1
    }
  ],
  "total": 3,                                   (общее количество объектов в массиве «объекты»)
  "total_counters": {
    "average_duration": 3.29,                   (среднее время просмотра за период)
    "female": 8,                                (количество женщин за период)
    "kid": 0,                                   (количество детей за период)
    "male": 0,                                  (количество мужчин за период)
    "middle": 7,                                (количество молодых взрослых за период)
    "middle2": 1,                               (количество взрослых за период)
    "movies_num": 0,                            (количество просмотренных медиароликов за период)
    "old": 0,                                   (количество пожилых людей за период)
    "total": 8,                                 (количество всех просмотров за период)
    "undefined_age": 0,                         (количество просмотров, где не определен возраст)
    "undefined_gender": 0                       (количество просмотров, где не определен пол)
  }
}

Получить статистику со всех устройств:

GET /statistics/user/(int:user_id)/

Пример ответа:

GET https://analytics.3divi.ru/api/statistics/user/632/?key=d482d4c3c4bd4dd796abccf726ae1266&b=2017/09/12%2012:00:00&e=2017/09/14%2012:00:00&tzo=0
{
  "begin": "2017/09/12 12:00:00",               (начало временного диапазона в запросе)
  "begin_iso": "2017-09-12T12:00:00+00:00",     (начало временного диапазона в формате ISO с указанием часового пояса)
  "end": "2017/09/14 12:00:00",                 (конец временного диапазона даты в запросе)
  "end_iso": "2017-09-14T12:00:00+00:00",       (конец временного диапазона в формате ISO с указанием часового пояса)
  "max_date": "2017/09/15 09:00:00",            (максимальная дата и время доступных данных)
  "min_date": "2017/09/08 04:00:00",            (минимальная дата и время доступных данных)
  "objects": [                                  (массив, упорядоченный по дате)
    {
      "i": {                                    (id временного диапазона)
        "d": 12,                                (день месяца от 1 до 31)
        "h": 12,                                (час от 0 до 23)
        "m": 9,                                 (месяц от 1 до 12)
        "y": 2017                               (год)
      },
      "t": 3                                    (общий счетчик просмотров)
    },
    {
      "i": {
        "d": 12,
        "h": 16,
        "m": 9,
        "y": 2017
      },
      "t": 6
    },
    {
      "i": {
        "d": 12,
        "h": 17,
        "m": 9,
        "y": 2017
      },
      "t": 6
    },
    {
      "i": {
        "d": 13,
        "h": 2,
        "m": 9,
        "y": 2017
      },
      "t": 7
    },
    {
      "i": {
        "d": 13,
        "h": 3,
        "m": 9,
        "y": 2017
      },
      "t": 12
    },
    {
      "i": {
        "d": 13,
        "h": 4,
        "m": 9,
        "y": 2017
      },
      "t": 15
    },
    {
      "i": {
        "d": 13,
        "h": 5,
        "m": 9,
        "y": 2017
      },
      "t": 18
    },
    {
      "i": {
        "d": 13,
        "h": 6,
        "m": 9,
        "y": 2017
      },
      "t": 12
    }
  ],
  "total": 8,                                   (общее количество объектов в массиве «объекты»)
  "total_counters": {
    "average_duration": 7.81,                   (среднее время просмотра за период)
    "female": 68,                               (количество женщин за период)
    "kid": 0,                                   (количество детей за период)
    "male": 11,                                 (количество мужчин за период)
    "middle": 57,                               (количество молодых взрослых за период)
    "middle2": 22,                              (количество взрослых за период)
    "movies_num": 0,                            (количество просмотренных медиароликов за период)
    "old": 0,                                   (количество пожилых людей за период)
    "total": 79,                                (количество всех просмотров за период)
    "undefined_age": 0,                         (количество просмотров, где не определен возраст)
    "undefined_gender": 0                       (количество просмотров, где не определен пол)
  }
}

Обязательные аргументы запроса:

  • b <string DateTime “YYYY/MM/DD HH:mm:ss”> - начало временного диапазона запроса данных (в местном часовом поясе) ГГГГ/ММ/ДД ЧЧ:мм:сс (может быть заменен аргументом last_week);
  • e <string DateTime “YYYY/MM/DD HH:mm:ss”> - конец временного диапазона запроса данных (в местном часовом поясе), ГГГГ/ММ/ДД ЧЧ:мм:сс (может быть заменен аргументом last_week);
  • tzo <int> - смещение по часовому поясу. Это важный параметр, поскольку все данные по умолчанию хранятся в GMT 0; часовой пояс устанавливается в запросах.

Дополнительные аргументы запроса:

  • year – если указан данный параметр, то статистические данные в ответе будут упорядочены по годам;
  • month – если указан данный параметр, то статистические данные в ответе будут упорядочены по месяцам (1-12). Если указан только этот параметр, то запрашиваемая статистика в ответе (если таковая имеется) будет распределена по месяцам года;
  • day – если указан данный параметр, то статистические данные в ответе будут упорядочены по дням (1-31). Если указан только этот параметр, то запрашиваемая статистика в ответе (если таковая имеется) будет распределена по дням недели (1-7);
  • hour – если указан данный параметр, то статистические данные в ответе будут упорядочены по часам (0-23). Если указан только этот параметр, то запрашиваемая статистика в ответе (если таковая имеется) будет распределена по часам суток (24);
  • last_week – если указан данный параметр, то будет возвращена статистика за последнюю неделю;
  • sex – если указан данный параметр, то в ответе будет выводиться упорядоченная статистика просмотров каждой гендерной группы (fl, ml, us);
  • age – если указан данный параметр, то в ответе будет выводиться упорядоченная статистика просмотров каждой возрастной группы (k, m, m2, o, u);
  • movies – если указан данный параметр, то в ответе будет выводиться статистика просмотров медиароликов (v, va);
  • intervals – если указан данный параметр, то в ответ будет включена продолжительность (ia) просмотров.

Унифицированный запрос статистики с устройств

Формат запроса:

GET /v2/statistics/p1/p2/p3/p4/p5/p6

где pN - может быть devices/movies/dates/ages/genders/emotions;

В зависимости от выбранной структуры унифицированного запроса в ответе вернется статистика просмотров, сгруппированная по одному или нескольким параметрам: дата/устройства/медиа/пол/возраст/эмоции.

Обязательные аргументы запроса:

  • b <string DateTime “YYYY/MM/DD HH:mm:ss”> - начало временного диапазона запроса данных (в местном часовом поясе) ГГГГ/ММ/ДД ЧЧ:мм:сс (может быть заменен аргументом last_week);
  • e <string DateTime “YYYY/MM/DD HH:mm:ss”> - конец временного диапазона запроса данных (в местном часовом поясе), ГГГГ/ММ/ДД ЧЧ:мм:сс (может быть заменен аргументом last_week);
  • tzo <int> - смещение по часовому поясу. Это важный параметр, поскольку все данные по умолчанию хранятся в GMT 0; часовой пояс устанавливается в запросах.

Дополнительные аргументы запроса:

  • d <int> - идентификатор устройства;

  • dt_format <string date format ”YYYY-MM-DD HH”> - формат группировки по дате/времени. Влияет на тип “dates”.

    Поддерживаемые форматы:

    • “YYYY-MM-DD HH” - календарные часы;
    • “YYYY-MM-DD” - календарный день (формат по умолчанию);
    • ”YYYY-MM” - по месяцам годов;
    • ”YYYY” - по годам;
    • “MM” - по месяцам года (1-12);
    • “DD” - по дням недели (1-7);
    • “HH” - по часам (24);
  • to_object <0/1> - возвращает массив данных, если to_object = 0, или составной объект с набором ключей, соответствующих именам объектов в массиве, если to_object = 1;

Пример ответа при использовании аргумента to_object = 0:

GET https://analytics.3divi.ru/api/v2/statistics/user/371/devices/?key=8b00aa55853f403186b5678fde019750&tzo=0&dt_format=MM&b=2016/12/01%2000:00:00&e=2017/06/01%2000:00:00&d=1842&to_object=0
{
  "begin": "2016/12/01 00:00:00",
  "data": {
    "n": "root",
    "o": [
      {
        "n": "1842",
        "o": [],
        "ots": 64.0,
        "otsd": 1360572,
        "t": "device",
        "v": 64.0,
        "vd": 1360572
      }
    ],
    "ots": 64.0,
    "otsd": 1360572,
    "t": "root",
    "v": 64.0,
    "vd": 1360572
  },
  "end": "2017/06/01 00:00:00",
  "levels": [
    "devices"
  ],
  "obj_in_page": 10,
  "ok": 1,
  "page": 0,
  "pages_total": 1,
  "path": "devices",
  "user_id": 371
}

Пример ответа при использовании аргумента to_object = 1:

GET https://analytics.3divi.ru/api/v2/statistics/user/371/devices/?key=8b00aa55853f403186b5678fde019750&tzo=0&dt_format=MM&b=2016/12/01%2000:00:00&e=2017/06/01%2000:00:00&d=1842&to_object=1
{
  "begin": "2016/12/01 00:00:00",
  "data": {
    "n": "root",
    "o": {
      "1842": {
        "n": "1842",
        "o": {},
        "ots": 64.0,
        "otsd": 1360572,
        "t": "device",
        "v": 64.0,
        "vd": 1360572
      }
    },
    "ots": 64.0,
    "otsd": 1360572,
    "t": "root",
    "v": 64.0,
    "vd": 1360572
  },
  "end": "2017/06/01 00:00:00",
  "levels": [
    "devices"
  ],
  "obj_in_page": 10,
  "ok": 1,
  "page": 0,
  "pages_total": 1,
  "path": "devices",
  "user_id": 371
}
  • last_week <1> - может быть альтернативой для обязательных аргументов b & e; если данный аргумент установлен, то диапазон поиска принимается за текущую неделю;
  • page <int:0-...> - номер текущей страницы при пагинации данных, применимо к типам “devices” и “movies” в корневых уровнях (индексация с нуля, по умолчанию = 0);
  • obj_in_page <int:1-...> - количество объектов, включаемых в одну страницу данных при пагинации, применимо к типам “devices” и “movies” в корневых уровнях (по умолчанию = 10);

Note

  • Зацикливание запрещено (указанный единожды ресурс не может запрашиваться далее в пути запроса).
  • Поля ots и otsd могут быть только у объектов типа movie, device и date, стоящих в начале иерархии объектов результата. Если в результирующем дереве объекты типов device, movie, date являются дочерними объектами типов age, gender, emotion, то они теряют возможность отобразить данные об ots, otsd т.к. на предыдущем уровне была произведена конкретная идентификация смотрящих как вьюверов (все ots-ы были отфильтрованы).
  • В объектах с нулевыми значениями v (суммарное кол-во просмотров) дальнейшее разложение иерархии прекращается, т.к. все последующие объекты также будут нулевыми.
  • Максимальный временной диапазон запроса - 6 месяцев.

Структура запроса:

{
begin <string>: начало временного диапазона запроса;
data <list of object>: список/объект (в зависимости от установленного в запросе аргумента to_object)
        {
                n <string>: идентификатор/имя объекта (“name”),
                o <list/object>: список подобъектов в иерархии (“objects”),
                t <string> [date/device/movie/gender/age/emotion/]: тип ресурса (“type”),
                v <int>: счетчик просмотров (“views”),
                vd <double>: суммарная продолжительность просмотров в мс. (“views duration”),
                [ots <int>: счетчик OTS; только для типов date, device, movie],
                [otsd <double>: суммарное время OTS в мс.; только для типов date, device, movie].
        }

end <string>: конец временного диапазона запроса;
dt_format <string>: формат группировки по датам (уровень “date”),
levels <list of string>: список уровней запроса;
ok <int>: признак успешного результата, если принимает значение 1;
path <string>: уровни в формате пути запроса;
user_id <int>: идентификатор пользователя;
page <int>: номер “страницы” данных, применительно к типам “devices”, “movies” в корневом уровне (по умолчанию = 0),
obj_in_page <int>: количество объектов данных на одну страницу при пагинации (по умолчанию = 10),
pages_total <int>: доступное количество страниц при пагинации,
}

Формат ответа:

/emotions/ - возвращает статистику просмотров, сгруппированную по эмоциям: злой/счастливый/удивленный/нейтральный.

"o": [
   {
     "n": "angry",
     "o": [],
     "t": "emotion",
     "v": 0,
     "vd": 0
   },
   {
     "n": "happy",
     "o": [],
     "t": "emotion",
     "v": 0,
     "vd": 0
   },
   {
     "n": "neutral",
     "o": [],
     "t": "emotion",
     "v": 131,
     "vd": 1722237
   },
   {
     "n": "surprise",
     "o": [],
     "t": "emotion",
     "v": 0,
     "vd": 5250
   },
   {
     "n": "undefined",
     "o": [],
     "t": "emotion",
     "v": 2,
     "vd": 8635
   }
 ]

/ages/ - возвращает статистику просмотров, сгруппированную по возрастным группам: old/adult/young/kid/undefined.

"o": [
   {
     "n": "adult",
     "o": [],
     "t": "age",
     "v": 24,
     "vd": 576918
   },
   {
     "n": "kid",
     "o": [],
     "t": "age",
     "v": 0,
     "vd": 0
   },
   {
     "n": "old",
     "o": [],
     "t": "age",
     "v": 0,
     "vd": 0
   },
   {
     "n": "undefined",
     "o": [],
     "t": "age",
     "v": 0,
     "vd": 0
   },
   {
     "n": "young",
     "o": [],
     "t": "age",
     "v": 111,
     "vd": 1164209
   }
 ]

/genders/ - возвращает статистику просмотров, сгруппированную по гендерным группам: male/female/undefined.

"o": [
   {
     "n": "female",
     "o": [],
     "t": "gender",
     "v": 134,
     "vd": 1734514
   },
   {
     "n": "male",
     "o": [],
     "t": "gender",
     "v": 1,
     "vd": 6613
   },
   {
     "n": "undefined",
     "o": [],
     "t": "gender",
     "v": 0,
     "vd": 0
   }
 ],

/devices/ - возвращает статистику просмотров, сгруппированную по устройствам.

"o": [
   {
     "n": "1888",
     "o": [],
     "ots": 5,
     "otsd": 33959,
     "t": "device",
     "v": 5,
     "vd": 33959
   },
   {
     "n": "1891",
     "o": [],
     "ots": 2,
     "otsd": 15155,
     "t": "device",
     "v": 2,
     "vd": 15155
   },
   {
     "n": "1892",
     "o": [],
     "ots": 1,
     "otsd": 20922,
     "t": "device",
     "v": 1,
     "vd": 20922
   },
   {
     "n": "1893",
     "o": [],
     "ots": 19,
     "otsd": 163903,
     "t": "device",
     "v": 19,
     "vd": 163903
   },
 ]

/movies/ - возвращает статистику просмотров, сгруппированную по каждому медиафайлу.

"o": [
   {
     "n": "1",
     "o": [],
     "ots": 5,
     "otsd": 33959,
     "t": "movie",
     "v": 5,
     "vd": 33959
   },
   {
     "n": "2",
     "o": [],
     "ots": 2,
     "otsd": 15155,
     "t": "movie",
     "v": 2,
     "vd": 15155
   },
   {
     "n": "3",
     "o": [],
     "ots": 1,
     "otsd": 20922,
     "t": "movie",
     "v": 1,
     "vd": 20922
   },
   {
     "n": "4",
     "o": [],
     "ots": 19,
     "otsd": 163903,
     "t": "movie",
     "v": 19,
     "vd": 163903
   },
 ]

/dates/ - возвращает статистику просмотров, сгруппированную по датам.

Note

Должен сопровождаться аргументом запроса format, иначе будет принят формат по умолчанию (“YYYY-MM-DD”).

"o": [
   {
     "n": "2017-06-02",
     "o": [],
     "ots": 5,
     "otsd": 33959,
     "t": "date",
     "v": 5,
     "vd": 33959
   },
   {
     "n": "2017-06-06",
     "o": [],
     "ots": 22,
     "otsd": 199980,
     "t": "date",
     "v": 22,
     "vd": 199980
   },
   {
     "n": "2017-06-07",
     "o": [],
     "ots": 111,
     "otsd": 1516682,
     "t": "date",
     "v": 109,
     "vd": 1508488
   }
 ]

Полный пример ответа:

GET https://analytics.3divi.ru/api/v2/statistics/user/371/devices/dates/emotions/?key=8b00aa55853f403186b5678fde019750&tzo=0&dt_format=MM&b=2016/12/01%2000:00:00&e=2017/06/01%2000:00:00&d=1842
{
  "begin": "2016/12/01 00:00:00",
  "data": {
    "n": "root",
    "o": [
      {
        "n": "1842",
        "o": [
          {
            "n": "05",
            "o": [
              {
                "n": "angry",
                "o": [],
                "t": "emotion",
                "v": 0,
                "vd": 0
              },
              {
                "n": "happy",
                "o": [],
                "t": "emotion",
                "v": 0,
                "vd": 0
              },
              {
                "n": "neutral",
                "o": [],
                "t": "emotion",
                "v": 63,
                "vd": 1359042
              },
              {
                "n": "surprise",
                "o": [],
                "t": "emotion",
                "v": 0,
                "vd": 0
              },
              {
                "n": "undefined",
                "o": [],
                "t": "emotion",
                "v": 0,
                "vd": 0
              }
            ],
            "ots": 63,
            "otsd": 1359042,
            "t": "date",
            "v": 63,
            "vd": 1359042
          }
        ],
        "ots": 63,
        "otsd": 1359042,
        "t": "device",
        "v": 63,
        "vd": 1359042
      }
    ],
    "ots": 63,
    "otsd": 1359042,
    "t": "root",
    "v": 63,
    "vd": 1359042
  },
  "dt_format": "MM",
  "end": "2017/06/01 00:00:00",
  "levels": [
    "devices",
    "dates",
    "emotions"
  ],
  "obj_in_page": 10,
  "ok": 1,
  "page": 0,
  "pages_total": 1,
  "path": "devices/dates/emotions",
  "user_id": 371
}

Сырые данные

Получить статистику о просмотрах ролика (если указан в запросе) для устройства (если указано в запросе):

GET /statistics/user/(int: user_id)/raw/data/

Аргументы запроса:

  • device_id – просмотры только для устройства с данным id;
  • movie_id – просмотры только для ролика с данным id;
  • b – начало временного диапазона запроса данных (в местном часовом поясе), ГГГГ/ММ/ДД ЧЧ:мм:сс;
  • e – конец временного диапазона запроса данных (в местном часовом поясе), ГГГГ/ММ/ДД ЧЧ:мм:сс;
  • tzo – часовой пояс.

Пример ответа:

GET https://analytics.3divi.ru/api/statistics/user/864/raw/data/?key=42208b8df38b4e97878ce00wa765bc38&4zo=0&last_week
{
  "objects": [

    { //Сессия: временной промежуток с момента детекции лица до момента, когда лицо было потеряно

      "a": 1, //возраст (0 - ребенок, 1 - молодой, 2 - взрослый, 3 - пожилой)

      /* Блок с интервалами по вниманию (attention). Каждый интервал представляет собой пару, где "a" означает индикатор внимания (1 - человек смотрит в камеру, 0 - не смотрит), а "d" - продолжительность просмотра. */
      "at": [
        {
          "a": 1, //индикатор того, что человек смотрел в камеру
          "d": 19334 //продолжительность интервала
        },
        {
          "a": 0, //индикатор того, что человек не смотрел в камеру
          "d": 1044 //продолжительность интервала
        },
        {
          "a": 1, //индикатор того, что человек смотрел в камеру
          "d": 14853 //продолжительность интервала
        }
      ],
      "b": "2019-07-01T11:16:07.052000",  //начало сессии
      "d": 5315,                          //идентификатор устройства
      "e": "2019-07-01T11:16:42.283000", //конец сессии
      /* Блок с интервалами по эмоциям, "d" - продолжительность интервала, "e" - эмоция: -1 - не определена, 0 - нейтральный, 1 - счастливый, 2 - злой, 3 - удивленный */
      "em": [
        {
          "d": 1458,
          "e": 3
        },
        {
          "d": 3948,
          "e": 1
        },
        {
          "d": 1221,
          "e": 0
        },
        {
          "d": 1278,
          "e": -1
        },
        {
          "d": 8748,
          "e": 0
        },
        {
          "d": 1328,
          "e": 3
        },
        {
          "d": 2894,
          "e": 0
        },
        {
          "d": 1246,
          "e": 3
        },
        {
          "d": 6661,
          "e": 0
        },
        {
          "d": 2020,
          "e": -1
        },
        {
          "d": 4429,
          "e": 0
        }
      ],
      "i": 35231, //общая продолжительность сессии (результат сложения всех значений "d" из блока "at" или всех значений "d" из блока "em")
      "o": 1331, //номер сессии за все время на данном устройстве
      "s": 0, //пол (0 - женский, 1 - мужской)
      //
      /* Блок с интервалами по роликам, которые проигрываются в рамках сессии */
      "v": [
        {
          "d": 35231, //продолжительность интервала, в течение которого проигрывался ролик
          "i": 8482, //идентификатор ролика
          "s": 0 //начало интервала относительно начала сессии
        },
        {
          "d": 35231, //продолжительность интервала, в течение которого проигрывался ролик
          "i": 9457, //идентификатор ролика
          "s": 0 //начало интервала относительно начала сессии
        }
      ]
    }
  ]
}

Глобальные счетчики

Получить аккумулированные значения счетчиков для панели управления:

GET /user/(int:user_id)/counters
GET https://analytics.3divi.ru/api/user/632/counters?key=d482d4c3c4bd4dd796abccf726ae1266
{
  "avg_duration": 6.38,         (средняя продолжительность просмотров (для всех устройств))
  "dev_num": 3,                 (количество зарегистрированных устройств)
  "movies_num": 0,              (количество зарегистрированных медиа роликов)
  "online_device_num": 1,       (количество устройств онлайн)
  "usr_cur_day": 8,             (количество просмотров за текущий день)
  "usr_cur_hour": 1,            (количество просмотров за текущий час)
  "usr_cur_month": 324,         (количество просмотров за текущий месяц)
  "usr_num": 324                (общее количество просмотров)
}

Note

Если заданы параметры sex и age, то данные будут сгруппированы по полу и возрасту (например: fk – дети женского пола или mo – пожилые мужчины).

Параметры year, month, day, hour упорядочивают запрошенную статистику по времени. Комбинируя параметры year, month, day, hour можно упорядочить соответствующую структуру ответов. Если не указан ни один из параметров year, month, day, hour, то они задаются по умолчанию.

Пустые группы, в которых нет данных, не включаются в ответ. Например, если статистика за запрошенный период с группировкой “по дням недели” не имеет просмотров по четвергам, то ответ будет иметь 6 групп в соответствии с днями недели: 1, 2, 3, 5, 6, 7. День № 4 (четверг) не будет включен в ответ.