В этой стать хочу рассказать о том, что оценивать мнение аудитории о происходящем на видео можно и даже нужно не только качественными, но и количественным методом, получая результаты сразу без каких-либо задержек.
К плюсам моего количественного способа оценки я бы отнес следующее:
высокая скорость сбора данных. Результат можно получить за 1-2 дня.
легкий и интуитивно понятный для зрителя процесс оценки
зрителю не нужно прерывать просмотр, для того чтобы высказать своё мнение, все происходит в динамике, без отрыва от просмотра видеофрагмента
на основе тестирования видео на аудитории в 300-500 человек, получившиеся результаты можно статистически обобщать на всех зрителей, с очень хорошей точностью
-
результат сразу, в графиках и табличках, не нужно ждать расшифровок и обработки
Не затрагивая конкретных реализаций, хочу сосредоточится только на 4-х, самых важных аспектах, для работы такой системы оценок видео:
Как показывать видео?
Что оценивает зритель?
Какие сырые данные получаем?
-
Как выглядят автоматически обработанные результаты?
Я не буду касаться общих для всех количественных методов тем, таких как: выбор индикаторов и шкал, нормирование тестов, корректное построение выборки, основания её рандомизации, оценка доверительных интервалов, проверка гипотез, минимизация ошибок, отбраковка выбросов и т.д., сосредоточившись только на описании разработанных мной средств автоматизации сбора таких оценок.
Как зрителю показывается видео?
Отобранной выборке зрителей, это может быть пререкрут, а может быть рассылки по случайной выборке, приходит электронное письмо или СМС со ссылкой и предложением об участии в оценке видеофрагмента, содержащее уникальный код для доступа к опросу. При открытии ссылки зритель вводит код:

И попадает на страницу оценки видеофрагмента

Зритель смотрит видео и отмечает моменты, которые ему нравятся/не нравятся, нажимая мышкой на оценку, либо +/- на клавиатуре.
Что оценивается?
В примере зритель оценивает видео по дихотомической шкале. Наиболее простой и понятный способ, максимально упрощающей зрителю оценку. Возможны другие варианты:
-
Шкала Лайкерта
Полностью не нравится
Не нравится
Где-то посередине
Нравится
-
Полностью нравится.
-
Семантический дифференциал
Пары "успокаивающий – бодрящий" или "захватывающий – скучный", в виде униполярной "1, 2, 3, 4, 5, 6, 7", или биполярной шкалы, "-3, -2, -1, 0, 1, 2, 3".
-
Графическая рейтинговая шкала

Стрелка обычно передвигается мышкой. Реже используется вариант с окошком для ввода значения. Такая шкала может быть не только дискретной, но и непрерывной, от 1 до 100 или от 1 до 1000.
Какие сырые данные получаем?
Получаем временные ряды с плотностью оценок до микросекунд. Для этого сначала подготавливаем данные для сохранения:
var resp = "{TOKEN:TOKEN}"; // идентификатор респондентаvar now = new Date(); // текущее время нажатия на кнопкуvar CurrentAnswer = this.value; // выбранный вариант ответаvar VideoTime = player.getCurrentTime(); // время от начала видео, в секундах и их долях, из плеера.А затем сохраняем данные в базу SQL, обязательно асинхронно, через ajax запрос, чтобы не терять промежуточные нажатия во время обработки предыдущего нажатия:
var check_quota_url = "http://url/save.php?resp="+resp+"&date="+now+"&time="+VideoTime+"&ans="+CurrentAnswer;$.ajax({url: check_quota_url,type: "GET",timeout: 600,dataType: 'json',async: true});База с сырыми данными для дихотомии выглядит следующим образом:

SQL база данных с результатами опроса Как выглядят автоматически обработанные результаты?
Результатом обработки является дашборд, на котором данные пересчитываются и обновляются раз в 3-5 минут. На графиках легко отследить хорошие и проблемные места видеофрагмента и получить как общее представление об оценке видео:

Пример общей статистики Так и оценки каждого зрителя:

Пример графиков с возможностью выбора индивидуальных оценок каждого зрителя. Данные, запрошенные из сырых табличек дашбордом легко обрабатывать, например убирая оценки, которые выставлены до начала воспроизведения видео:
if [Timestamp] >0 then INT([Timestamp]) ENDИли для отображения дизлайков на отрицательной оси
DisLike seconds =IF [RespondentAnswer]="Dis" and [Timestamp] > 0 then INT([Timestamp]) ENDDislikes =-1 * COUNT([DisLike seconds])Для более глубокой обработки можно экспортировать уже очищенные и автоматически обработанные данные в удобном формате, не тратя время на ручные чистки и переформатирование сырых табличек:

Меню экспорта обработанных данных 
Формат обработанных данных в файле экспорта с количеством оценок для каждой секунды видео.