Развитие в сфере образования предполагает сбор цифровых следов для последующего анализа.
Ранее в 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} ] }
Просмотр событий[править]
Для просмотра записанных событий по сессии работы с документом надо перейти к плееру документа, нажать кнопку статистики и кликнуть по сессии работы с плеером с не нулевым числом событий:
Переход к просмотру событий представлен на видео: