Статистика для сайта

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

Статистика для сайта-СМИ – это её хлеб. Рекламодатель, на деньги которого живёт и развивается проект, хочет знать – сколько же человек увидели его рекламу.

Есть несколько способов снимать статистику:

  • Server-side счетчики (к ним относится и модуль статистики Битрикс)
  • Сторонние client-side счетчики (liveinternet, google analytics, Яндекс Метрика)
  • Открытые статистические платформы

Но показатели с разных счётчиков отличаются, зачастую – в разы. И это кидает тень на разработчика, который просто поставил модуль «Статистика» или «Реклама» и отдал его без пояснений клиенту.

Почему статистика различается?

  • Часть браузеров может игнорировать JS-код счетчика, или не интерпретировать его из-за ошибок в других скриптах.
  • Расположение на странице влияет на очередь загрузки. Пользователь может остановить загрузку вовсе. Часть счетчиков может не успеть зафиксировать посещение.
  • Загрузку некоторых счетчиков запрещают блокировщики рекламы, особенно распространённые в последнее время.
  • Часть счетчиков не засчитывает показ из-за сбоев в работе сервера статистики или из-за перебоев со связью.
  • Счетчики используют разные алгоритмы обработки данных.

Server-side счетчики

К таким счётчикам, как уже говорилось, относятся:

  • Счетчики Bitrix
  • Визуализаторы логов веб-сервера nginx/apache (например, визуализатор AWStats)

Почему “врет” серверный счетчик?

  • Он может учитывать посещения ботов
  • Он учитывает запросы-предзагрузки (link rel=”prefetch”, InstantClick и прочее)

Счётчики Битрикс «вырезают» из статистики часть ботов – для этого в ЦМС есть специальная, загружаемая с обновлениями, база со списком ботов. Но это же свойство приводит к тому, что показатели счётчиков Битрикс отличаются от показателей, например, AWStats.

Также серверный счётчик, как правило, засчитывает специальные prefetch-запросы, которые делает браузер для создания иллюзии ускорения загрузки. Chrome, к примеру, заранее загружает несколько «соседних» страниц, чтобы показать их пользователю, если вдруг он захочет перейти именно на них.
Конечно, для сервера эти запросы выглядят как реальные переходы пользователей. И даже если пользователь не воспользовался заранее подгруженными страницами -  в статистике эти переходы засчитываются.

Сторонние client-side счетчики

  • LiveInternet
  • Метрика.Яндекс
  • Google Analytics
  • OpenStat
  • и другие...

Использование этих счётчиков очень заманчиво: это и независимая аналитика, и относительно высокая доступность и надёжность (по сравнению с доступностью, зачастую недорогих хостингов, на которых находятся наши проекты).

Но нужно отметить и минусы.
Например, если вы используете счётчики Yandex и Google, то данные ваших пользователей участвуют в формировании профиля интересов. Это может сыграть злую шутку для сайтов, в сегменте рынка которых используется контекстная реклама.

Открытые статистические платформы

  • Piwik
  • Open Web Analytics

Открытые статистические платформы – это аналоги client-side счётчиков, серверную часть которых вы устанавливаете на свой собственный сервер. Сочетает плюсы и минусы сторонних client-side счетчиков с гибкостью настройки. Мой сервер - что хочу, то и творю. Но есть и серьёзные минусы:

  • Надо вникать
  • Можно ошибиться с настройками
  • Можно не рассчитать нагрузку
  • Нужно тратиться на сервера, администрирование, поддержку

Немного терминологии

Визит - последовательность действий пользователя на сайте в пределах одной сессии.

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

Просмотр (хит) - зарегистрированный факт получения пользователем страницы. 

Целевой просмотр - величина, когда пользователь задержался на странице достаточно долго, чтобы прочесть материал. Время индивидуально, но расчет “более 15 секунд” вполне допустим в общем случае. Не путать с “Отказом” - отказ не может быть в рамках визита с глубиной просмотра более одной страницы, а вот “нецелевым” просмотр в таком случае быть может.

Уникал - искусственная величина, полученная путем вычитания действий ботов из общего числа визитов.

“Я главный редактор! Я не хочу ничего делать, я хочу цифры” (с)

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

Администратору сервера может быть важно количество показов - резкий рост показателя может ознаменовать начало атаки на сервер.

Рекламному отделу важны уникалы - так как боты не смотрят рекламу (хотя кто знает, 21 век все-таки), а показы баннеров и контекста обычно подвязаны на уникальных пользователей.

Главный редактор (директор по развитию) должен знать популярность тем, поэтому ему важны просмотры. Человек как минимум ткнул в заголовок, что означает, что ему это интересно. Прочел (купил) или нет, это уже другой вопрос.

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

Из практики получилось, что чистый показатель “Визит” не нужен никому, но это как раз тот показатель, который показывает встроенный счетчик Bitrix для инфоблоков. Интегрировать другие счетчики в административную панель, чтобы оставить все в привычном виде довольно сложно, поэтому все равно приходится искать компромиссы в виде виджетов, работающих с Метрика.Яндека API, и самописных серверных счетчиков.

Послесловие

Не все решения одинаково полезны, подходите к решению с умом. Заманчиво, например, использовать стандартный функционал Битрикс, но есть одно "но".
У счетчиков Bitrix есть еще одна проблема, которая становиться проблемой только в рамках больших проектов - данные о визитах хранятся в той же таблице, что и элемент инфоблока. Это чревато тем, что каждый инкремент SQL сбрасывает свой встроенный кэш, а на 700 000 хитов в день это 8-10% падения производительности системы.
В то же время изобретать велосипед и лепить сложную систему аналитики для некрупного сайта-СМИ может быть ненужно. Используйте подходящие инструменты под подходящие цели.


Интересные статьи

Интересные статьи

Год назад я рассказывал о появлении осветительных светодиодов нового поколения, спектр света которых близок к солнечному, за что эти светодиоды получили название SunLike (habr.com/ru/company/lamp...
Учёные до сих пор бьются над поиском самых эффективных способов по выработке тока — прогресс устремился от гальванических элементов к первым динамо-машинам, паровым, атомным, а теперь солнечн...
Одной из целей хостинг-провайдера является максимально возможная утилизация имеющегося оборудования для предоставления качественного сервиса конечным пользователям. Ресурсы конечных серверов ...
Андрей Ситник — одно из самых известных российских имён во фронтенде: у его проектов PostCSS и Автопрефиксер счёт GitHub-звёзд идёт на десятки тысяч. Но поскольку Андрей живёт в Нью-Йорке, а ...
Материал, перевод которого мы сегодня публикуем, посвящён инструментам, которые позволяют оснащать Python-проекты средствами форматирования кода, тестирования, непрерывной интеграции и анализа за...