Пожалуй напишу небольшой пост про недавнее нововведение на http://nice-media.ru/

Давно была идея сделать онлайн просмотр на сайте. Даже есть рабочий прототип, но так не смогли определиться в каком виде все-таки его оформить чтобы было удобно. В общем решили сделать это путем добавления видео прямо в релиз.

Видео берется из VK. Собственно встал вопрос о логах/просмотрах. Я люблю логи и стараюсь их делать везде где нужно и не нужно 🙂

В данном случае мне помог плагин LyteBox, так как он уже стоял для просмотра скриншотов в релизах, я использовал его и для того чтобы показывать фрейм с видео из Вконтакта. Вот и дошло дело до статистики. Как оказалось у ЛайтБокса есть обработчики для таких событий как открытие и закрытие окна. А если еще точнее то 4 обработчика: перед открытием, после открытия, перед закрытием(на кнопку) и после закрытия соответственно. Решил плюсовать просмотр к видео после открытия.

С вопросом когда писать лог разобрались, дальше вопрос «как?«.

А тут все очень просто — AJAX, пару строк говнокода для ajax обработчика и вот статистика уже лежит в базе и ждет пока её кто-нибудь прочитает.

А теперь перейдем ближе к телу(функции) 🙂

Вызов функции из ЛайтБокса

Функция для отправки данных на ajax обработчик

А вот и сам обработчик ajax.php

Теперь немножко про сами логи. Что же мы записываем в базу?

Пишем мы туда

идентификатор пользователя — ID(если авторизирован) или IP(если гость)

ID видео/релиза — integer

Время просмотра — UNIX timestamp

IP записываем для гостей потому что просмотр разрешен всем, даже без регистрации

И буквально пару слов про уникальность дабы не плодить овер9000 просмотров, был создан уникальный индекс в таблице состоящий из полей video и uid, что сводит статистику к более точным показателям.

За 5 дней с момента запуска набралось порядка 1000 просмотров. Судя по статистике «старички» которые уже были зарегистрированы предпочитают релизы скачивать, а не созерцать в онлайне.

 

Ах да еще, чтобы логи были не просто так добавил в профиль информацию что человек смотрел(опять же для авторизированных пользователей) 🙂

Еще пару скриншотов: