home

Расширенный трекинг воспроизведения ресурсов в плеерах

Развитие в сфере образования предполагает сбор цифровых следов для последующего анализа.

Ранее в ELiS был создан механизм записи информации о воспроизведении ресурсов в плеерах при помощи счетчиков на JavaScript. Этот механизм помогал фиксировать обобщенную метрику по объему просмотренного ресурса (число страниц в книгах и презентациях, число секунд при просмотре видео и т.д.), но не говорил как именно пользователи воспроизводят тот или иной ресурс.

На практике знать только лишь объем может быть недостаточно и нужна дополнительная информация какие именно фрагменты ресурса смотрели пользователи и в течении какого количества времени.

Полезна будет и дополнительная информация по сессии пользователя (скачивание файлов, размеры экрана, время инициализации плеера и др.) и раз эта информация связана с сессией плеера, её можно хранить в логах сессии в виде событий.

Именно в этом направлении будет сосредоточено развитие статистики в ELiS в ближайшее время: расширение сбора информации в сессии пользователя.

Возможности статистики будут расширяться постепенно. На начальном этапе расширение затрагивает плееры книг в PDF и презентаций.

Счетчик событий[править]

Ранее в таблице elis_play_log был введен столбец elis_play_log.events для хранения числа событий взаимодействия с плеером. Ранее он не использовался и всегда был равен нулю. Теперь в него сохраняется число событий для возможности быстрого обозревания на сколько активно пользователь взаимодействовал с ресурсом в плеере.

Расширение сбора статистики[править]

В таблице elis_play_log теперь хранятся в сериализованном виде в поле data новая информация, связанная с расширенным трекингом в плеере.

Для ее десериализации надо вызвать функцию PHP unserialize(). В результате будет получен объект data со следующей структурой:

{
events: [], // Массив событий
}

Где в массиве events находятся события, происходившие в течении сессии и имеющие формат:

{
type: "", // required string - тип события.
time: 0, // required float - время события с момента инициализации плеера. Время указано в секундах с точностью до миллисекунды (т.е. имеет дробную часть до 1/1000).
value: "", // optional string - значения для некоторых типов событий, которые могут быть выражены в виде строки.
eventData: {} // optional object - объект с данными события, если value недостаточно для описания события.
}

Трекинг книг[править]

Пример событий для PDF:

data: {
 events:[
  {type: "setViewState", time: 0.243, value: "scrollOneColumn"},
  {type: "infoLoaded", time: 0.366}, 
  {type: "openFragment", time: 5.118, value: "2", eventData: {viewTime: 6.203}},
  {type: "openFragment", time: 6.203, value: "3", eventData: {viewTime: 2.299}},
  {type: "openFragment", time: 7.417,  value: "5"}
 ]
}

В примере в data.events находится массив событий в порядке их возникновения.

Событие setViewState "scrollOneColumn" - это запуск плеера в режиме одноколоночной прокрутки спустя 243 мс с инициализации плеера.

Событие infoLoaded произошло спустя 366 мс с инициализации и говорит о загрузке данных с сервера, после чего можно приступить к формированию интерфейса.

События openFragment со значениями "2", "3", "5" говорят об открытии 2, 3, 5 страниц плеера, причем у всех кроме последней в eventData.viewTime находится время в течении которого были открыты соответствующие страницы. Так страница 2 была открыта 6.2 сек., а страница 3 открыта 2.3 сек.

Трекинг презентаций[править]

Для презентаций ситуация аналогична с книгами: есть событие openFragment, соответствующие открытию определенного слайда, номер которого хранится в value, а время в течении которого слайд отображался в eventData.viewTime. Для последнего просмотренного слайда viewTime может быть не заполнено.

Пример событий:

data: {
 events:[
  {type: "infoLoaded", time: 0.112}
  {type: "openFragment", value: "1", time: 0.112, eventData: {viewTime: 2.564}},
  {type: "openFragment", value: "2", time: 2.564, eventData: {viewTime: 3.859}},
  {type: "openFragment", value: "3", time: 3.971, eventData: {viewTime: 2.527}},
  {type: "openFragment", value: "4", time: 5.091, eventData: {viewTime: 5.091}},
  {type: "openFragment", value: "5", time: 5.636, eventData: {viewTime: 1.128}},
  {type: "openFragment", value: "6", time: 6.219, eventData: {viewTime: 1.878}},
  {type: "openFragment", value: "7", time: 7.514}
 ]
}

Просмотр событий[править]

Для просмотра записанных событий по сессии работы с документом надо перейти к плееру документа, нажать кнопку статистики и кликнуть по сессии работы с плеером с не нулевым числом событий:

elis_play_log_event_viewer.png

elis_play_log_event_viewer_with_description.png

Переход к просмотру событий представлен на видео: