2013-10-15 3 views
8

Мне было интересно, что было бы лучшим способом сохранить или отслеживать активность пользователя на веб-сайте. Я думаю о пользовательской активности, по которой просматривается пользовательская страница, сколько раз она посещала, когда (например, отметка времени) его/ее изображений.Сохранение/отслеживание активности пользователя на веб-сайте

В настоящее время я собираюсь создать несколько таблиц в моей базе данных для каждой веб-страницы на своем веб-сайте, каждая из которых будет отслеживать аспекты активности пользователя на моем сайте. Например, 1 таблица, содержащая временную метку и идентификатор пользователя каждого пользователя, посетившего эту веб-страницу, другую таблицу, хранящую свои действия на веб-странице (например, понравилось)

Будет ли это хорошим способом отслеживания активности пользователя или есть другие, более эффективные методы сделать это?

PS: Я использую PHP и MYSQL для веб-сайта, и делаю это как средство улучшения моего кодирования, поэтому я не буду использовать аналитику Google или что-то в этом роде.

ответ

5

Да, храните все в базе данных. У вас есть таблица для посещений пользователей, одна для взаимодействия с пользователем и т. Д.

Для начала у вас есть таблица page_visits, которая содержит идентификатор пользователя (это ваша первая проблема для решения - как однозначно идентифицировать посетителя. их IP-адрес и агент пользователя? Создайте файл cookie, который ссылается на уникальный идентификатор? Существуют различные методы в зависимости от вашей цели - ни один из них не является 100% -ным доказательством), а также идентификатор страницы или URL-адрес, который они посетили, вместе с меткой времени.

Добавить таблицу для отслеживания взаимодействий. Как вы регистрируете событие, зависит от вас, вы запускаете вызов AJAX с помощью Javascript или jQuery для регистрации события, как щелчок? Эта таблица может содержать такие поля, как user_id, timestamp, action_performed, source_page_id.

Способ, которым вы решите реализовать, полностью зависит от вас, но база данных, вероятно, будет путем.

+0

Я предполагаю, что пользовательским агентом вы имеете в виду идентификатор пользователя в базе данных? Если да, есть ли какие-либо ощутимые преимущества для использования IP-кода по идентификатору базы данных пользователя, как можно подделать IP-адреса? Я спрашиваю, потому что я думал о регистрации идентификатора пользователя в базе данных в качестве средства идентификации. –

+0

User Agent = Web Browser, используйте ip - из этого вы также можете определить географическую информацию, если хотите, а также вернуться к посещениям и т. Д., А также, если они не вошли в систему и не имеют идентификатора пользователя. – Brian

+0

Пользовательский агент содержит такие вещи, как операционная система, версии браузера и т. Д. То, как я бы рекомендовал идентифицировать кого-то, было бы генерировать случайную строку букв и цифр, убедившись, что она уникальна и хранит ее с пользователем в качестве файла cookie. Таким образом, вы можете отслеживать их, когда они вернутся на ваш сайт, независимо от того, изменился ли их IP-адрес (до тех пор, пока они не очистили файлы cookie). – Jonathon

1

попробуйте создать таблицы в своей базе данных, чтобы сохранить необходимую информацию.

Off верхней части моей головы я мог думать, чтобы сохранить их IP-адрес

раздобыть информацию GEO, и вы можете использовать этот IP-адрес для получения и хранения в стране они находятся.

Вы могут хранить веб-страницу, на которой они были, прежде чем приходить на ваш сайт.

Сколько раз они пришли на ваш сайт и страницы, которые они посетили, и сколько раз на каждой странице.

IP-адрес может быть получен с помощью

$_SERVER['REMOTE_ADDR'] 

и

$_SERVER['HTTP_X_FORWARDED_FOR'] 

информация гео, чтобы получить их страну можно получить из многих сайтов ... Обычно вы должны платить за него, если вы хотите обновленная информация ... некоторые люди не имеют бесплатной более старой информации, которая по-прежнему весьма полезна.

Вот хороший поставщик информации GEO, что вы платите за, но это очень дешево

http://dev.maxmind.com/geoip/geoip2/web-services/

сделать количество посещений просто захватить их IP-адрес, когда они приходят, поиск базы данных для этого IP, и если он существует, увеличьте число посещений на 1. Если не создайте нового посетителя. Проделайте ту же инкрементацию на каждой отдельной странице.

использовать это, чтобы получить URL они были на до прихода на ваш сайт

$_SERVER['HTTP_REFERER'] 

Так таблицу, как это:

userId | userIP | userCountry | visits | webpage1Visits | webpage2Visits | webpage3Visits 

Предполагая, что вы не имеете тысячи страниц это может работать для около десяти страниц.

Там тонна других вещей, которые вы можете хранить как среднее время на сайте и т. Д., Но это основной материал.

пытаются и когда вы столкнетесь с проблемами по пути задавать больше вопросов и людей поможет :)

0

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

+1

Упомяните, пожалуйста, с помощью некоторой ссылки на код, спасибо –

Смежные вопросы