Обдумываем механизм подсчёта просмотров в одном из своих проектов. В связи с этим вопрос: как Youtube, vimeo и др. считают количество просмотров? Например, может ли один и тот же пользователь, посмотрев видео не один раз, увеличить общее количество просмотров ролика больше, чем на +1? (А если да, то какие есть ограничения?)
Кто знаком, подскажите, пожалуйста. Заранее спасибо.)
«Просмотр учитывается каждый раз, когда пользователь воспроизводит видео на YouTube. Мы не детализируем эти результаты, чтобы избежать искусственного увеличения количества просмотров»
Источник: www.dzhamblog.ru/faq_youtube/
Ну и, само собой разумеется, справка youtube неинформативна.
К сожалению, существуют пользователи, которые искусственно стараются повысить количество просмотров.… Чтобы исключить эти возможности, иногда мы замедляем или в некоторых случаях приостанавливаем счетчик количества просмотров видео, если обнаруживаем попытку вручную искусственно увеличить количество просмотров. Это стандартная операция в нашей системе.
Если… выявляется искусственное повышение количества просмотров, счетчик приостанавливается. В то время как счетчик кажется приостановленным, подсчет реального количества просмотров продолжается.
Из полезной информации только то, что они мониторят ботов и могут приостанавливать счётчик просмотров.
Если появляется необходимость накрутки счётчика то вход идёт смекалка: называют видео каким нить названием фильма который все ждут, и второй способ покупают реальные просмотры за 0.01$ за каждый. Итого 1000 просмотров за 10$.
Сейчас свежезалитое мной же видео открыл и после третьей секунды просмотра (длина видео больше 4 минут) нажал F5 в браузере. Повторил 10 раз. Итог: 10 просмотров. Я залогинен под тем же аккаунтом, под которым заливал. В общем, не всё у них так очевидно.
Лично у меня напрашивается вариант с разделением ролика на несколько контрольных точек и отстукиванием на сервер факта просмотра каждой точки. Затем на сервере инкрементировать счетчик просмотров например при просмотре 60% точек.
Хотя знаю случаи, когда просмотром считается нажатие на кнопку Play.
Да, разумная идея, сейчас мы рассматриваем её как основную.
Правда, остаётся вопрос — какое количество % выбрать (как раз поэтому и было интересно, как считает просмотры youtube, если у них так же, то интересен их приблизительный %, который они засчитывают за просмотр).
Была ещё одна идея.
Учитывая специфику нашего проекта, ролики планируются длинные (формат — телепередача). Поэтому возникли сомнения, «насмотрят» ли зрители достаточное количество %. Можно считать и просто нажатие кнопок Play, возможно, с ограничением, чтобы один пользователь мог увеличивать кол-во просмотров не более чем раз в n часов.
Видео, считает по отдаче видеофайла пользователю более Х% (процент меняется в зависимости от собранной статистики, а так же учитывается и то, какую часть смотрят на видео).
Т.е. если ролик длинный, а ссылки идут на конкретный момент и он интересен только одной минутой, то через некоторое время коэффициенты «нормализуются» и просмотр только этого момента (одна минута из часа) будет считаться за просмотр (более ХХ% от доли этого фрагмента).
Насколько я знаю, посчитать кол-во отданных байт ролика достаточно затруднительно, особенно в условиях многопоточного скачивания. Если только анализировать это по логам, но тогда не получается в чистом виде рейлтайм обновления статистики.
К тому же, надо учитывать, что ролик могут скачивать вовсе не реальные пользователи, а роботы или что-то подобное.
Я полагаю, что количество просмотров зависит от каждого нового уникального посетителя. При этом не важно: нажимал ли новый посетитель кнопку "play". Кроме IP-адреса система ещё учитывает такие параметры как: браузер, разрешение экрана и железо. Если у Яндекса есть возможность делать вывод, что данный ролик просматривает один и тот же посетитель, то у Гугла и подавно. А то, что количество просмотров якобы увеличивается при обновлении страницы в браузере (клавишей F5), то это только так кажется :) На самом деле, это означает то, что в данный момент ваш ролик просматривают уникальные посетители.