Меня зовут Максим, я веб-разработчик. В конце 2024 года я проводил аудит Яндекс Метрики для одного из клиентов — интернет-магазина косметики. Мы сравнили данные из Метрики с данными из CRM: фактических заказов было на 34% больше, чем показывала аналитика. Треть покупок просто не фиксировалась. Причины: блокировщики рекламы, браузерные ограничения на трекинг, медленная загрузка скриптов. Когда мы перевели аналитику на серверную сторону — расхождение сократилось до 5%. Расскажу, как работает server-side tracking, зачем он нужен и как его внедрить на обычном бизнес-сайте.

Что не так с клиентской аналитикой

Классическая схема аналитики выглядит так: на сайт ставится JavaScript-код Яндекс Метрики или другого сервиса. Когда посетитель открывает страницу, скрипт загружается в его браузере, собирает данные (просмотр страницы, клики, заполнение форм) и отправляет их на сервер аналитики.

Проблема в том, что между «скрипт должен работать» и «скрипт реально работает» — пропасть. И с каждым годом она растёт.

Блокировщики рекламы. AdBlock, uBlock Origin, Яндекс Браузер с встроенной защитой, браузер Brave — все они блокируют скрипты аналитики. По разным оценкам, в России от 20 до 35% пользователей десктопов используют блокировщики. На мобильных меньше, но тренд растёт.

Ограничения браузеров на cookie. Safari (Intelligent Tracking Prevention) ограничивает время жизни сторонних cookie до 7 дней, а в некоторых сценариях — до 24 часов. Firefox Enhanced Tracking Protection удаляет межсайтовые cookie. Это значит, что повторный визит посетителя через неделю — может считаться «новым» посетителем. Воронка рвётся, когортный анализ врёт.

Медленная загрузка. JavaScript-код Метрики весит ~100 КБ. На медленном мобильном интернете (а в российских регионах это реальность) скрипт может не успеть загрузиться, прежде чем посетитель уйдёт со страницы. Событие «просмотр» — потеряно.

Ошибки JavaScript. Конфликты скриптов, ошибки в коде — и аналитика молча перестаёт работать. Никаких ошибок на экране, никаких уведомлений. Вы просто не знаете, что данные неполные.

Итог: вы принимаете бизнес-решения на основе данных, которые занижены на 20–40%. Это как управлять компанией, глядя в кривое зеркало.

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

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

Вариант 1: Server-side tagging (серверный GTM или аналог)

Между браузером посетителя и сервисом аналитики ставится ваш промежуточный сервер. Браузер отправляет запрос на ваш домен (не на mc.yandex.ru), ваш сервер принимает данные, обрабатывает и пересылает в Яндекс Метрику, аналитику или куда угодно.

Почему это работает: блокировщики фильтруют запросы к известным доменам аналитики (mc.yandex.ru, analytics.google.com). Если запрос идёт на ваш собственный домен (track.yoursite.ru) — блокировщик его не трогает. Cookie ставится от вашего домена (first-party) — браузерные ограничения на них мягче.

Вариант 2: Полностью серверная аналитика

Данные собираются на бэкенде без участия клиентского JavaScript. Каждый HTTP-запрос к серверу уже содержит информацию: какая страница запрошена, IP-адрес, User-Agent, реферер. Добавляем серверные cookie для идентификации — и получаем аналитику, которая работает независимо от браузера.

Для отслеживания событий (клик по кнопке, отправка формы) — минимальный JavaScript-код отправляет запрос на ваш сервер, а не на внешний домен аналитики. Один-два КБ кода вместо ста.

Серверная аналитика + Яндекс Метрика

Яндекс Метрика поддерживает серверную отправку данных через Measurement Protocol — API, через который можно передать просмотры страниц, цели и электронную коммерцию с сервера.

Как это выглядит на практике:

  1. Посетитель заходит на сайт. Сервер генерирует уникальный идентификатор и сохраняет его в серверной сессии и first-party cookie.
  2. При каждом просмотре страницы сервер фиксирует событие: URL, время, ID посетителя, источник трафика.
  3. Сервер отправляет эти данные в Яндекс Метрику через API.
  4. При конверсии (заказ, заявка) — сервер сам отправляет цель в Метрику, одновременно с записью в CRM.

Результат: данные в Метрике соответствуют реальности. Блокировщики не влияют, браузерные ограничения — не актуальны.

Что я получаю после перехода на серверную аналитику

На примере реальных проектов:

