Отчеты

« API v1

Получение отчетов по проведенным вебинарам и автовебинарам.

  1. getlist
  2. get
  3. getviewers

 

1. getlist — получить список доступных отчетов

Запрос: GET
Адрес: https://online.bizon365.ru/api/v1/webinars/reports/getlist

Аргументы:

  • skip (по умолчанию = 0)
    пропустить указанное число записей
  • limit (по умолчанию = 20)
    ограничить количество записей. Не может быть больше 100.
  • type=LiveWebinars 
    искать среди живых вебинаров
  • type=AutoWebinars
    искать среди автовебинаров
  • minDate и maxDate (=ISODate)
    ограничить количество записей диапазоном дат. Если указана только одна из дат, ограничение происходит только по одной границе диапазона. Значение даты задается в формате ISO: например, 2021-08-06T10:00:00 (по умолчанию будет UTC+3)

Примеры:

https://online.bizon365.ru/api/v1/webinars/reports/getlist?skip=0&limit=20&type=LiveWebinars
список из 20 записей, в который попадут только живые вебинары

https://online.bizon365.ru/api/v1/webinars/reports/getlist?minDate=2021-08-06T00:00:00 — 
в список попадают все отчеты, начиная с 06.08.21

https://online.bizon365.ru/api/v1/webinars/reports/getlist?maxDate=2021-08-06T00:00:00
в список попадают все отчеты до 06.08.21

Сервер возвращает ответ в виде JSON:  { skip: S, limit: L, count: C, list: [] },
где S — использованное значение поля skip, L — поля limit, C — общее число записей в базе, list — массив объектов.

Каждый объект имеет следующие поля:

  • name  (строка)
    идентификатор комнаты. По этому параметру можно определить нужный webinarID.
  • webinarId  (строка)
    идентификатор вебинара. Этот id используется для получения отчета по вебинару.
  • type (строка)
    тип вебинара: LiveWebinars или AutoWebinars
  • created (строка, дата в формате ISO)
    дата создания записи
  • count1 (число)
    единовременный максимум участников вебинара
  • count2 (число)
    длительность вебинара в минутах

 

2. get — получить конкретный отчет

по webinarId

Запрос: GET
Адрес: https://online.bizon365.ru/api/v1/webinars/reports/get?webinarId=...

Параметры:

  • webinarId
    идентификатор вебинара

Сервер возвращает ответ в виде JSON следующего формата: { room_title: "Название комнаты (вебинара)", report: { объект отчета }, customFields }

Объект отчета состоит из следующих полей:

  • webinarId
    переданное значение идентификатора вебинара
  • group 
    номер аккаунта
  • roomid
    идентификатор комнаты
  • created (строка, дата в ISO формате)
    дата создания отчета
  • playFromRoom
    сценарий из какой комнаты воспроизводился (для автовебинара)
  • report (строка)
    упакованный в строку JSON, состоящий из полей:

    • rating: [ "userId1", "userId2", ... ],
      — отсортированный массив идентификаторов зрителей по убыванию активности
    • usersMeta: { userId1: { ip, city, country_code, email, username, phone, finished, view, viewTill, ... } },
      — карта свойств для каждого участника.

      • ip, city, country — IP-адрес и определенные по нему город и код страны
      • email, username, phone — контакты. Поля присутствуют, если в настройках комнаты включен сбор этих данных.
      • np: true — если в отчете в данных зрителя написано "Неполные данные, возможно повторный визит"
      • url — ссылка входа
      • ticket — ID индивидуального билета
      • finished — флаг, означающий что зритель присутствовал до конца вебинара.
      • view — метка абсолютного времени (в мс), с которого зритель присутствовал на вебинаре;
      • viewTill — метка абсолютного времени (в мс), до которого зритель присутствовал на вебинаре.
      • vi": [{"s":  , "e":  }], где
        vi (vizit intervals) — интервалы визита
        s (start) — начало интервала, относительно начала вебинара, в секундах
        e (end) — конец интервала, относительно начала вебинара, в секундах
      • page — идентификатор страницы регистрации, если зритель пришел с нее
      • chatUserId — ID участника в комнате (чате)
      • sid (student id) — ID ученика, если зрителем был ученик
      • partner — refid партнера
      • ban — забанен ли
      • ignore — добавлен ли в игнор-список
      • referer — откуда пришел (ссылка)
      • mob — если true, участник присутствовал с мобильного устройства. Если mob=false, объект отсутствует
      • banners — массив из объектов, каждый из которых с полями id: 'название баннера', time: метка времени нажатия
      • buttons — массив из объектов, каждый из которых с полями id: 'название кнопки', time: метка времени нажатия
      • vizitForm — открывал ли зритель форму оформления заказа
      • newOrder — номер оформленного заказа или ноль
      • orderDetails — название товара в оформленном заказе
      • utm_source, utm_medium, utm_campaign, utm_term, utm_content — стандартные utm-метки
      • sup — значение Произвольного параметра в URL страницы регистрации (параметр подписчика)
      • p1, p2, p3 — param1, param2, param3 - произвольные параметры для передачи данных
      • c1 — настраиваемое в комнате произвольное поле “Своё поле”
      • cu1 — настраиваемый в комнате свой URL-параметр
      • cv: {"c": "Изумрудный"} — настраиваемые в комнате дополнительные поля:
        • с - город
        • bd - дата рождения
        • ca - возраст ребенка
        • sf - сфера деятельности
        • org - название организации
        • sn_vk - ваш профиль VK
        • sn_fb - ваш профиль facebook
        • sn_in - ваш профиль Instagram
        • m_tg - Telegram
        • m_wa - Whatsapp
        • ap - откуда узнали о вебинаре
        • goal - цель обучения
        • pr - промокод
        • exp - ваши ожидания
    • urls: { "ссылка_входа_1": 20, "ссылка_входа_2": 10 },
      — статистика по ссылкам входа
    • partners: { refid1: 35, refid2: 12 },
      — статистика по партнерам
    • utmStat: { utm_source: { "site1": 10, "site2": 20 }, utm_campaign: { "camp1":1, "camp2":2}, ... }
      — статистика по utm-меткам
  • messages (строка)
    реплики зрителей в формате JSON:
    { userId1: ["привет","это мои сообщения в чате"], userId2:["звук есть"], ... }
  • messagesTS (строка)
    тайминг реплик зрителей в формате JSON:
    { userId1: [ 60, 105 ], userId2: [ 36 ], ... }
    Время, указанное в массивах, — в секундах относительно начала вебинара.

 

