Получение отчетов по проведенным вебинарам и автовебинарам.
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-меткам
- rating: [ "userId1", "userId2", ... ],
- 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 страницы регистрации (параметр подписчика)
Пример:
{
-
view: 1495581544226,
- vi": [{ "s": 20, "e": 1160 }]
-
phone: "+79998887766",
-
email: "guest@yandex.ru",
-
username: "Гость",
-
chatUserId: "r8sJlrzbW",
-
roomid: "1002:test2",
-
ip: "127.0.0.1",
-
mob: true,
-
webinarId: "1000:test*2017-05-24T02:19:00",
-
created: "2017-05-23T23:19:08.881Z",
-
playVideo: 1,
-
finished: true,
- buttons: [{"time": 1648791853424,"id": "Кнопка 1"},
{"time": 1648791867540,"id": "Кнопка 2"}], - banners": [{"time": 1648791794647,"id": "Баннер 1"},
{"time": 1648791802361,"id": "Баннер 2"},
{"time": 1648791845446,"id": "Имя не задано"}], (Имя не указано в настройках баннера) -
newOrder: 100432,
-
orderDetails: "Название товара"
},