@kirill-93

Как правильно считать посетителей сайта?

Стоит задача считать количество посетителей для страниц.
Если просто сделать подсчет открытия страниц, как, например, на Тостере, то при обновлении страницы, будет обновляться счетчик.
Варианты, за которые можно зацепиться:
1. IP - но просто к IP цепляться нельзя, в случае, например, с мобильным интернетом, один адрес может быть на несколько тысяч устройств.
2. Информация о клиенте - о браузере, ОС и тп. В общем вся информация, которую можно получить на сервере из запроса. Сама по себе она тоже не уникальна, так как у многих может совпадать.
3. Записывать статистику и оставлять пометку в куки или ls, чтобы больше от этого пользователя не записывать ничего.
4. Записывать статистику после нахождения на странице больше некоторого времени. Чтобы простое открытие страницы ботом или еще как-то не накручивало счетчик.

Подскажите, пожалуйста, как лучше всего считать посетителей страницы? Какие подходы тут применимы?
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 6
@FanatPHP
Для начала надо определиться, что считаем.
И зачем.
Без этого приступать к любой задаче бессмысленно.

Если надо повесить на страницу бессмысленный счетчик "сколько раз просмотрели статью", то тупо при каждом открытии и не париться.
Если интересует какая-то осмысленная статистика, то сформулировать задачу и подбирать решение под неё.
Ответ написан
yandex метрика
гуглл аналитикс
не выдумывайте велосипед
Ответ написан
php666
@php666
PHP-макака
Поставить счетчик от mail.ru/liveinternet и т.п. Лучше всё равно не сделаете - задача нетривиальна и полна нюансов.
Ответ написан
riky
@riky
Symfony / Laravel
зависит от требований что хотите получить. и идеально сделать невозможно потому что нет четкой границы кто бот а кто не бот, второй запрос с одного ип это снова я зашел или моя сестра с нашего общего роутера.

но в целом я бы рекомендовал так:

1) популярных ботов можно отсеивать по юзер агентам (наверное есть готовые библиотеки).

2) делать блокировку сохряняя в мемкеше на 30 мин ип+ид_стр (или например md5(ip + id) ) - простая и эффективная защита от F5.

3) опционально можно делать как в п4 - через N сек отправлять запрос для обновления счетчика. если у кого то будет задача накрутить - они сразу его и будут дергать, поэтому как минимум нужна защита по ип (п2).

но если у кого то встанет задача накрутить то прокси найти не проблема, вы никак его не защитите, если делать без всяких регистраций.
еще рекомендация - если счетчик выводится на страницах - кешировать счетчик на какое то время чтобы злоумышленникам было сложнее изучать как он работает.
Ответ написан
Theon
@Theon
Фрилансер по веб-разработке
Правильно считать уникальных посетителей сайта, это можно сделать с помощью скрипта liveinternet
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы