Перейти к содержанию

Серверная аналитика против клиентской: ключевые различия

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

t ≈ 4 мин

Стойки серверов в коридоре датацентра
Фото: Taylor Vick на Unsplash

Большинство веб-аналитики — клиентская: JavaScript-сниппет в браузере собирает события и отправляет их на сервер аналитики. Серверная аналитика переносит этот сбор на ваш бэкенд — обрабатывает серверные логи или отправляет события из кода приложения. У каждого подхода есть реальные компромиссы в точности, приватности и в том, что вы вообще можете измерить.

Как работает клиентская аналитика

Небольшой JavaScript-сниппет загружается в браузере посетителя. Он фиксирует события page_view, захватывает данные кликов и форм, читает UTM-параметры, проверяет referrer и отправляет всё это на эндпоинт аналитики.

Ключевые свойства:

  • Работает в браузере: видит именно то, что видит пользователь
  • Имеет доступ к данным браузера: cookie, localStorage, размер экрана, JS-ошибки
  • Блокируется блокировщиками рекламы: любой скрипт-трекинг может быть заблокирован; по оценкам, 15–30% пользователей в технических аудиториях используют блокировщики
  • Зависит от согласия: платформы управления согласием блокируют выполнение скрипта
  • Требует JavaScript: пользователи с отключённым JS вообще не попадают в аналитику

Именно так работают GA4, Plausible, Gauss и большинство инструментов аналитики.

Как работает серверная аналитика

Вместо браузерного скрипта (или в дополнение к нему) события отправляются с вашего сервера, когда происходят действия: страница рендерится, форма отправляется, обрабатывается API-вызов. Это может также означать анализ логов веб-сервера (Nginx, Apache) для извлечения данных о просмотрах страниц.

Две распространённые реализации:

Логи веб-сервера: каждый HTTP-запрос к серверу создаёт запись в логе: IP, user agent, временна́я метка, URL, HTTP-статус. Инструменты вроде AWStats или GoAccess парсят эти логи в отчёты о трафике. Никакого JavaScript, никакого браузерного выполнения — полностью на стороне сервера.

Отслеживание событий на уровне приложения: код приложения явно отправляет события в API аналитики, когда происходят действия пользователей:

# После успешной регистрации
analytics.track(event="sign_up", properties={"plan": "free"})

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

Что видит каждый подход

КлиентскийСерверный (логи)Серверный (события приложения)
Просмотры страницДаДаДа (явные)
UTM-параметрыДаНет (в URL, не всегда логируется)Да (если парсить)
ReferrerДаДа (заголовок Referer)Частично
User agentДаДаДа (из заголовка)
IP-адресДаДа (полный)Да (из заголовка)
JavaScript-ошибкиДаНетНет
Взаимодействия с формамиДаНетТолько при отправке
Время на страницеДа (приближённо)НетНет
Блокируется блокировщикамиДаНетНет
БотыЧастичноВсе (включая не-JS ботов)Только серверные боты
Навигация в SPAДа (с событиями роутера)Нет (нет нового HTTP-запроса)Нет

Измерение приватности

Клиентский: серверы инструмента аналитики получают данные напрямую из браузера посетителя. Это создаёт прямые отношения между посетителем и провайдером аналитики — именно это запускает требования к согласию.

Серверный (логи): ваш сервер принимает запросы и обрабатывает их внутри. Провайдер аналитики никогда не видит исходный IP или user agent — вы обрабатываете логи самостоятельно. Как правило, самый дружественный к приватности подход: данные не покидают вашу инфраструктуру.

Серверный (события приложения): вы контролируете, какие данные отправляются. Можно анонимизировать до отправки (хешировать IP, убирать персональные данные из свойств событий). Но данные всё равно отправляются стороннему сервису аналитики, и применяется тот же анализ согласия.

Сравнение точности

Устойчивость к блокировщикам: серверные подходы полностью невосприимчивы к блокировщикам рекламы. Клиентский трекинг теряет 15–30% технически продвинутых пользователей, блокирующих скрипты.

Боты: серверные логи видят все запросы, включая ботов без JavaScript. В серверных отчётах больше сырого трафика, требующего фильтрации. Клиентский трекинг естественно фильтрует большинство ботов.

Точность в SPA: для одностраничных приложений клиентский трекинг обрабатывает события навигации нативно. Серверные логи видят только первоначальную загрузку страницы — не последующие смены маршрутов без нового HTTP-запроса.

Когда использовать каждый подход

Клиентская аналитика — стандарт для большинства сайтов. Даёт данные о поведении пользователей: какие страницы посещают, где кликают, как навигируют.

Анализ серверных логов имеет смысл, когда:

  • У вас строгие требования к приватности и вы не хотите, чтобы данные покидали вашу инфраструктуру
  • Нужно отдельно считать ботов и автоматизированный трафик
  • Необходима базовая линия, которую нельзя заблокировать никаким расширением браузера

Серверные события приложения имеют смысл для:

  • Бэкенд-событий без эквивалента в браузере (продление подписки, использование API)
  • Высокоточного отслеживания конверсий, где нужна уверенность в обработке события
  • Комбинирования аналитики с бизнес-логикой приложения (помечать конверсию только после подтверждения оплаты на сервере)

Комбинирование подходов

Многие продакшн-настройки объединяют оба:

  • Клиентский — для поведенческих данных (просмотры страниц, потоки пользователей, рефереры)
  • Серверные события приложения — для критически важных бизнес-событий (платежи, подтверждённые регистрации)

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

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

Что это значит для аналитики с фокусом на приватность

Аналитика без cookie на стороне клиента (например, Gauss) — это не то же самое, что серверная аналитика. Она клиентская — работает в браузере — но без хранения постоянных идентификаторов. Преимущество для приватности касается того, что вы не храните (cookie, постоянные ID), а не того, где происходит сбор.

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

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

← Все статьи

Заявка в бету

Бета закрытая, на 20–30 сайтов. Мы рассматриваем каждую заявку и отвечаем по email: присылаем цену и условия.

Без https:// и пути.