Серверная аналитика против клиентской: ключевые различия
Клиентская аналитика работает в браузере, серверная — в вашем бэкенде. Когда какой подход имеет смысл, какие данные вы получаете и как каждый из них обращается с приватностью.
Большинство веб-аналитики — клиентская: 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 — правильный баланс: значимые поведенческие данные, без баннера согласия, без межсайтового отслеживания.