Как лучше фильтровать учет просмотров пользователями?

danneo

Честный
Регистрация
13 Ноя 2007
Сообщения
1.527
Реакции
121
Просмотры сохраняются в БД. При этом всем сохраняются еще различные параметры просмотра, типа метрики.
При открытии статьи проверяется, был ли просмотр или нет. Если нет, То добавляется в БД новый просмотр. Проверка идет по IP или логину.
Возник такой вопрос. Что если пользователь нажал F5 (была какая-нибудь ошибка при загрузе или непреднамеренно) или добавил в закладки и потом прочитал. При фильтрации по IP или логину будет засчитан только один первый запрос, даже при просмотре в 2 секунды. А второй просмотр в 5 минут не учтется. Что неправильно, получается.

Придумал следующее:
Сделать учет ВСЕХ просмотров. А потом по крону отсеивать по данным метрики левые просмотры (например, удалять или ставить галочки).
Возникла вторая проблема: таким образом, просмотров будет несколько (учтенных по метрике), например, пользователь может зайти несколько раз и читать по 5 минут. А должен быть всего один учтенный (например, просмотр больше 1 минуты и т.п.). А все остальные уже не учитывать, либо удалять.

Или может быть кто-то знает другой способ по отсеиванию просмотров?

p.s. можно еще все реализовать через js, отправлять все в php и там обрабатывать перед добавлением просмотра в таблицу, когда вся метрика соберется. А что если js выключен. Насколько можно людей читают сайты без js?
 
А сохранять просмотры страниц в бд вариант?
 
p.s. можно еще все реализовать через js, отправлять все в php и там обрабатывать перед добавлением просмотра в таблицу, когда вся метрика соберется. А что если js выключен. Насколько можно людей читают сайты без js?
Без JS нормальная метрика просмотров не возможна или затруднена до извращений крайней степени ;)
PHP может отследить только открытие страниц и то в надежде, что страница открыта не из кеша браузера.
Вот мой профиль просмотра для сайтов со множеством интересного контента:
- открываю ленту постов (поиск гугла/рассылку)
- открываю все интересные посты в новых вкладках
- закрываю ленту
- когда есть время или настроение смотрю чего понаоткрывал
- иногда падает браузер и некоторые вкладки в фоне перезагружаются

- если нелегкая занесла на интернет с почасовой оплатой, читается всё в офлайне. В принципе, если есть хоть одна открытая вкладка сайта, то JS может писать в Local storage и отправлять пакетами при появлении связи.


А что если js выключен.
Это уже очень редкое явление
 
Назад
Сверху