Как работают отслеживающие куки? - PullRequest
4 голосов
/ 16 мая 2009

Мы пытаемся выяснить, как работает обычное программное обеспечение для веб-отслеживания, такое как Google Analytics.

Мы заметили, что большой объем отслеживаемого кода Javascript со всего Интернета создает в системе посетителя несколько файлов cookie, обычно три файла cookie: один срок действия которого истекает в конце дня, другой срок действия истекает в конце недели, и тот, который истекает в конце месяца.

Наша команда обсуждала, почему это распространено, и мы рвали на себе волосы, чтобы понять, почему это можно сделать.

Единственное, о чем мы можем думать, это производительность: таким образом, вы можете вычислить, повторяется ли посетитель за день, неделю или месяц, без необходимости постоянно выполнять тяжелые запросы к базе данных OLTP. Но мы все равно можем придумать способы заставить его работать.

Каковы преимущества создания таким образом файлов cookie для отслеживания и как, по вашему мнению, они используются другими?

Ответы [ 3 ]

4 голосов
/ 16 мая 2009

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

Нет правила, которое гласит, что это единственный способ сделать это. Можно отслеживать с помощью одного куки и хранить статистику на сервере.

3 голосов
/ 16 мая 2009

Очень интересный вопрос. Я думаю, что это решение проблемы отеля . Давайте посмотрим с точки зрения запросов к БД. Если пользователю отправляется один файл cookie (со сроком действия, например, равным одному году), число ежедневных посещений сайта будет примерно таким:

SELECT COUNT(DISTINCT CookieId) FROM Visits 
WHERE VisitDate = '2009-01-01' AND SiteId = 548

В системе с несколькими файлами cookie необходимо хранить только количество файлов cookie, выпускаемых в день для каждого сайта, и увеличивать их при каждой отправке нового файла cookie:

SELECT NoOfVisits FROM Visits 
WHERE VisitDate = '2009-01-01' AND SiteId = 548

Это явное преимущество в производительности, если ежегодно выпускаются сотни миллионов файлов cookie.

1 голос
/ 16 мая 2009

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

Таким образом, у вас должно быть однозначное действие: используйте только один файл cookie, если вас больше интересует задержка пользователя, чем использование процессора сервера в базе данных, используйте метод 3 cookie, если вас больше интересует использование процессора сервера, чем пользователя. латентность.

Реальным решением является создание гибрида: используйте только один файл cookie, а затем в конце каждого дня выполняйте первый запрос и сохраняйте результат в отдельной таблице или столбце, так что ваш интерфейс статистики должен запрашивать только этот отдельный результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...