Научно-исследовательская лаборатория систем ЧПУ
Научно-исследовательская лаборатория систем ЧПУ

Поиск по сайту:
 

Расписание курсов "Программирование SINUMERIK 810D/840D/840Di"



Счетчик посетителей web-сайта

Автор: Попов А. Ю.
Кафедра КСУ, МГТУ "СТАНКИН"
Опубликовано: 02.01.2004
Версия текста: 1.0

Задачи статистики

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

В интернете существует огромное количество различных служб, предоставляющих статистику посещений, начиная от таких гигантов как SpyLOG, Rambler, Mail.ru, HotLog и заканчивая многочисленными средствами, предоставляемые хостинг-провайдерами. С одной стороны они представляют из себя весьма мощные инструменты по анализу и сбору статистики, но с другой стороны обладают весьма весомым недостатком - ввиду того, что они являются внешними службами по отношению к вашему сайту они не могут гарантировать сохранность собранной статистики. Кроме того, они часто располагаются на удаленных и сильно загруженных серверах, поэтому при посещении вашего сайта вызов счетчика этой системы не всегда может быть успешно выполнен, таким образом, высока вероятность "пропуска" посещений. Эта вероятность тем выше, чем более популярна рейтинговая система, ваш сайт, и чем больше расстояние между ними. Также если вам захочется сделать заточенный специально под вас отчет на основе собранных данных, то или это будет вообще невозможно или же это будет стоить весьма ощутимых денег. Как показывает опыт на примере SpyLOG, удачные проекты со временем превращаются в чисто коммерческие проекты. К этому же идет и весьма популярный HotLog, представляющий часть отчетов на платной основе. Другие же службы, кроме, пожалуй, kmindex, не могут предоставить достаточное количество видов статистики, чтобы можно было расценивать их возможности за исключением красивой кнопки на сайте. Таким образом создание собственного счетчика является достаточно интересным приобретением для активно развивающегося web-проекта, и, вполне возможно, не только интересным, но и выгодным.

Обзор средств создания web-контента

Любой счетчик, имеющий собственное визуальное представление можно рассматривать как некую часть содержимого web-сайта. Как правило каждый человек который заинтересовался наполнением сайта обратит свой взгляд и на заветные цифры на счетчике. Как же их получить? Наиболее распространенные средства в интернете и самые удобные для решения задачи собирания, обработки и вывода статистики на данный момент является использование JavaScript'a, базы данных MySQL и PHP. Во-первых набор из сервера баз данных MySQL и языка программирования PHP предоставляют 99% провайдеров, ввиду того, что PHP существует не только для платформы Linux, но и для Internet Information Server, а MySQL сервер в случае чего вполне заменит и Microsoft SQL Server или любой другой поддерживающий язык запросов SQL. JavaScript же поддерживают абсолютно все браузеры.

Стратегия сбора и обработки статистики

Первоочередной задачей является обработка статистики с оптимальным временем обработки запроса счетчиком. Для этого первичные данные должны быть сохранены в кратчайшее время.

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

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

Сохранение данных


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

Таблица посетителей visitors

Содержит информацию о характеристиках уникальных посетителей сайта. Для каждого посетителя таблица хранит следующую информацию:

  • тип посетителя (обычный, поисковый робот, др.);
  • характеристики операционной системы (вид операционной системы, разрешение экрана, количество цветов);
  • тип браузера;
  • характеристики JavaScript (поддержка JavaScript'a, версия);
  • поддержка cookie;
  • др. информация.

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

Таблица посетителей hits

Таблица содержит записи посещений страниц посетителями. Добавление в таблицу осуществляется при каждом запросе любой страницы с сервера. Содержимое таблицы позволяет определять:

  • путь следования посетителя до конкретной страницы;
  • время просмотра каждой страницы;
  • количество просмотренных страниц;
  • с какого адреса пришел посетитель на сайт;
  • поисковые фразы, приводящие на сайт.

Таблица страниц сайта pages

Содержит консолидированную информацию о посещениях сайта и каждой страницы в отдельности. Запись с нулевым идентификатором page_id содержит статистику для всего сайта.

Схема обработки данных



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