3. getviewers — получить список зрителей вебинара (альтернатива для get)

Запрос: GET

Адрес: https://online.bizon365.ru/api/v1/webinars/reports/getviewers?webinarId=...&skip=0&limit=100

Параметры:

  • webinarId
    идентификатор вебинара. Образец: XXXX%3Atest*2017-05-24T02%3A19%3A00
    Формируется как соединение строк ID комнаты, символ "звездочка" и дата сеанса в формате ISO. Получится, например "XXXX:test*2017-05-24T02:19:00". После чего необходимо экранировать эту строку по аналогии с encodeURIComponent в JS.
  • skip
    пропустить указанное количество записей. По умолчанию, skip = 0.
  • limit
    ограничить выборку. По умолчанию, limit = 1000. Больше 1000 указывать нельзя.

Сервер возвращает ответ в виде JSON следующего формата:

{
viewers: [ список зрителей ],
errors: [список сообщений об ошибках, если возникли],
total: общее кол-во зрителей,
skip:  использованное значение skip,
limit: использованное значение limit  
loaded: количество выбранных записей
}

Поле viewers — это массив, состоящий из объектов следующего формата:

  • view — метка абсолютного времени (в мс), с которого зритель присутствовал на вебинаре
  • viewTill — метка абсолютного времени (в мс), до которого зритель присутствовал на вебинаре
  • vi": [{"s":  , "e":  }], где
    vi (vizit intervals) — интервалы визита
    s (start) — начало интервала, относительно начала вебинара, в секундах
    e (end) — конец интервала, относительно начала вебинара, в секундах
  • ip, city, country — IP-адрес и определенные по нему город и код страны
  • email, username, phone — контакты. Поля присутствуют, если в настройках комнаты включен сбор этих данных.
  • finished  — флаг, означающий что зритель присутствовал до конца вебинара.
  • page — идентификатор страницы регистрации, если зритель пришел с нее
  • partner — refid партнера
  • chatUserId — ID участника в комнате (чате)
  • ban — забанен ли
  • ignore — добавлен ли в игнор-список
  • referer — откуда пришел (ссылка)
  • mob — если true, участник присутствовал с мобильного устройства. Если mob=false, объект отсутствует
  • banners — массив из объектов, каждый из которых с полями id: 'название баннера', time: метка времени нажатия
  • buttons — массив из объектов, каждый из которых с полями id: 'название кнопки', time: метка времени нажатия
  • vizitForm — открывал ли зритель форму оформления заказа
  • newOrder — номер оформленного заказа или ноль
  • orderDetails — название товара в оформленном заказе
  • utm_source, utm_medium, utm_campaign, utm_term, utm_content — стандартные utm-метки
  • p1, p2, p3 — param1, param2, param3 - произвольные параметры для передачи данных
  • uid — идентификатор подписчика (присутствует, если удалось сопоставить зрителя с подписчиком)
  • sid — student id — id ученика, если зрителем был ученик
  • sup — значение Произвольного параметра в URL страницы регистрации (параметр подписчика)

Пример:

{

  • view1495581544226,
  • vi": [{ "s": 20, "e": 1160 }]
  • phone"+79998887766",
  • email"guest@yandex.ru",
  • username"Гость",
  • chatUserId"r8sJlrzbW",
  • roomid"1002:test2",
  • ip"127.0.0.1",
  • mobtrue,
  • webinarId"1000:test*2017-05-24T02:19:00",
  • created"2017-05-23T23:19:08.881Z",
  • playVideo1,
  • finishedtrue,
  • buttons: [{"time": 1648791853424,"id": "Кнопка 1"},
    {"time": 1648791867540,"id": "Кнопка 2"}],
  • banners": [{"time": 1648791794647,"id": "Баннер 1"},
    {"time": 1648791802361,"id": "Баннер 2"},
    {"time": 1648791845446,"id": "Имя не задано"}], (Имя не указано в настройках баннера)
  • newOrder100432,
  • orderDetails"Название товара"

},