Восстановление потерянных данных. Магазин косметики: было 66% фиксируемых визитов, стало 95%. Это +44% данных, которые раньше просто терялись.

Корректная атрибуция. Рекламный бюджет распределяется точнее, потому что видно реальный путь клиента. До перехода: 30% конверсий — «прямой заход» (потому что cookie стёрлась). После: «прямые заходы» сократились до 10%, а конверсии правильно атрибутировались к контексту, SEO и email.

Скорость загрузки. Убрав тяжёлые клиентские скрипты, мы уменьшили время загрузки главной страницы на 0,8 секунды. Для Core Web Vitals — ощутимая разница.

Защита от скрипт-инъекций. Когда аналитика работает на сервере — нет клиентского JavaScript-кода, который злоумышленник мог бы подменить или использовать для XSS-атаки.

Техническая реализация: как я это строю

Архитектура

Для большинства моих проектов я использую такую схему:

Фронтенд (Next.js) → минимальный скрипт отправляет события на endpoint вашего сервера (POST /api/track). Размер скрипта — 2–3 КБ вместо 100 КБ Метрики.

Бэкенд (Node.js) → принимает события, обогащает данными (GeoIP, User-Agent parsing), записывает в ClickHouse для собственной аналитики, параллельно отправляет в Яндекс Метрику через API.

ClickHouse → хранилище «сырых» событий. Собственная аналитика без ограничений сторонних сервисов: любые срезы, любая глубина, любые кастомные метрики.

Яндекс Метрика → получает данные с сервера, дашборды работают как обычно. Данные — полные.

Идентификация посетителей

Серверные first-party cookie с идентификатором сессии. Время жизни — вы контролируете сами (не 7 дней, как навязывает Safari, а столько, сколько нужно вашему бизнесу — разумно 30–90 дней, с учётом 152-ФЗ).

Для авторизованных пользователей — связка с ID клиента из CRM. Один человек — один профиль, независимо от устройства.

Что отслеживаю на сервере

  • Просмотры страниц (автоматически при каждом HTTP-запросе)
  • Конверсии (заказ, заявка, регистрация — сервер сам фиксирует при обработке формы)
  • Электронная коммерция (товар в корзину, покупка — с суммой, артикулом, количеством)
  • Источник трафика (первый реферер сохраняется в серверной сессии и не теряется при навигации по сайту)
  • Пользовательские события (клик по кнопке «Позвонить», открытие чата — через минимальный JS)

Что с законодательством

Серверная аналитика упрощает соответствие 152-ФЗ по нескольким причинам:

Данные хранятся на вашем сервере в России. Вы контролируете, где физически расположены данные. Нет зависимости от зарубежных сервисов.

Меньше сторонних скриптов = меньше рисков утечки. Каждый внешний скрипт на сайте — это потенциальный канал утечки данных. Серверная аналитика минимизирует количество сторонних скриптов.

Прозрачность обработки. Вы точно знаете, какие данные собираете, потому что вы сами написали код, который их собирает. Нет «чёрных ящиков» внешних SDK.

В контексте запрета Google Analytics (который обсуждается и поэтапно реализуется в России) и ограничений на Meta Pixel — собственная серверная аналитика становится не «продвинутым вариантом», а единственным надёжным.

Стоимость и сроки

Минимальный вариант (серверный трекинг + пересылка в Яндекс Метрику, без собственного хранилища). Срок: 1–2 недели. Бюджет: 80–150 тысяч рублей. Подходит для сайтов, которые хотят просто «починить» Метрику.

Полноценная серверная аналитика (собственное хранилище в ClickHouse, дашборды, кастомные метрики + пересылка в Метрику). Срок: 3–6 недель. Бюджет: 200–500 тысяч рублей.

Инфраструктура: сервер для трекинга + ClickHouse. В Яндекс Облаке это от 5 до 20 тысяч рублей в месяц в зависимости от объёма трафика.

Кому нужна серверная аналитика

Точно нужна, если:

  • У вас интернет-магазин, и расхождение между данными аналитики и CRM больше 15%
  • Вы тратите на рекламу больше 200 тысяч рублей в месяц и хотите точную атрибуцию
  • Ваша аудитория — технически грамотные пользователи (IT, финансы) с высокой долей блокировщиков
  • Вы работаете с персональными данными и хотите полный контроль

Пока не нужна, если:

  • Сайт-визитка с 500 визитами в месяц
  • Аналитика не влияет на бизнес-решения
  • Бюджет на разработку минимален

Если хотите обсудить переход на серверную аналитику — обращайтесь.