Ранее в ELiS использовалось логирование просмотра страниц. На основе знания кто, когда и какую страницу просмотрел высчитывалась книговыдача, число сессий, страницевыдача и т.д. Для книг такой способ подсчета статистики вполне приемлем и имеет всего два недостатка: большая база данных с логами просмотра страниц; при некоторых запросах происходит завышение статистики (например, зуммирование страницы или упреждающее кеширование на стороне клиента).
ELiS поддерживает еще три типа контента (презентации, видео, прямые трансляции) и назрела необходимость для этих материалов также собирать подробную статистику. Механизм логирования для книг в существующем виде мог применяться разве только для презентаций (только у них есть страницы). У видео и прямых трансляций никаких страниц нет и требуется иной механизм подсчета статистики.
Содержание
Сессия работы с документом[править]
Для решения этих проблем разработан новый механизм подсчета статистики путем встраивания сведеней об активностях пользователей непосредственно в плееры. Схема сейчас выглядит следующим образом:
- Пользователь открывает плеер с книгой, видео, презентацией или прямой трансляцией.
- В инкрементальный счетчик dataCount записывается активность пользователя и периодически (раз в 15 секунд) отправляется на сервер.
- Сервер пишет dataCount и данные по сессии взаимодействия пользователя с документом в плеере в РСУБД в таблицу elis_play_log.
Счетчик dataCount означает разные величины для разных типов документов. Для книг и презентаций счетчик является числом просмотренных страниц (без конкретизации какие именно страницы), для видео и прямых трансляций - число секунд в течении которых видео или трансляция находились в режиме воспроизведения (счетчик не изменяется во время паузы).
Таким образом в ELiS появилась новая статистически-важная величина - сессия работы пользователя с документом. Следует отличать эту сессию работы с документом от сессии работы с сайтом (считается внешними аналитическими системами). Если пользователь закроет книгу и откроет заново даже через секунду - создастся новая сессия работы с документом, но сессия работы с сайтом не прервется.
Пример работы новой статистики[править]
Рассмотрим пример отчета по новой статистике:
Вначале пользователь с логином PankovDG начал смотреть прямую трансляцию из аудитории в 16:50:25, но менее чем за 15 секунд вышел. Данные отправляются раз в 15 секунд. Если пользователь до этого срока закроет браузер или не нажмет кнопку воспроизведения, то счетчик dataCount будет нулевым.
На самом деле все несколько сложнее, при выходе счетчик постарает сразу отправить данные, не дожидаясь окончания 15-секундного интервала, но прервет браузер эту отправку или нет - зависит от браузера и способа, которым пользователь прерывает сессию работы с плеером).
Через 15-30 секунд пользователь открыл книгу Пермь как текст и в течении 8 секунд пролистал 7 страниц из нее.
Через 43 секунды пользователь открыл Агрометеорологию и за 23 секунды пролистал 21 страницу.
В чем неполнота внешней статистики Google Analytics / Yandex Metrika[править]
Если рассматривать наш случай, то внешняя статистика увидела бы одну сессию пользователя продолжительностью 90 секунд в течении которых он сделал не менее трех (скорее более десяти) переходов по сайту. Сколько точно было переходов между запусками плеера сказать нельзя т.к. обновленная статистика пишет только взаимодействие с плеером, а каким образом пользователь добирается до плеера - не учитывает. Большинство современных плееров загружает страницы при помощи AJAX, т.е. внешняя аналитическая система видит что пользователь перешел на страницу с книгой, но не видит и ничего не знает про перелистывание страниц.
Итак, внешняя аналитика не скажет кто и какие книги открывал, сколько страниц прочитал. Также она нам не рассказала бы, что пользователь просто пролистал книги и ни одна его не привлекла. Но есть и еще одна причина, почему внешние аналитические системы недостаточно подробно описывают работу пользователя с книгой:
Здесь выделены три сессии, в которых 2, 5 и 16 страниц читали почти час. На самом деле пользователи оставили вкладку браузера открытой и сессия из-за этого не прервалась. Таких сеансов много и они существенно завышают среднее время просмотра одной страницы.
Вывод довольно простой: считать время чтения книги как среднее арифметическое по таким логам недопустимо. Следует опираться на характеристики, которые не будут учитывать такие выбросы. Если выбросов будет меньше половины всех просмотров (в данной конкретной библиотеке это требование выполняется), то вместо среднего лучше пользоваться медианой.
Из этого же наблюдения стоит осторожно относится к среднему времени нахождения пользователя на сайте, расчитанному внешними аналитическими системами.
Сравнение с постраничными логами[править]
Прежняя статистика для книг никуда не исчезает. Она строится на логах просмотров страниц и хранит не просто счетчик просмотренных страниц за время работы с плеером, но какие конкретно страницы пользователь смотрел. Т.е. очень детально показывает динамику чтения книги и, поэтому, продолжит свое существование в дальнейшем.
Если сравнивать возможности машинной обработки сессий на уровне документов и страничных логов, то и в том и в другом случае можно выгрузить логи в виде tsv-файла. Также сессии работы с документом доступны в таблице реляционной базы данных, что в некоторых случаях упрощает интеграцию этих логов во внешние системы.
Ограничение логирования[править]
Для пользователей с правами редактирования просматриваемого документа сессия в базу не записывается.
Выводы[править]
Новая схема ведения логов универсальна и подходит для любого типа контента, в котором можно выделить целый счетчик - меру потребленного контента. Для видео - это число просмотренного видео, для книг и презентаций - число страниц и т.д.
Перенос логики подсчета потребления контента на плеер позволяет точнее считать потребленный контент.
Введенные логи оперируют сеансом взаимодействия пользователя с документом.
Когда говорится "новая" система, подразумевается новая для ELiS. В целом система реализует устаявшуюся практику работы аналитических систем (подсчет и отправка статистики из клиента), но с учетом специфики работы с документом и глубокой интеграции с плеером.