Рисёрч12 октября 202612 платформ + свой пайплайн

Своя веб-аналитика

Open-source платформы, которые можно развернуть на своих серверах вместо Google Analytics и Яндекс Метрики: как они устроены, как их развернуть, сколько стоят, что умеют и каковы их ограничения. Рекомендации — от pet-проекта до крупного бизнеса.

один просмотр страницы → пять приёмниковHTTP
GA4POST /g/collect?v=2&tid=G-XXXXXX&en=page_view&dl=…
MatomoGET  /matomo.php?idsite=1&rec=1&url=…&_id=…
PlausiblePOST /api/event   {"name":"pageview","domain":"…","url":"…"}
UmamiPOST /api/send    {"type":"event","payload":{"website":"…","url":"…"}}
RybbitPOST /api/track
У каждой платформы свой трекер, свой протокол и своё хранилище. Поэтому смена аналитики — это почти всегда новая разметка, а не замена одного адреса в настройках.

Коротко

Шесть выводов

  1. Open-source замены GA4 целиком нет. Каждый инструмент покрывает свою часть задач: Matomo ближе всех к GA по набору отчётов, PostHog и OpenPanel — к Mixpanel и Amplitude, OpenReplay — к Вебвизору, а собственный пайплайн на ClickHouse — к связке «GA4 + экспорт в BigQuery».
  2. Главное техническое различие — как платформа узнаёт посетителя. Cookieless-инструменты (Plausible, OpenPanel, Swetrix, cookieless-режимы Matomo и PostHog) перестают узнавать анонимного посетителя через сутки, Umami — на границе месяца. Если между первым визитом и конверсией проходят дни — как в B2B, финансах, iGaming или при покупке дорогих товаров, — канал привлечения нужно фиксировать на своей стороне, на бэкенде.
  3. Второе различие — хранилище. Matomo пишет в MySQL и строит отчёты из заранее посчитанных архивов: на десятках миллионов хитов узким местом становятся архивация и сегменты. Платформы на ClickHouse считают отчёты на лету и справляются с большими объёмами, но их сложнее обслуживать.
  4. Open source не значит «всё бесплатно». В Plausible CE нет воронок и выручки, PostHog в self-hosted официально рассчитан на ~100–⁠300 тыс. событий в месяц, у Matomo воронки, когорты и heatmaps — платные плагины, у OpenReplay выгрузка в хранилища — только в Enterprise, а Snowplow с 2024 года нельзя бесплатно использовать в продакшене.
  5. Все трекеры есть в EasyPrivacy. Без проксирования на свой домен и переименования путей теряется заметная доля данных: вендоры называют 5–⁠30%. Safari к тому же ограничивает cookie, записанные из JavaScript, семью днями.
  6. Self-hosting в своей стране снимает вопрос трансграничной передачи данных. Облачные тарифы всех вендоров — это передача данных за рубеж. Для Беларуси это существенно: США не входят в перечень стран с надлежащей защитой персональных данных, а в отдельных отраслях действуют требования размещать серверы в РБ.

Что выбрать по масштабу

Короткая версия. Обоснование, бюджеты и состав команды — в разделе «Сценарии».

Уровень 1

Pet-проект

до ~100 тыс. событий⁠/⁠мес
Umami или GoatCounter

MIT, ставится за 10 минут, работает на самом дешёвом VPS. GoatCounter — если нужен только счётчик просмотров.

€0–⁠6⁠/⁠мес на сервер · час на установку
Уровень 2

Клиенты и SMB

100 тыс. – 5 млн событий⁠/⁠мес
Umami v3 или Matomo

Umami — если нужны воронки и replay без платных плагинов. Matomo — если команда привыкла к логике GA: цели, e-commerce, Tag Manager, импорт истории.

€6–⁠170⁠/⁠мес на серверы · плагины Matomo по необходимости
Уровень 3

Средний бизнес

5–⁠50 млн событий⁠/⁠мес
Matomo с cron-архивацией и Redis

Альтернатива на ClickHouse — Rybbit, но проекту полтора года. Для записей сессий — OpenReplay отдельной установкой.

€50–⁠450⁠/⁠мес на серверы · 0,2–⁠0,5 FTE DevOps
Уровень 4

Крупный бизнес

50 млн+ событий⁠/⁠мес, LTV, атрибуция
Гибрид: свой сбор → ClickHouse → dbt

Сырые события в ClickHouse в РБ как эталонный источник данных, Matomo или Rybbit как интерфейс для маркетинга, OpenReplay для UX.

€40–⁠410⁠/⁠мес на сбор событий и ClickHouse · 1–⁠2 FTE на запуск

Бюджеты — стоимость своих серверов по прайсам массовых VPS-провайдеров на октябрь 2026: нижняя граница — один сервер, верхняя — схема с резервированием. Стоимость людей не входит, если не указано иное. Подробный расчёт — в разделе «Стоимость».

Контекст

Почему вопрос встал сейчас

Яндекс Метрика

В ночь на 8 октября после атаки БПЛА полностью остановлен дата-центр Яндекса в Сасове, 9 октября часть инфраструктуры вышла из строя в Калуге, в ночь на 11 октября остановлен дата-центр во Владимире. Сроки восстановления оборудования компания назвать не может1, 2.

Метрика с тех пор работает нестабильно, и у разных пользователей по-разному: кабинет может не открываться3, а отчёты — показывать данные не полностью. Перебои затронули и облачную платформу: зона ru-central1-b Yandex Cloud недоступна с 8 октября, часть облачных сервисов работает с ограничениями4. Рекламная платформа и связанные с ней инструменты, включая Метрику, восстанавливаются медленнее потребительских сервисов5. Скрипт счётчика tag.js при этом загружается, но какие данные за дни сбоя сохранены и когда они станут доступны, официально не сообщалось.

Google Analytics

GA4 в Беларуси работает, но у него есть ограничения, которые не обходятся настройками:

  • пороги данных скрывают строки отчётов, и отключить их нельзя6;
  • исследования сэмплируются от 10 млн событий на запрос7;
  • ежедневный экспорт в BigQuery для стандартного ресурса ограничен 1 млн событий в сутки, а потоковый не гарантирует полноты данных8;
  • моделирование Consent Mode включается только при 1 000+ событий в день от пользователей, отказавшихся от cookie, в течение 7 дней9.

Отдельный риск — политический: с декабря 2024 года Google приостановил монетизацию белорусских аккаунтов AdSense, AdMob и Ad Manager10. GA это не затронуло, но показывает, что ограничения со стороны Google возможны.

Право

Отправка данных в GA — это трансграничная передача в США, которых нет в перечне стран с надлежащей защитой персональных данных11. Подробнее — в разделе «Правовая рамка».

Карта

Четыре класса инструментов

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

  • Счётчики трафика — GoatCounter, Plausible CE. Отвечают на вопросы «сколько», «откуда» и «куда». Скрипт весит несколько килобайт, cookie не нужны, профилей пользователей и воронок нет.
  • Замены GA — Matomo, Umami, Rybbit, Swetrix, Open Web Analytics. Каналы, цели, воронки, выручка, сегменты; некоторые записывают сессии.
  • Продуктовая аналитика и UX — PostHog, OpenPanel, Countly, OpenReplay. В центре — пользователь и его события: retention, профили, replay, эксперименты.
  • Конструктор — Jitsu, OpenSnowcat, sGTM, d8a плюс ClickHouse, dbt и BI. Сырые события и любые модели, но интерфейс и логику строите сами.

Umami и Rybbit дают больше всего функций на единицу сложности эксплуатации

Функции в бесплатной self-hosted версии и сложность её эксплуатации, баллы от 0 до 10. Наведите на точку, чтобы увидеть пояснение.

Веб-аналитикаПродукт и UXКонструктор
00224466881010Функции в бесплатной self-hosted версии →Сложность эксплуатации →GoatCounterPlausible CEOpen Web AnalyticsCountly LiteUmamiSwetrix CERybbitOpenPanelMatomoOpenReplay CEPostHog (hobby)Свой пайплайн
Оценка автора рисёрча по совокупности источников: «функции» — покрытие задач из матрицы ниже в self-hosted версии без платных дополнений; «сложность» — число сервисов в стеке, требования к железу, частота ломающих обновлений и наличие официальной поддержки.

Технический разбор

Как это устроено

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

Браузер
Трекер

JS-скрипт или SDK собирает хит: URL, referrer, UTM, экран, идентификатор посетителя. Вес — от 1,5 до 105 КБ.

Сервер
Приёмник

HTTP-endpoint: /matomo.php, /api/event, /api/send. Здесь отсеиваются боты, по IP определяется география, а сам IP хешируется.

Опционально
Буфер

Redis у Matomo (QueuedTracking), Kafka или Redpanda у PostHog и Jitsu. Лёгкие системы пишут сразу в базу.

Диск
Хранилище

MySQL (Matomo, OWA), PostgreSQL (Umami), SQLite (GoatCounter), MongoDB (Countly), ClickHouse (остальные).

Интерфейс
Отчёты

Либо заранее посчитанные архивы (Matomo), либо SQL-запрос к сырым событиям в момент открытия отчёта.

Трекеры различаются по весу в 70 раз: от 1,5 КБ у Umami до 105 КБ у PostHog

Размер основного скрипта, КБ. PostHog тяжелее всех, потому что в основной скрипт входит autocapture; replay и опросы он подгружает отдельно.

0255075100Umami1,5 КБPlausible2,5 КБOpenPanel3,3 КБGoatCounter3,5 КБRybbit18 КБMatomo22 КБOpenReplay26 КБCountly37 КБPostHog105 КБ
Замеры сделаны по-разному, поэтому сравнение ориентировочное: у Rybbit — размер без сжатия, у OpenReplay — brotli, у Plausible — данные вендора, у GoatCounter — оценка по справке, у остальных — gzip.

Как платформа узнаёт посетителя

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

ПлатформаМеханизмСрок жизни идентификатораСледствие
MatomoFirst-party cookie _pk_id; без cookie — config_id12, 1313 месяцев; cookie с источником _pk_ref — 6 месяцев. В Safari — до 7 днейЕсть вернувшиеся посетители и атрибуция между визитами. В cookieless-режиме окно — 30 минут
PlausibleХеш от суточной соли, домена, IP и User-Agent14СуткиЗавтра тот же человек — новый посетитель. Уникальные посетители за период — сумма дневных. Люди за одним NAT с одинаковым браузером считаются одним посетителем
UmamiUUID от сайта, IP, User-Agent и соли; соль по умолчанию — месяц15До конца календарного месяцаRetention считается внутри месяца, на его границе идентификаторы сбрасываются. Смена IP, например переход с Wi-Fi на мобильную сеть, — новый посетитель
GoatCounterСлучайный UUID в памяти по сайту, UA и IP168 часовЕсть только визиты, вернувшихся посетителей нет
PostHogdistinct_id в cookie и localStorage, затем identify()17, 18До года; в Safari — 7 дней; в cookieless-режиме — суткиПолноценные профили после входа пользователя
RybbitХеш IP и User-Agent; соль можно менять ежедневно; identify()19Зависит от настройки солиПосле identify() анонимная история привязывается к пользователю задним числом
SwetrixХеш IP, UA и проекта; сессионная соль — сутки, профильная — месяц20Сутки или месяцDAU и MAU считаются, атрибуция — в пределах сессии
OpenPanelХеш от суточной соли, UA, IP и проекта; identify()21Сутки (смена в 00:00 UTC)Retention анонимов искажён; авторизованные пользователи связываются по profileId
Свой пайплайнСерверная first-party cookie с флагом HttpOnlyДо 400 дней — предел Chrome22Срок жизни идентификатора и правила объединения сессий определяете сами

Интерактивная проверка

Кому платформа припишет конверсию

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

Браузер

Упрощённая модель: настройки по умолчанию, одно устройство, IP не менялся. При смене устройства анонимная связь теряется в любом инструменте, восстановить её можно только по ID пользователя.

Практический вывод

Атрибуцию конверсий нельзя доверять механизму идентификации аналитической системы. Сохраните first-touch источник (UTM, click ID, referrer) при первом визите в серверной cookie, при регистрации или заказе перенесите его в профиль пользователя или в заказ, а саму конверсию отправляйте с бэкенда серверным событием с ID пользователя и этим источником в свойствах. Тогда канал сохранится в любом инструменте, где у событий есть свойства, и выбор платформы перестанет зависеть от её модели cookie.

Где лежат данные и как считаются отчёты

Предагрегация в MySQL

Matomo, Open Web Analytics
  • Сырые хиты пишутся в таблицы log_*, отчёты заранее считаются в архивы13.
  • Плюс: дашборды открываются быстро, база знакома любому DBA.
  • Минус: новый сегмент пересчитывается по всей истории, текущий день пересчитывается целиком при каждом запуске, строки сверх 500 сворачиваются в «Others»23, 24.
  • База масштабируется только вертикально.

Строчная БД, запрос на лету

Umami (PostgreSQL), GoatCounter (SQLite), Countly (MongoDB)
  • Отчёт — это SQL-запрос к сырым событиям в момент открытия.
  • Плюс: любой срез без пересчёта, простая эксплуатация.
  • Минус: на 100 тыс.+ визитов в день недельные отчёты Umami считаются десятки секунд, отчёты за длинные периоды обрываются по таймауту25.

Колоночная ClickHouse

Plausible, PostHog, Rybbit, Swetrix, OpenPanel, OpenReplay
  • Отчёт — запрос к сырым событиям, но колоночная БД читает только нужные столбцы и сильно сжимает данные.
  • Плюс: миллионы событий в сутки на одном сервере, прямой SQL для аналитика.
  • Минус: ClickHouse требователен к памяти и настройке; при мажорных обновлениях платформ приходится мигрировать данные и обновлять сам ClickHouse26.

Блокировщики и Safari

В актуальном EasyPrivacy есть правила для всех рассмотренных трекеров: /matomo.js, /matomo.php, ://plausible.*/js/script., ||umami.*/script.js, *.posthog.com, /countly.min.js, /op/op1.js и т. д.27 Правила срабатывают по имени файла, поэтому self-hosting сам по себе не помогает: stats.site.by/matomo.js блокируется так же, как облачный адрес.

Сколько данных теряется, зависит от аудитории. В исследовании Plausible 2021 года на одном техническом сайте GA не увидел 58,7% посетителей — это верхняя граница для ИТ-аудитории28. Plausible оценивает потери без прокси в 5–⁠25%29, PostHog обещает 10–⁠30% прироста событий после проксирования30, GoatCounter пишет о потере около трети просмотров на своём хостинге31. По отчёту eyeo (издатель Adblock Plus, сторона заинтересованная), блокировщиками пользуется около 30% интернет-аудитории, в России — 33%32.

Что помогает:

  • размещать трекер и приёмник на основном домене за обратным прокси, с нейтральными путями; официальные инструкции есть у Matomo (tracker-proxy), Plausible, Umami, PostHog, OpenPanel33, 29, 34, 30;
  • отправлять ключевые конверсии с сервера: Matomo HTTP Tracking API, Plausible Events API, импорт логов веб-сервера в Matomo и GoatCounter;
  • записывать идентификатор в cookie на стороне сервера. Safari удаляет cookie, записанные из JavaScript, через 7 дней, и так же ограничивает cookie из ответов сервера, спрятанного за CNAME стороннего сервиса35, 36. Поэтому приёмник должен работать на вашем IP-адресе, а не на CNAME к чужой инфраструктуре. Google тоже называет размещение на том же домене лучшей практикой для sGTM37.

Сравнение

Матрица возможностей

Что доступно в бесплатной self-hosted версии каждой платформы. Наведите на значок, чтобы увидеть пояснение. Фильтр подсвечивает нужную группу задач и сортирует платформы по покрытию этой группы.

есть бесплатно частично, платный плагин или своими силами строите сами нет не подтверждено
ПлатформаАтрибуцияПродуктСырые данныеReplayПотолок self-hosted
Каналы и UTMЦели и событияВыручкаМодели атрибуцииВоронкиRetention, когортыПрофили, User IDA/B, флагиSQL к сырым событиямВыгрузка в DWHИмпорт из GAЗаписи сессийТепловые карты
MatomoGPL · MySQL100 млн+ просмотров на кластере; узкое место — архивация и MySQL
Plausible CEAGPL · ClickHouseОфициально не указан; ClickHouse справляется с миллионами событий
UmamiMIT · PostgreSQLНизкие миллионы событий в месяц на Postgres (оценка)
RybbitAGPL · ClickHouseНе документирован; запись без очереди
Swetrix CEAGPL · ClickHouseНе документирован
PostHogMIT, кроме ee/ · ClickHouse + Kafka~100–⁠300 тыс. событий в месяц: официальная рамка hobby-сборки
OpenPanelAGPL · ClickHouseНе документирован; есть гайд для больших объёмов
OpenReplay CEAGPL · ClickHouse + PostgresЗависит от кластера; главная нагрузка — хранилище записей
GoatCounterEUPL · SQLite / PostgresУзкое место — число уникальных путей, трафик почти не важен
Countly LiteAGPL с изм. §7 · MongoDBЗависит от MongoDB; 16–⁠64 ГБ RAM при высоком трафике
Open Web AnalyticsGPL · MySQLНе документирован
Свой пайплайнJitsu / OpenSnowcat / sGTM + ClickHouseСотни миллионов событий в месяц — штатная нагрузка для ClickHouse

Источники по каждой платформе — в её карточке ниже. Матрица описывает self-hosted версии; в облачных тарифах тех же вендоров функций больше.

Разбор

Платформы подробно

Девять основных кандидатов — в порядке от самых зрелых и универсальных к узким. Каждую карточку можно свернуть.

Matomo

Ближайший к Google Analytics набор отчётов плюс собственный Tag Manager. Бывший Piwik, самый зрелый проект в обзоре.

GPL v3 (ядро), трекер BSDPHP + MySQL/MariaDB5.14.1 · 04.10.2026~21,9 тыс. ★InnoCraft, Новая ЗеландияУровни 2–⁠3, интерфейс на уровне 4

Как работает

  • Трекер matomo.js (~22 КБ gzip) ставит first-party cookie: _pk_id — ID посетителя на 13 месяцев, _pk_ref — источник для атрибуции на 6 месяцев, _pk_ses — сессия на 30 минут12.
  • Хиты приходят на /matomo.php, есть пакетный режим и HTTP Tracking API для серверных событий — регистраций, заказов и других конверсий с бэкенда с передачей uid38. Импорт логов веб-сервера бесплатный.
  • Сырые данные лежат в MySQL-таблицах log_visit, log_link_visit_action, log_conversion. Интерфейс читает не их, а архивы archive_numeric_* и archive_blob_*, разбитые по месяцам13.
  • Архивы пересчитывает cron-команда core:archive; её советуют включать уже от нескольких сотен визитов в день. Каждая комбинация «сегмент × сайт × период» — отдельный архив, поэтому объём вычислений растёт линейно с числом сегментов23, 39.
  • Строки сверх лимита (по умолчанию 500) сворачиваются в «Others». Поднять лимит задним числом можно только пересчётом, пока сохранились сырые логи24.

Как развернуть

# официальный образ + отдельная MySQL/MariaDB
docker run -d --name matomo -p 8080:80 \
  -e MATOMO_DATABASE_HOST=db matomo:5-apache

# архивация по расписанию вместо «по открытию отчёта»
5 * * * * php /var/www/html/console core:archive \
  --url=https://stats.example.by

Официальные требования к железу40:

Просмотров в месяцКонфигурация
до 100 тыс.1 сервер: 2 CPU, 2 ГБ RAM, 50 ГБ SSD
до 1 млн1 сервер: 4 CPU, 8 ГБ, 250 ГБ
до 10 млнприложение 8 CPU / 16 ГБ + БД 8 CPU / 16 ГБ / 400 ГБ
до 100 млн3 сервера приложения по 16 CPU + БД 16 CPU / 32 ГБ / 1 ТБ с репликой
больше 100 млнот 5 серверов, 2 сервера БД с репликацией

Пиковую нагрузку сглаживает бесплатный плагин QueuedTracking с очередью в Redis41. Docker-образ официальный42, Helm-чарта от вендора нет.

Сколько стоит

  • Ядро бесплатно. Платные плагины для self-hosted, € в год на тариф до 4 пользователей: Heatmap & Session Recording — 219, Custom Reports — 219, A/B Testing — 219, Funnels — 199, Form Analytics — 149, Cohorts — 89, Users Flow — 89, Multi Channel Attribution — 89, Activity Log — 39. Тарифы до 20 и до 50 пользователей дороже в 7–⁠14 раз: Funnels — 1 549 и 3 069 €43.
  • Matomo Cloud Business: 1 млн хитов — 172 €⁠/⁠мес, 10 млн — 1 600 €⁠/⁠мес44. Хит — это просмотр, событие, загрузка, переход по ссылке, поиск по сайту45.
  • Self-hosted, серверы по официальным требованиям: до 300 тыс. хитов — €6–⁠72⁠/⁠мес, до 3 млн — €19–⁠169, до 30 млн — €50–⁠447, до 100 млн — €177–⁠767. Нижняя граница — без резерва, верхняя — с репликой базы. Плюс время DBA.

Документация и зрелость

Ядро под GPL v3, трекер под BSD-3, премиум-плагины проприетарные46; около 21,9 тыс. звёзд и 31 тыс. коммитов на GitHub47.

Документация сильная: руководства, тысячи FAQ с обновлениями 2025–⁠2026 годов, developer.matomo.org с версиями v5 и v6, публичный форум, коммерческая поддержка. Минус — знания разбросаны по десяткам FAQ.

Matomo 6 в бете с 09.09.2026: PHP 8.1+, MySQL 8.0+, встроенная фильтрация ботов, включая AI-агентов. Миграция добавляет колонку в log_visit — на больших таблицах ALTER TABLE идёт долго48, 49.

Сильные стороны

  • самый полный набор GA-подобных отчётов в бесплатном ядре: каналы, цели, e-commerce, сегменты, User ID, cross-domain, Tag Manager, мобильные SDK;
  • серверный трекинг и импорт логов — конверсии не теряются из-за блокировщиков;
  • импорт истории из GA4, хотя и только в виде агрегатов50;
  • режим без cookie для работы без баннера согласия51.

Слабые стороны

  • MySQL и архивация: на 10 млн+ хитов в месяц разовые срезы по сырым данным считаются медленно; на форуме описаны 40–⁠50 минут архивации на сегмент при 5 000+ сегментов52;
  • атрибуция только по правилам: last, first, linear, position-based, time decay; data-driven нет53;
  • выгрузка в хранилище (Data Warehouse Connector) только в Cloud; в self-hosted — свой ETL из MySQL54;
  • воронки, heatmaps и когорты — платные плагины.

Решает

  • замену GA4 и GTM с хранением у себя;
  • e-commerce, цели, выручку;
  • heatmaps и записи сессий за умеренные деньги;
  • серверные конверсии с ID пользователя.

Не решает

  • SQL-аналитику по сырым событиям на десятках миллионов хитов;
  • data-driven атрибуцию;
  • поток событий в BigQuery без своего ETL.

Umami

Самая простая в установке «почти GA»: Node.js и PostgreSQL под MIT, а с версии 3 — воронки, retention, выручка, записи сессий и тепловые карты.

MITNext.js + PostgreSQLv3.4.0 · 17.09.2026~38,2 тыс. ★Umami SoftwareУровни 1–⁠2

Как работает

  • Трекер ~1,5 КБ gzip, переходы в SPA отслеживает сам. Записи сессий пишет отдельный recorder.js на rrweb.
  • Сессия = UUID от сайта, IP, User-Agent, соли и distinct ID. Соль по умолчанию меняется раз в месяц, период настраивается через SALT_ROTATION15.
  • umami.identify() даёт профили и связывает устройства: сессии остаются отдельными, но относятся к одному пользователю55.
  • Хиты — POST /api/send. Таблицы website_event и session в Postgres доступны SQL напрямую. MySQL убрали в v3.056. ClickHouse есть в коде, но официально не документирован и не поддерживается57.

Как развернуть

git clone https://github.com/umami-software/umami.git
cd umami
docker compose up -d   # umami + postgres
# вход: admin / umami — сменить сразу

Официальных требований к железу нет; на домашнем сервере Umami занимает около 240 МБ RAM. Для v3.1+ нужен Node 22.

Сколько стоит

  • Self-hosted — бесплатно плюс VPS: €6–⁠9⁠/⁠мес до 3 млн событий, с отдельным сервером базы — €40–⁠72.
  • Cloud: Hobby — $0 за 100 тыс. событий; Pro — $20 за 1 млн, сверх — $0,00003 за событие; Business — $200 за 10 млн, с реплеями и тепловыми картами58.

Сильные стороны

  • MIT без open-core ограничений: воронки, journeys, retention, атрибуция first/last click, выручка, сегменты, replay, heatmaps, Web Vitals доступны в self-hosted59;
  • установка за минуты, прямой SQL к Postgres;
  • частые релизы: минорная версия раз в 1–⁠2 месяца, большое сообщество — около 38 тыс. звёзд на GitHub60.

Слабые стороны

  • Postgres не справляется с большим трафиком: на 100 тыс.+ визитов в день отчёты за длинный период обрываются по таймауту25;
  • ломающие изменения в мажорных версиях: убрали MySQL, подняли версию Node;
  • нет импорта из GA;
  • идентификаторы анонимных посетителей сбрасываются на границе месяца.

Решает

  • клиентские сайты и SMB;
  • продуктовую веб-аналитику в объёме упрощённого GA4;
  • замену Вебвизора на небольших объёмах.

Не решает

  • миллионы событий в сутки;
  • перенос истории из GA;
  • сложную мультиканальную атрибуцию.

Документация: широкая, но с пробелами — нет требований к железу, ClickHouse-режим не описан, не объяснено, как retention узнаёт вернувшегося посетителя61.

Plausible Community Edition

Лёгкая веб-аналитика на ClickHouse с упором на приватность: один понятный дашборд, без cookie. Community Edition — сознательно урезанная версия облака.

AGPL-3.0, трекер MITElixir + PostgreSQL + ClickHousev3.2.1 · 15.05.2026~28,8 тыс. ★Plausible Analytics, ЕСУровни 1–⁠2, трафик без конверсий

Как работает

  • Скрипт ~2,5 КБ по данным вендора, без cookie и localStorage.
  • Посетитель = хеш от суточной соли, домена, IP и UA. Соль удаляется каждые 24 часа14.
  • События и до 30 свойств — через скрипт или Events API POST /api/event. Для серверных событий нужно передавать IP и User-Agent клиента: событие с IP сервера бот-фильтр молча выбросит, вернув 202 и заголовок x-plausible-dropped62.
  • Сырые события лежат в ClickHouse (events_v2, sessions_v2), к ним есть прямой SQL-доступ; метаданные — в PostgreSQL63.

Как развернуть

git clone -b v3.2.1 --single-branch \
  https://github.com/plausible/community-edition plausible-ce
cd plausible-ce
# BASE_URL и SECRET_KEY_BASE — в .env
docker compose up -d

От 2 ГБ RAM и CPU с SSE 4.2 или NEON (требование ClickHouse)64. CE выходит дважды в год; мажорные версии требуют миграции данных (для v2.0 нужен был двойной запас места на диске), исправления безопасности в старые версии не переносятся26. v3.2.1 закрыла RCE-уязвимость65.

Сколько стоит

  • CE — бесплатно плюс VPS: €6–⁠36⁠/⁠мес до 300 тыс. событий, €16–⁠140⁠/⁠мес до 30 млн — от одного сервера до схемы с репликой.
  • Cloud на 10 тыс. просмотров: Starter $9, Growth $14, Business $19 (воронки, выручка, Stats API); на больших объёмах — калькулятор на сайте66.

Сильные стороны

  • простой и быстрый дашборд для маркетинга и SEO, интеграция с Search Console;
  • ClickHouse справляется с объёмом лучше решений на Postgres;
  • прямой SQL к сырым событиям;
  • независимая компания без инвесторов, 21 000+ платящих клиентов67.

Слабые стороны

  • в CE нет воронок, ecommerce-выручки, user journeys, SSO и Sites API68;
  • бот-фильтрация в CE базовая: у одного автора после переезда на self-hosted посещаемость «выросла» примерно с 200 до 5 000+ уникальных посетителей в день69;
  • нет user-level данных, retention и cross-device;
  • импорт GA4 — только дневные агрегаты без UTM70.

Решает

  • трафик-аналитику: каналы, UTM, лендинги, SEO;
  • конверсии внутри одного визита;
  • публичные дашборды.

Не решает

  • атрибуцию отложенных конверсий;
  • LTV, retention, профили;
  • воронки и выручку в CE.

PostHog

Продуктовая платформа «всё в одном»: события, session replay, feature flags, эксперименты, опросы, ошибки и web analytics. Заменяет Mixpanel, Hotjar и LaunchDarkly, но не GA.

MIT, кроме каталога ee/Django + Rust + ClickHouse + Kafka + Postgresбез тегированных релизов~37,5 тыс. ★PostHog Inc., СШАSelf-hosted только для пилотов

Как работает

  • posthog-js (~105 КБ gzip) с autocapture кликов, просмотров и форм; replay и опросы подгружаются отдельно.
  • Анонимный distinct_id хранится в cookie и localStorage; после identify() события связываются с профилем. По умолчанию профили создаются только для идентифицированных пользователей: анонимные события дешевле, но без когорт и фильтров по свойствам пользователя17.
  • Путь события: приёмник на Rust → Kafka → воркеры ingestion → ClickHouse. Postgres хранит профили и метаданные, Redis — кэш, записи replay лежат в объектном хранилище71.
  • SQL — через HogQL, обёртку над ClickHouse SQL.

Как развернуть

/bin/bash -c "$(curl -fsSL \
  https://raw.githubusercontent.com/posthog/posthog/HEAD/bin/deploy-hobby)"

Единственный вариант — hobby-сборка на docker compose: 4 vCPU, 16 ГБ RAM, 30+ ГБ диска, около 39 сервисов, включая ClickHouse, ZooKeeper, Redpanda, Postgres, Redis, SeaweedFS и Temporal с Elasticsearch72.

Ключевое ограничение. README называет потолок около 100 тыс. событий в месяц, документация советует переходить в Cloud после 300 тыс.73, 72 Kubernetes и Helm не поддерживаются с 2023 года74, поддержки нет, обновления ставятся прямо из ветки master. В self-hosted недоступны batch exports в хранилища75, SSO, RBAC, audit log, lifecycle и group analytics76.

Сколько стоит

  • Cloud (США или Франкфурт): бесплатно 1 млн событий, 5 тыс. записей replay и 1 млн запросов к флагам в месяц. Дальше — от $0,00005 за событие с понижением по объёму: 10 млн анонимных событий ≈ $324⁠/⁠мес, все identified ≈ $1 080⁠/⁠мес77.
  • Self-hosted: сервер на 16 ГБ RAM — €16–⁠70⁠/⁠мес плюс время инженера (оценка).
  • Беларусь в справочнике PostHog — в списке территорий, за регистрациями из которых нужно присматривать; Россия заблокирована78.

Документация и отзывы

Документация сильная: у каждой страницы есть markdown-версия. Раздел про self-hosting вендор сознательно держит минимальным. На Hacker News hobby-сборку описывают от «как-то работает» до «полностью сломана», хотя есть и отзывы «работает нормально»79. Перенос из GA — только своим скриптом GA4 → BigQuery → PostHog80.

Сильные стороны

  • самый широкий функционал в обзоре;
  • replay, флаги и эксперименты в одном SDK;
  • SQL по событиям из интерфейса.

Слабые стороны

  • self-hosted не рассчитан на продакшен;
  • тяжёлый стек и тяжёлый SDK;
  • облако — это данные в США или ЕС.

Решает (в облаке)

  • воронки «регистрация → конверсия», retention, профили пользователей;
  • A/B-тесты с флагами;
  • replay с привязкой к событиям.

Не решает

  • в self-hosted — нагрузку больше сотен тысяч событий и выгрузку в DWH;
  • в любом варианте — атрибуцию уровня GA4 и выгрузку аудиторий в рекламные кабинеты.

Rybbit

Молодая (с января 2025 года) замена GA на ClickHouse: сессии, воронки, journeys, профили, ошибки. Самый быстрорастущий проект в своём классе.

AGPL-3.0Next.js + Fastify + ClickHouse + Postgresv2.8.0 · 07.2026~13 тыс. ★основатель Bill YangУровни 2–⁠3 с оглядкой на риски

Как работает

  • Трекер ~18 КБ без сжатия; replay, Web Vitals и ошибки — отдельные модули.
  • Без cookie: посетитель = хеш IP и User-Agent, соль можно менять ежедневно. identify(userId, traits) пишет ID в localStorage и задним числом привязывает анонимную историю19.
  • /api/track → валидация → rate limit → бот-фильтр → гео → сессия в Postgres, событие в ClickHouse. Очереди нет, запись синхронная81.
  • v2.8: исключение трафика по ASN, клиентская бот-детекция, MCP-сервер, API-ключи организации82.

Как развернуть

git clone https://github.com/rybbit-io/rybbit.git
cd rybbit
./setup.sh stats.example.by   # Docker Compose + Caddy с TLS

VPS от 2 ГБ RAM, x86_64 или ARMv8.2-A83. Горизонтальное масштабирование не документировано.

Сколько стоит

  • Self-hosted — бесплатно плюс VPS: €6–⁠36⁠/⁠мес до 300 тыс. событий, €16–⁠140⁠/⁠мес до 30 млн.
  • Cloud при 100 тыс. просмотров и годовой оплате: Standard $13⁠/⁠мес, Pro $26⁠/⁠мес (с реплеями)84.

Сильные стороны

  • функционал уровня Umami v3, но на ClickHouse;
  • анонимная история задним числом привязывается к пользователю;
  • импорт из Umami и Plausible.

Слабые стороны

  • проекту полтора года, и он держится на основателе: bus factor = 1;
  • запись без очереди рискованна на пиках нагрузки, например во время распродаж или крупных рекламных кампаний;
  • доступность replay в self-hosted не подтверждена: таблица «self-hosted vs Cloud» отображается неоднозначно85;
  • нет выручки, тепловых карт, импорта из GA.

Swetrix

Веб-аналитика плюс ошибки и производительность на ClickHouse, с самыми строгими в классе правилами приватности. Community Edition заметно беднее облака.

AGPL-3.0Nest.js + ClickHouse + RedisCE v5.3.0 · ≈07.2026~1,1 тыс. ★команда из трёх человекНишевый выбор

Как работает

  • Без cookie и localStorage: хеш IP, UA и ID проекта с двумя солями — сессионной (сутки, смена в 00:00 UTC) и профильной (месяц, для DAU/WAU/MAU). Сырые IP и UA не сохраняются20.
  • identify() создаёт профиль и подтягивает анонимную историю по правилу «первая идентификация побеждает».
  • В CE: трафик, UTM, события со свойствами, цели, воронки, user flows, сегменты, профили и retention (с v5), ошибки, производительность (TTFB, DNS, TLS), CSV-экспорт, API86.
  • Только в облаке: replay, выручка, флаги и A/B, AI, алерты87.

Как развернуть

git clone https://github.com/Swetrix/selfhosting
cd selfhosting
./configure.sh && docker compose up -d

От 2 ГБ RAM, x86_64 или arm64; миграции при обновлениях — вручную, ломающие изменения бывают даже в минорных версиях88.

Self-hosted: бесплатно плюс VPS, как у Rybbit: €6–⁠140⁠/⁠мес до 30 млн событий. Cloud: Standard $19⁠/⁠мес, Plus $39⁠/⁠мес89.

OpenPanel

Open-source аналог Mixpanel с веб-аналитикой: события, воронки, retention, когорты, профили, replay. Self-hosted версия не урезана по функциям.

AGPL-3.0Fastify + Next.js + ClickHouse + Postgres + Redis2.3.0 · 18.08.2026~6,8 тыс. ★OpenPanel AB, СтокгольмПродуктовая аналитика на уровнях 2–⁠3

Как работает

  • Трекер ~3,3 КБ gzip; SDK для веба, Node, Python, Swift, Kotlin, React Native и других.
  • Cookieless device_id = хеш от суточной соли, UA, IP и проекта; identify() связывает устройства через profileId21.
  • Export API отдаёт сырые события, есть Insights API и MCP; в self-hosted — прямой доступ к ClickHouse.
  • Нет feature flags, тепловых карт, опросов, batch-экспорта; A/B — только разбивка конверсии по свойству варианта. Вендор сам советует оставить GA4 для Google Ads и сложной атрибуции90.

Как развернуть

git clone https://github.com/Openpanel-dev/openpanel
cd openpanel/self-hosting
./setup && ./start      # обновление: ./update

Compose, Coolify, Dokploy или Kubernetes; требования к железу не указаны, есть гайд для больших объёмов91.

Self-hosted: бесплатно плюс VPS — около €9⁠/⁠мес до 300 тыс. событий, €16 до 3 млн и €30 до 30 млн на одном сервере; с репликой — €72–⁠261. Cloud: 1 млн событий — $90⁠/⁠мес, 10 млн — $350, 50 млн — $900; бесплатного тарифа нет92. Риск: проект держится на одном основателе93.

OpenReplay

Session replay с инструментами разработчика (сеть, консоль, состояние стора) плюс воронки, journeys, тепловые карты и co-browsing. Аналог Вебвизора и Hotjar для продукта и поддержки.

AGPL-3.0, часть MIT, ee/ отдельноGo/Python + Postgres + ClickHouse + Redis + MinIOv1.27.0 · 05.05.2026~12,2 тыс. ★Asayer Inc.UX-аналитика на уровнях 3–⁠4

Как работает

  • Трекер ~26 КБ (brotli) записывает изменения DOM, сеть и консоль; плагины для Redux, MobX, Pinia, Zustand; SDK для iOS, Android, React Native.
  • Пользователь связывается через setUserID и метаданные; Assist позволяет оператору поддержки видеть экран пользователя и созвониться через WebRTC.
  • Сервисы приёма, обработки и хранения; поток событий через Redis в CE и Kafka в Enterprise; записи лежат в MinIO или S394.

Как развернуть

git clone https://github.com/openreplay/openreplay.git
cd openreplay/scripts/helmcharts
DOMAIN_NAME=replay.example.by bash init.sh

Минимум 2 vCPU, 8 ГБ RAM, 50 ГБ диска, только x86. Основной путь — скрипт для Ubuntu или Kubernetes; Docker помечен как экспериментальный95. С v1.27 поддерживаются изолированные среды.

Цена: CE бесплатно, главная статья расходов — хранилище записей. Cloud: до 1 000 сессий бесплатно, $5,95 за 1 000 сессий или выделенные тарифы $199/399/799 в месяц96.

Для чего

  • понять, почему пользователь бросил регистрацию или оформление заказа;
  • найти rage-клики и ошибки на странице оплаты;
  • помогать пользователю через совместный просмотр экрана.

Ограничения

  • коннекторы в хранилища — только в Enterprise: модель open core, компания финансируется венчурными деньгами (seed-раунд $4,7 млн в 2022 году)97;
  • с мая 2026 года новых релизов нет;
  • записывает DOM: нужны согласие пользователя и маскирование платёжных полей и персональных данных;
  • маркетинговую атрибуцию не заменяет.

GoatCounter

Минималистичный счётчик посещаемости: один бинарник на Go, SQLite или Postgres, проект одного разработчика.

EUPL 1.2Go + SQLite/PostgreSQLv2.7.0 · 15.12.2025~6 тыс. ★arp242Уровень 1

Как работает

  • count.js ~3,5 КБ; сессия — случайный UUID в памяти на 8 часов, IP и UA на диск не пишутся16.
  • События — только клики без свойств; есть серверный API, импорт логов nginx, Apache, Caddy и CloudFront, пиксель без JS.
  • С v2.6 по умолчанию хранит только агрегаты. Из UTM распознаёт кампанию и источник, utm_medium — нет98.

Как развернуть

goatcounter db create site \
  -vhost stats.example.by -user.email you@example.by
goatcounter serve

Хостинг goatcounter.com бесплатен для разумного объёма, проект существует на пожертвования. Узкое место — число уникальных путей, а не трафик99. Блокировщики отсекают хостинговую версию: по FAQ теряется около трети просмотров31.

Ещё два проекта из исходного списка

Open Web Analytics

GPL-2.0 · PHP 8.2 + MySQL · 1.14.0 от 21.09.2026

Почти три года без релизов, а летом 2026 года разработка резко возобновилась: 10 релизов с 22.07 по 21.09.2026. Бесплатно даёт e-commerce, воронки целей, heatmaps и записи сессий. Но схема БД сменила версию с 16 на 33 за два месяца, старые URL отчётов отдают 404, к версии 2.0 удалят устаревшие интерфейсы100, 101.

Вердикт: не для продакшена; вернуться к оценке после стабильной версии 2.0.

Countly Lite

AGPL-3.0 с изменённым §7 · Node.js + MongoDB

Мобильная аналитика: сессии, события, краши, push, remote config. Воронки, когорты, retention, профили и Drill — только в Enterprise и Flex (от $175⁠/⁠мес)102. Лицензия запрещает убирать брендинг и предоставлять Countly клиентам как сервис103. Открытый репозиторий остаётся на MongoDB104.

Вердикт: только если нужна мобильная аналитика с push; для веба не подходит.

Проверили, но не включили в шорт-лист

ПроектСтатусЛицензияСтекПочему нет
Ackeeжив, 3.6.1MITNode.js + MongoDBминималистичный счётчик без воронок и пользователей
Shynetv0.14.0 после паузы с 2023 годаApache-2.0Django + Redisпростая статистика, слабая активность
Medamav0.6.2, 01.2026Apache-2.0Goодин бинарник, только базовые отчёты
Liwanv1.7.0, 09.2026Apache-2.0Rust + DuckDB~200 ★, базовые отчёты
Vinceбез релизов с 09.2025AGPL-3.0Goпорт Plausible, не развивается
Tianjiжив, 1.33.8Apache-2.0TS + Postgresаналитика + аптайм + опросы, аналитика базовая
LitlyxзамедлилсяApache-2.0Nuxt«AI-дашборд», мало функций
AptabaseживAGPL-3.0.NETаналитика мобильных и десктопных приложений, не веб
Fathom Liteзаморожен с 2023 года105MITGoразвитие остановлено
Offenпочти не развиваетсяApache-2.0Goниша: посетитель сам видит и удаляет свои данные
Koko AnalyticsживGPLWordPressтолько WordPress
d8aмолодой, ~50 ★MITGoстоит следить: принимает хиты GA4 и Matomo и пишет в BigQuery или ClickHouse106

Полный каталог — awesome-selfhosted107.

Конструктор

Свой пайплайн событий

Вариант для тех, кому нужны сырые события на уровне пользователя без порогов, сэмплирования и лимитов экспорта, а атрибуция и LTV считаются в своих моделях. По сути это повторение связки «GA4 + экспорт в BigQuery», только каждое звено находится у вас.

Ниже — путь одного события, заказа A-10482 на 129 BYN, от клика в браузере до строки в дашборде. Для каждого шага указано, где он работает, как быстро данные проходят дальше и что будет, если звено сломается.

  1. Где: браузер пользователяЗадержка: мгновенно

    Трекер фиксирует событие

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

    • Хит уходит запросом на адрес вашего же домена. Браузер отправляет его фоном, через sendBeacon или fetch, поэтому запрос не теряется, даже если пользователь сразу закрыл вкладку.
    • Вместе с событием передаются его свойства: номер заказа, сумма, валюта, товары.
    • До отправки проверяется согласие пользователя на сбор данных, если оно требуется.

    Чем реализовать

    Текущая разметка gtag и GTM: хиты уходят в формате GA4, переделывать ничего не нужно. Либо трекер Snowplow или Jitsu: свой формат, разметку придётся переписать.

    Если звено сломается

    Событие не отправится: тег не сработал после релиза или его отсёк блокировщик. Поэтому конверсии дублируются с бэкенда — см. шаг 4.

    Событие на этом шаге
    // страница «Спасибо за заказ», текущая разметка gtag
    gtag('event', 'purchase', {
      transaction_id: 'A-10482',
      value: 129.00,
      currency: 'BYN'
    });
  2. Где: ваш сервер на основном доменеЗадержка: миллисекунды

    Приёмник принимает и дополняет хит

    HTTP-сервис на вашем домене принимает хит, сразу отвечает браузеру «принято» и дополняет событие тем, чего браузер не знает или чему нельзя доверять.

    • Идентификатор. Ставит или продлевает серверную first-party cookie с ID посетителя: флаг HttpOnly, срок до 400 дней. JavaScript её не видит, а Safari не сокращает её срок, если приёмник работает на вашем IP-адресе, а не на CNAME к чужому сервису.
    • Обогащение. По IP определяет страну и город, по User-Agent — устройство и браузер, отсеивает ботов. Сам IP после этого обрезается или хешируется.
    • Проверка. Сверяет событие со схемой. Битые хиты уходят в отдельный поток для разбора, а не в общую таблицу.

    Чем реализовать

    sGTM: принимает хиты GA4 как есть, в режиме server managed ставит HttpOnly-cookie FPID108. Также Jitsu ingest, коллектор и enrich OpenSnowcat, d8a.

    Если звено сломается

    Хиты за время простоя теряются: не все трекеры умеют повторять отправку. Поэтому приёмников минимум два, за балансировщиком; своего состояния они не хранят и легко масштабируются.

    Событие на этом шаге
    POST https://www.site.by/g/collect?v=2&tid=G-XXXX&en=purchase
         &ep.transaction_id=A-10482&epn.value=129&cu=BYN
    Cookie: FPID=8f3c…              ← cookie с прошлого визита
    
    HTTP/1.1 204 No Content
    Set-Cookie: FPID=8f3c…; Max-Age=34560000; Secure; HttpOnly; SameSite=Lax
                                   ↑ 400 дней, срок продлевается при каждом визите
  3. Где: брокер сообщений рядом с приёмникомЗадержка: секунды

    Очередь сглаживает пики

    Приёмник не пишет в базу напрямую, а кладёт событие в очередь. Это буфер: всплески трафика, обновления и аварии базы не превращаются в потерю данных.

    • Почему ClickHouse нужна очередь. Он рассчитан на крупные вставки: от 1 000 строк за раз, лучше 10–⁠100 тыс.109 Очередь копит события и отдаёт их пачками.
    • Как события попадают в базу. ClickHouse сам читает топик через табличный движок Kafka и материализованное представление110, либо пачки пишет отдельный сервис, например bulker в Jitsu111.
    • Запас по времени. Брокер хранит сообщения заданный срок, например 7 дней. Если база лежит, события ждут в очереди и дозагружаются после восстановления.

    Чем реализовать

    Kafka или Redpanda. На малых объёмах очередь можно пропустить: асинхронные вставки ClickHouse копят пачки на стороне сервера109.

    Если звено сломается

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

    Событие на этом шаге — уже обогащённое
    {
      "event_id":   "4b1e…",
      "event_name": "purchase",
      "event_ts":   "2026-10-12T14:03:27.512Z",
      "client_id":  "8f3c…",            ← из серверной cookie
      "user_id":    null,
      "page_url":   "https://www.site.by/checkout/success",
      "referrer":   "",
      "utm":        {"source": "", "medium": "", "campaign": ""},
                                          ↑ в хите заказа меток нет — источник найдёт шаг 5
      "geo":        {"country": "BY", "city": "Minsk"},
      "device":     {"type": "mobile", "os": "Android", "browser": "Chrome"},
      "ip":         null,                 ← обрезан и отброшен после гео
      "is_bot":     false,
      "props":      {"transaction_id": "A-10482", "value": 129.0, "currency": "BYN"}
    }
  4. Где: ваш ЦОД или облако в нужной юрисдикцииЗадержка: секунды после очереди

    ClickHouse хранит сырые события

    Все события лежат в одной большой таблице, по строке на событие, без агрегации. Это аналог выгрузки GA4 в BigQuery, только без лимитов и на ваших серверах.

    • Рядом — ещё два источника. История GA4 из BigQuery (таблицы events_*) переносится один раз. Данные бэкенда — заказы, регистрации, выручка — синхронизируются регулярно.
    • Мост между поведением и деньгами. При оформлении заказа бэкенд записывает в заказ client_id из той же серверной cookie. По нему заказ из бэкенда потом связывается с визитами и рекламными источниками.
    • Устройство таблицы. Данные разбиты по месяцам и отсортированы по типу события и дате, поэтому запрос «заказы за неделю» читает малую часть диска. Срок хранения задаётся правилом TTL.

    Чем реализовать

    ClickHouse на своих серверах, две реплики для отказоустойчивости. Для 10 млн событий в месяц хватит одной ВМ.

    Если звено сломается

    События копятся в очереди и дозагружаются после восстановления. Дашборды на это время недоступны, данные не теряются.

    Таблица, куда попадает событие
    CREATE TABLE raw.events
    (
        event_date    Date,
        event_ts      DateTime64(3),
        event_id      UUID,
        event_name    LowCardinality(String),
        client_id     String,
        user_id       Nullable(String),
        page_url      String,
        referrer      String,
        utm_source    LowCardinality(String),
        utm_medium    LowCardinality(String),
        utm_campaign  String,
        country       LowCardinality(String),
        device_type   LowCardinality(String),
        props         String           -- свойства события в JSON
    )
    ENGINE = MergeTree                 -- в кластере: ReplicatedMergeTree
    PARTITION BY toYYYYMM(event_date)
    ORDER BY (event_name, event_date, client_id)
    TTL event_date + INTERVAL 25 MONTH;
  5. Где: по расписанию, внутри ClickHouseЗадержка: раз в час или раз в сутки

    dbt превращает события в метрики

    Сырые события — это ещё не отчёт. dbt по расписанию выполняет цепочку SQL-моделей, которые шаг за шагом строят то, что GA делал за вас.

    • Сессии. События одного посетителя с перерывом меньше 30 минут объединяются в визит, визиту присваивается источник.
    • Связь посетителя и пользователя. Анонимный client_id связывается с user_id после входа или заказа.
    • Каналы. UTM и referrer раскладываются по группам: платный поиск, органика, email, прямые заходы.
    • Атрибуция. Конверсии из бэкенда связываются с первым, последним или всеми касаниями — модель выбираете сами.
    • Метрики. LTV, когорты, retention.

    Чем реализовать

    dbt с адаптером для ClickHouse, запуск по cron или из оркестратора. Тесты dbt проверяют, что ID уникальны и поля не пустые, поэтому сломанная разметка видна до того, как попадёт в отчёт.

    Если звено сломается

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

    Модель: первый источник для каждого заказа
    -- models/marts/orders_first_touch.sql
    with first_touch as (
        select client_id,
               argMin(utm_source,   event_ts) as ft_source,
               argMin(utm_campaign, event_ts) as ft_campaign
        from {{ ref('stg_events') }}
        where utm_source != ''
        group by client_id
    )
    select o.order_id,
           o.revenue,
           o.created_at,
           coalesce(ft.ft_source, '(direct)') as ft_source,
           ft.ft_campaign
    from {{ ref('stg_orders') }} as o          -- заказы из бэкенда
    left join first_touch as ft using (client_id)
  6. Где: DataLens, Superset или MetabaseЗадержка: сразу после пересчёта моделей

    BI показывает результат

    Дашборды строятся не на сырых событиях, а на витринах из шага 5, поэтому открываются быстро. Аналитики при этом могут писать SQL напрямую к ClickHouse.

    • Витрины. Каналы и кампании, воронки, когорты, LTV по источникам привлечения.
    • Доступы. Маркетинг видит витрины, аналитики — ещё и сырые таблицы.
    • Обратная выгрузка. Конверсии с источником можно отправлять в рекламные кабинеты через их серверные API. Это отдельная задача, готового решения в пайплайне нет.

    Чем реализовать

    DataLens OSS или Superset (Apache-2.0), Metabase OSS (AGPL). У всех есть коннектор к ClickHouse112, 113.

    Если звено сломается

    Страдает только визуализация: данные и модели целы, SQL-доступ к ClickHouse работает.

    Витрина, в которой оказался заказ, — цифры условные
    ft_source    orders    revenue_byn
    google          412         51 380      ← здесь A-10482: первый визит был с utm_source=google
    yandex          187         22 940
    (direct)        233         27 900
    email            96         11 410

Компоненты и их лицензии

КомпонентЛицензияЧто важно знать
SnowplowLimited Use LicenseС декабря 2024 года (v1.1) коллектор, Enrich и загрузчики нельзя использовать в продакшене без коммерческой лицензии; цены — по запросу. Открыты только трекеры114, 115.
OpenSnowcatApache-2.0Форк Snowplow от SnowcatCloud, сделанный до смены лицензии: коллектор и enrich. Зрелость и темп релизов не подтверждены116.
Jitsu NextMITOpen-source аналог Segment: ingest на Go → Kafka/Redpanda → маршрутизация → пакетная запись в ClickHouse, BigQuery, Postgres, S3. Зависимости: Postgres, Kafka, ClickHouse, MongoDB111.
RudderStackELv2Сервер можно развернуть у себя, но локальная плоскость управления устарела, и документация настоятельно рекомендует облачную. Конфигурация хранится в облаке RudderStack, события — у вас117, 118.
sGTMпроприетарный, бесплатныйDocker-образ Google запускается в любой среде с Docker, принимает хиты /g/collect и может переслать их в свой endpoint или ClickHouse через sendHttpRequest119, 120, 121. Минус: конфигурация хранится в интерфейсе GTM, зависимость от Google остаётся.
d8aMITПринимает хиты в формате GA4 и Matomo, пишет в BigQuery, ClickHouse или файлы; умеет импортировать выгрузку GA4. Проект молодой106.
BIApache-2.0 / AGPLDataLens OSS (Apache-2.0, коннектор к ClickHouse, docker compose от 4 ГБ RAM)112, Superset (Apache-2.0), Metabase OSS (AGPL, часть функций только в Enterprise)113.

Нагрузка

10 млн событий в месяц — в среднем около 4 событий в секунду, 100 млн — около 40. Для ClickHouse это малая нагрузка; проблемы возникают только на пиках.

Объём и деньги

По эталонному датасету Метрики (100 млн хитов, 105 колонок — 7,5 ГБ в xz) это порядка 1–⁠3 ГБ в месяц на 10 млн событий122. Snowplow оценивает свой пайплайн на ~100 событий в секунду в $200–⁠240⁠/⁠мес в AWS или GCP123. На своих VPS 10 млн событий в месяц обслужит один сервер за €16⁠/⁠мес. Отказоустойчивая схема — два приёмника, очередь из трёх узлов, две реплики ClickHouse — обойдётся примерно в €290⁠/⁠мес, на 100 млн событий — около €410⁠/⁠мес.

Люди

Дата-инженер для Kafka и ClickHouse, аналитик-инженер для dbt, фронтенд-разработчик для разметки. Оценка: 1–⁠2 FTE на запуск за 3–⁠6 месяцев и 0,5–⁠1 FTE на поддержку. Это главная статья расходов.

Самый короткий путь для команды на GA4 + GTM + BigQuery

Оставить текущую разметку gtag и GTM, развернуть sGTM на своём поддомене и дублировать хиты в ClickHouse. Переделывать разметку не нужно, история GA4 переносится из BigQuery как есть. Цена этого пути — зависимость от Google остаётся. Полностью независимый вариант — Jitsu или OpenSnowcat с трекером Snowplow, но тогда разметку придётся переделать.

Деньги

Сколько стоит при вашем объёме

Сначала — стоимость своих серверов: она считается по требованиям вендоров к железу и прайсам массовых VPS-провайдеров. Ниже для сравнения — облачные тарифы самих вендоров по их публичным прайсам. Цены без НДС.

10 млн

На своих серверах — VPS в месяц

ПлатформаОдин серверС резервированиемКонфигурация: RAM серверов

Ориентир — прайсы массовых европейских VPS-провайдеров на октябрь 2026, за основу взяты цены Hetzner Cloud124, 125. «Один сервер» — минимальная конфигурация без резерва; «с резервированием» — серверы с гарантированной производительностью и реплика базы. Время на обслуживание не учтено. У провайдеров в нужной юрисдикции цены будут другими.

Облако вендора — подписка в месяц, для сравнения

ВариантВ месяцКак посчитано

Оплата облачных тарифов из Беларуси не проверялась. Облачный тариф — это трансграничная передача данных. У PostHog в события входят и просмотры, и autocapture, поэтому событий обычно больше, чем просмотров.

Рекомендации

Сценарии по масштабу

Общий принцип для всех уровней: ключевые события (регистрации, заказы, заявки) отправляются с бэкенда с ID пользователя, а first-touch источник сохраняется при первом визите и переносится в профиль или заказ. Тогда инструмент можно поменять, не потеряв атрибуцию.

Уровень 1

Pet-проект

до ~100 тыс. событий⁠/⁠мес
Выбор
Umami на VPS. Если нужен только счётчик для блога или документации — GoatCounter.
Почему
MIT, ставится за 10 минут, обновляется одной командой; воронки и retention есть сразу. Plausible CE тоже подходит, но ClickHouse требует от 2 ГБ RAM.
Бюджет
€0–⁠6⁠/⁠мес на сервер; час на установку, обновления раз в квартал.
Чего не будет
атрибуции отложенных конверсий у анонимных посетителей и анализа на уровне пользователя без входа в аккаунт.
Уровень 2

Клиенты и SMB

100 тыс. – 5 млн событий⁠/⁠мес
Выбор
Umami v3 — если клиенту нужны продуктовые отчёты и replay без платных плагинов. Matomo — если клиент привык к логике GA: цели, e-commerce, Tag Manager, отчёты по расписанию, импорт истории GA4.
Агентская модель
Matomo даёт мультисайт, роли, roll-up и white label (плагин). Если ставите аналитику клиентам как услугу, читайте лицензии: AGPL требует опубликовать ваши изменения, Countly Lite такую модель прямо запрещает.
Бюджет
€6–⁠170⁠/⁠мес на серверы — от одного VPS до схемы с репликой базы; плагины Matomo по необходимости — Funnels 199 €/год, Heatmap & Session Recording 219 €/год.
Чего не будет
data-driven атрибуции и автоматической выгрузки в DWH.
Уровень 3

Средний бизнес

5–⁠50 млн событий⁠/⁠мес
Выбор
Matomo по официальной схеме для 10 млн+: отдельный сервер БД с репликой, cron-архивация, QueuedTracking с Redis, платные плагины по задачам. Альтернатива на ClickHouse — Rybbit: дешевле по железу, но моложе и без очереди.
Replay и UX
OpenReplay CE отдельной установкой или плагин Heatmap & Session Recording в Matomo.
Сырые данные
ETL из MySQL или ClickHouse в корпоративное хранилище по расписанию.
Бюджет
€50–⁠450⁠/⁠мес на серверы и 0,2–⁠0,5 FTE DevOps (оценка).
Чего не будет
быстрых разовых срезов по сырым данным за год в Matomo и непрерывной выгрузки в BigQuery.
Уровень 4

Крупный бизнес

50 млн+ событий⁠/⁠мес, LTV, сложная атрибуция
Выбор
Гибрид из слоёв:
  1. Сбор: приёмник на своём домене — sGTM (сохраняет разметку GTM) или Jitsu/OpenSnowcat (без зависимости от Google).
  2. Хранение: ClickHouse в ЦОДе в РБ, туда же история GA4 из BigQuery и события бэкенда.
  3. Модели: dbt — сессии, first-touch и мультиканальная атрибуция, объединение с ID пользователя, конверсиями и выручкой из бэкенда.
  4. Интерфейсы: DataLens или Superset для аналитиков; Matomo или Rybbit с собственным трекером как привычный UI для маркетинга.
  5. UX: OpenReplay с маскированием платёжных форм и записью только при согласии.
Почему не одна платформа
у Matomo на MySQL узкое место — архивация; PostHog self-hosted не рассчитан на такие объёмы, а его облако — трансграничная передача; Plausible CE урезан; молодые проекты на ClickHouse держатся на одном-двух разработчиках.
Бюджет
€40–⁠410⁠/⁠мес на сбор событий и ClickHouse; Matomo на 100 млн хитов, если он нужен, — ещё €180–⁠770⁠/⁠мес; 1–⁠2 FTE на запуск и 0,5–⁠1 FTE на поддержку (оценка).
Чего не будет
готовых интеграций с рекламными кабинетами: импорт конверсий и аудитории придётся строить отдельно.

План

Как переехать и не потерять сравнимость

  1. Зафиксировать словарь событий. Регистрация, вход, заявка, покупка или другая целевая конверсия; эталон для денег — бэкенд, для поведения — аналитика.
  2. Сохранить историю. Если экспорт GA4 в BigQuery включён, перенести сырые события в своё хранилище. Импорт в Matomo и Plausible переносит только агрегаты50, 70.
  3. Отправлять денежные события с сервера. Конверсии и регистрации — с бэкенда, с ID пользователя и first-touch источником в свойствах.
  4. Спрятать трекер за свой домен. Обратный прокси, нейтральные пути, приёмник на своём IP.
  5. Собирать параллельно 4–⁠8 недель. Старый и новый счётчик одновременно; сверять визиты, источники, конверсии с бэкендом. Расхождения ожидаемы: cookieless-инструменты иначе считают уникальных посетителей, а бот-фильтры у всех разные.
  6. Настроить согласие и маскирование. Replay — только при согласии, платёжные формы и поля с персональными данными маскируются.
  7. Нагрузочный тест на пиках. Прогнать через приёмник трафик пикового дня — распродажи, рассылки, крупной рекламной кампании: проверить очередь, потери и задержку.
  8. Принять решение по метрикам пилота: расхождение конверсий с бэкендом, время построения отчёта за 90 дней, часы на обслуживание в неделю.

Перед пилотом

Что осталось неподтверждённым

  • Работает ли session replay в self-hosted Rybbit и Swetrix CE: документация противоречит сама себе.
  • Как Rybbit справляется с пиками без очереди — нужен нагрузочный тест.
  • Можно ли оплатить облачные тарифы из Беларуси.
  • Позиция НЦЗПД по IP-адресам и аналитическим cookie.
  • Зрелость OpenSnowcat и d8a для продакшена.
  • Режим ClickHouse в Umami: есть в коде, но без поддержки.
  • Какие данные Метрики за дни сбоя сохранены и когда доступ к ним восстановится у всех пользователей: официальных данных нет.
  • Цены хостинга в нужной юрисдикции, например в белорусских ЦОДах: расчёт self-hosted сделан по прайсам европейских VPS-провайдеров.

Справка

Словарь терминов

Все термины, которые в тексте подчёркнуты пунктиром, и ещё несколько смежных. Поиск фильтрует список по названию и определению.

AGPL-3.0
Если вы меняете код и даёте пользоваться им по сети, изменения нужно опубликовать. Внутреннее использование без изменений почти ничего не требует.
Air-gapped
Изолированная среда без доступа в интернет.
Autocapture
Автоматический сбор кликов, отправок форм и просмотров без ручной разметки. Удобно, но заметно увеличивает число событий.
Bus factor
Сколько ключевых людей должно уйти из проекта, чтобы он остановился. Bus factor = 1 — проект держится на одном человеке.
ClickHouse
Колоночная СУБД с открытым кодом, изначально созданная в Яндексе для Метрики. Хранит данные по столбцам и быстро считает агрегаты по миллиардам строк.
CNAME cloaking
Поддомен сайта, который DNS-записью указывает на сервер стороннего трекера. Safari распознаёт такую схему и ограничивает cookie.
Co-browsing
Совместный просмотр: оператор поддержки видит экран пользователя в реальном времени.
config_id
В Matomo — хеш от ОС, браузера, языка, плагинов и IP, по которому посетитель узнаётся без cookie.
Consent Mode
Режим Google: без согласия пользователя теги отправляют обезличенные сигналы, а GA4 достраивает данные моделированием.
Cookieless
Учёт без cookie и localStorage: посетитель определяется хешем от IP-адреса, User-Agent браузера и «соли».
Core Web Vitals
Метрики скорости и стабильности страницы от Google: LCP, INP, CLS.
cron
Планировщик задач в Linux: запускает команды по расписанию, например пересчёт отчётов раз в час.
Data-driven атрибуция
Распределяет ценность конверсии между касаниями по статистической модели, а не по фиксированному правилу.
DAU, WAU, MAU
Число уникальных активных пользователей за день, неделю и месяц.
dbt
Data build tool — инструмент для SQL-моделей в хранилище: версии, тесты и зависимости между витринами.
Distinct ID / User ID
Идентификатор пользователя, который сайт передаёт в аналитику после входа, например ID клиента в CRM. Связывает устройства и сессии.
Docker Compose
Инструмент, который поднимает несколько связанных контейнеров одной командой по описанию в YAML-файле.
DWH
Data warehouse — корпоративное хранилище данных, например BigQuery или ClickHouse.
EasyPrivacy
Открытый список правил против трекеров. Его используют uBlock Origin, AdGuard и другие блокировщики.
Elastic License 2.0
Исходники открыты, но нельзя продавать продукт как управляемый сервис и обходить лицензионные ключи. По определению OSI это не open source.
Endpoint
Адрес на сервере, который принимает запросы определённого типа, например хиты трекера.
ETL
Extract, transform, load — регулярная выгрузка данных из одной системы, преобразование и загрузка в другую.
First touch
Модель атрибуции, которая приписывает конверсию первому источнику, приведшему пользователя.
First-party cookie
Cookie, которую ставит сам сайт на своём домене, а не сторонний сервис. Браузеры и блокировщики ограничивают её мягче, чем сторонние.
FTE
Full-time equivalent — эквивалент одного сотрудника на полной ставке.
GPL
Копилефт-лицензия: при распространении изменённой версии исходники нужно раскрыть.
HogQL
Диалект SQL в PostHog — обёртка над SQL ClickHouse с доступом к событиям и профилям.
ITP
Intelligent Tracking Prevention — защита от трекинга в Safari. Среди прочего ограничивает срок жизни cookie, записанных из JavaScript, семью днями.
Kafka, Redpanda
Брокеры сообщений: буфер между приёмом событий и записью в базу, сглаживают пики нагрузки.
Kubernetes, Helm
Kubernetes — система оркестрации контейнеров на кластере серверов; Helm — менеджер пакетов для неё.
LTV
Lifetime value — суммарная выручка от пользователя за всё время работы с ним.
MCP
Model Context Protocol — открытый протокол, через который AI-ассистенты подключаются к внешним данным и инструментам.
Measurement Protocol
Серверный API GA4 для отправки событий с бэкенда.
MIT
Разрешительная лицензия: можно использовать, менять и встраивать в коммерческие продукты без обязательства открывать свой код.
NAT
Много устройств выходят в интернет через один IP-адрес, как в офисе или у мобильного оператора.
Open core
Базовая версия открыта, а функции для бизнеса платные или есть только в облаке.
Open source
Программы с открытым исходным кодом под лицензией, которая разрешает использовать, изучать и изменять код.
Rage-клики
Серия быстрых кликов по одному месту: признак того, что элемент не реагирует или пользователь не понимает интерфейс.
Retention
Удержание: какая доля пользователей возвращается через N дней после первого визита или регистрации.
rrweb
Открытая библиотека для записи и воспроизведения веб-сессий через снимки и изменения DOM.
SDK
Библиотека для разработчиков: готовый код для отправки событий из сайта, приложения или бэкенда.
Self-hosted
Развёртывание на собственных серверах или в своём облачном аккаунте: данные и инфраструктура под вашим контролем.
Session replay
Запись действий пользователя на странице (изменения DOM, клики, скролл) с воспроизведением, как видео. Аналог Вебвизора.
sGTM
Server-side Google Tag Manager — серверный контейнер GTM: принимает хиты на вашем домене и пересылает их дальше.
Snowplow Limited Use License
Код доступен, но в продакшене без коммерческой лицензии использовать его нельзя.
SPA
Single-page application: переходы между страницами без перезагрузки, поэтому трекер должен отслеживать смену URL сам.
UTM
Метки в URL (utm_source, utm_medium, utm_campaign и др.), по которым аналитика определяет рекламный источник.
Архивация в Matomo
Фоновый пересчёт отчётов из сырых логов в готовые таблицы-архивы. Интерфейс показывает архивы, а не сырые данные.
Когорта
Группа пользователей, объединённых общим событием в один период, например зарегистрированных в одну неделю.
Колоночная БД
Хранит каждый столбец отдельно и сжимает его. Запрос «сумма по каналу за год» читает два столбца, а не все строки целиком.
Конвенция 108
Конвенция Совета Европы о защите физических лиц при автоматизированной обработке персональных данных.
Конверсия
Целевое действие пользователя: покупка, заявка, регистрация, оплата. В аналитике — событие, которое отслеживают как цель.
Мультиканальная атрибуция
Распределение ценности конверсии между всеми касаниями пользователя с рекламой, а не только первым или последним.
Обратный прокси
Сервер на вашем домене принимает запросы трекера и пересылает их в аналитику. Для браузера это обычный запрос к сайту.
Объектное хранилище
S3-совместимое хранилище файлов: MinIO, SeaweedFS, Amazon S3. В нём лежат записи сессий.
Пороги данных
GA4 скрывает строки отчётов с малым числом пользователей, чтобы нельзя было вычислить конкретного человека.
Предагрегация
Отчёты считаются заранее по расписанию и хранятся готовыми; новый срез требует пересчёта.
Соль
Случайная строка, которую подмешивают к данным перед хешированием. Когда соль меняется, хеш того же посетителя становится другим, и связь с прошлыми визитами теряется.
Строчная БД
MySQL, PostgreSQL хранят записи целиком. Хороши для транзакций, но агрегаты по миллионам строк считают медленнее колоночных.
Сэмплирование
Расчёт отчёта по части данных с экстраполяцией на всё.
Тепловая карта
Наложение кликов или глубины скролла на страницу.
Хеш
Необратимое преобразование данных в строку фиксированной длины: по хешу нельзя восстановить IP, но одинаковые входные данные дают одинаковый хеш.
Хит
Один запрос трекера к приёмнику: просмотр страницы, событие, загрузка файла.

Ссылки

Источники

Проверены 12 октября 2026 года. Номер в тексте ведёт сюда.

  1. 1Яндекс: заявление об атаках на дата-центры (09.10.2026, обновлено 11.10.2026). https://yandex.ru/company/news/09-10-2026-01
  2. 2Коммерсантъ: атаки БПЛА на ЦОД Яндекса вызвали сбои и угрозу роста цен на облака. https://www.kommersant.ru/doc/9024163
  3. 3Яндекс Метрика: статус кабинета («Кабинет Метрики пока недоступен»), проверено 12.10.2026. https://metrika.yandex.ru/
  4. 4Comss.ru: хроника сбоя Yandex Cloud после атаки на ЦОД в Сасове (08–⁠09.10.2026). https://www.comss.ru/page.php?id=22333
  5. 5Клерк: кабинет Директа недоступен, рекламные инструменты, включая Метрику, восстанавливаются медленнее (12.10.2026). https://www.klerk.ru/buh/news/713242/
  6. 6Google Analytics Help: Data thresholds. https://support.google.com/analytics/answer/9383630
  7. 7Google Analytics Help: Data sampling. https://support.google.com/analytics/answer/13331292
  8. 8Google Analytics Help: BigQuery Export — limits. https://support.google.com/analytics/answer/9358801
  9. 9Google Analytics Help: Behavioral modeling for consent mode. https://support.google.com/analytics/answer/11161109
  10. 10Google: приостановка монетизации аккаунтов из Беларуси (AdSense, AdMob, Ad Manager). https://support.google.com/publisherpolicies/answer/15766875
  11. 11Нархоз-газета: трансграничная передача персональных данных — перечень стран. https://neg.by/novosti/otkrytj/transgranichnaya-peredacha-personalnykh-dannykh/
  12. 12Matomo FAQ: Which cookies are created by Matomo. https://matomo.org/faq/general/faq_146/
  13. 13Matomo Developer: Database schema. https://developer.matomo.org/guides/database-schema
  14. 14Plausible: Data policy. https://plausible.io/data-policy
  15. 15Umami: исходный код /api/send (сессия и соль). https://raw.githubusercontent.com/umami-software/umami/master/src/app/api/send/route.ts
  16. 16GoatCounter: Sessions. https://www.goatcounter.com/help/sessions
  17. 17PostHog Docs: Anonymous vs identified events. https://posthog.com/docs/data/anonymous-vs-identified-events
  18. 18PostHog Docs: Cookieless tracking. https://posthog.com/docs/data/cookieless-tracking
  19. 19Rybbit Docs: Identify users. https://rybbit.com/docs/identify-users
  20. 20Swetrix Docs: Visitor identification. https://swetrix.com/docs/visitor-identification
  21. 21OpenPanel Docs: How it works. https://openpanel.dev/docs/how-it-works
  22. 22Chrome for Developers: Cookie Expires and Max-Age capped at 400 days. https://developer.chrome.com/blog/cookie-max-age-expires
  23. 23Matomo: How to set up auto-archiving of your reports. https://matomo.org/docs/setup-auto-archiving/
  24. 24Matomo FAQ: Report row limits («Others»). https://matomo.org/faq/how-to/faq_54/
  25. 25Umami Discussions #3169: производительность на больших объёмах. https://github.com/umami-software/umami/discussions/3169
  26. 26Plausible CE Wiki: Upgrade. https://github.com/plausible/community-edition/wiki/Upgrade
  27. 27EasyPrivacy (версия от 12.10.2026). https://easylist.to/easylist/easyprivacy.txt
  28. 28Plausible Blog: How many people block Google Analytics. https://plausible.io/blog/google-analytics-adblockers-missing-data
  29. 29Plausible: Proxying. https://plausible.io/docs/proxy/introduction
  30. 30PostHog Docs: Deploying a reverse proxy. https://posthog.com/docs/advanced/proxy
  31. 31GoatCounter: FAQ. https://www.goatcounter.com/help/faq
  32. 32eyeo: Ad-Blocking Report 2026 (PDF). https://eyeo.com/wp-content/uploads/2026/05/eyeo_2026-ad-blocking-report.pdf
  33. 33GitHub: matomo-org/tracker-proxy. https://github.com/matomo-org/tracker-proxy
  34. 34Umami Docs: Bypass ad blockers. https://docs.umami.is/docs/bypass-ad-blockers
  35. 35WebKit: Tracking Prevention in WebKit. https://webkit.org/tracking-prevention/
  36. 36WebKit: CNAME Cloaking and Bounce Tracking Defense. https://webkit.org/blog/11338/cname-cloaking-and-web-privacy/
  37. 37Google: Server-side Tag Manager — custom domain. https://developers.google.com/tag-platform/tag-manager/server-side/custom-domain
  38. 38Matomo Developer: Tracking HTTP API. https://developer.matomo.org/api-reference/tracking-api
  39. 39Matomo FAQ: Build custom segments. https://matomo.org/faq/reporting-tools/build-custom-segments-in-matomo/
  40. 40Matomo FAQ: Requirements for Matomo On-Premise. https://matomo.org/faq/on-premise/matomo-requirements/
  41. 41Matomo Marketplace: QueuedTracking. https://plugins.matomo.org/QueuedTracking
  42. 42GitHub: matomo-org/docker. https://github.com/matomo-org/docker
  43. 43Matomo Marketplace: платные плагины (API, цены на 12.10.2026). https://plugins.matomo.org/api/2.0/plugins?purchase_type=paid
  44. 44Matomo: Pricing. https://matomo.org/pricing/
  45. 45Matomo FAQ: What is a hit. https://matomo.org/faq/general/what-is-a-hit/
  46. 46Matomo: Licences. https://matomo.org/licences/
  47. 47GitHub: matomo-org/matomo. https://github.com/matomo-org/matomo
  48. 48Matomo 6.0.0 Beta: release notes. https://matomo.org/changelog/matomo-6-0-0-beta/
  49. 49Matomo: Changelog. https://matomo.org/changelog/
  50. 50Matomo FAQ: Limitations when importing Google Analytics data. https://fr.matomo.org/faq/general/limitations-when-importing-google-analytics-data/
  51. 51Matomo FAQ: Analytics without consent or cookie banner. https://matomo.org/faq/new-to-piwik/how-do-i-use-matomo-analytics-without-consent-or-cookie-banner/
  52. 52Matomo Forum: Archiving of segment takes a very long time (2025). https://forum.matomo.org/t/archiving-of-segment-take-a-very-long-time/62660
  53. 53Matomo Marketplace: Multi Channel Conversion Attribution. https://plugins.matomo.org/MultiChannelConversionAttribution
  54. 54Matomo Cloud: Data Warehouse Connector. https://matomo.org/faq/cloud/data-warehouse-connector/
  55. 55Umami Docs: Distinct IDs. https://docs.umami.is/docs/distinct-ids
  56. 56Umami v3.0.0 release. https://github.com/umami-software/umami/releases/tag/v3.0.0
  57. 57Umami Discussions #3389: ClickHouse не поддерживается официально. https://github.com/umami-software/umami/discussions/3389
  58. 58Umami: Pricing. https://umami.is/pricing
  59. 59Umami: Releases. https://github.com/umami-software/umami/releases
  60. 60GitHub: umami-software/umami. https://github.com/umami-software/umami
  61. 61Umami Docs. https://docs.umami.is/docs
  62. 62Plausible: Events API. https://plausible.io/docs/events-api
  63. 63GitHub: plausible/analytics. https://github.com/plausible/analytics
  64. 64GitHub: plausible/community-edition. https://github.com/plausible/community-edition
  65. 65Plausible v3.2.1 release. https://github.com/plausible/analytics/releases/tag/v3.2.1
  66. 66Plausible: тарифы (главная страница). https://plausible.io/
  67. 67Plausible: About. https://plausible.io/about
  68. 68Plausible: Self-hosted vs Cloud. https://plausible.io/self-hosted-web-analytics
  69. 69Loopwerk: опыт переезда на self-hosted Plausible (2026). https://www.loopwerk.io/articles/2026/plausible/
  70. 70Plausible: Google Analytics import. https://plausible.io/docs/google-analytics-import
  71. 71PostHog Docs: How PostHog works. https://posthog.com/docs/how-posthog-works
  72. 72PostHog Docs: Self-host. https://posthog.com/docs/self-host
  73. 73GitHub: PostHog/posthog (README). https://github.com/PostHog/posthog
  74. 74PostHog Blog: Sunsetting Kubernetes support for self-hosted PostHog. https://posthog.com/blog/sunsetting-helm-support-posthog
  75. 75PostHog Docs: Batch exports. https://posthog.com/docs/batch-exports
  76. 76PostHog Docs: Self-host open-source disclaimer. https://posthog.com/docs/self-host/open-source/disclaimer
  77. 77PostHog: Pricing. https://posthog.com/pricing
  78. 78PostHog Handbook: Who we do business with. https://posthog.com/handbook/growth/sales/who-we-do-business-with
  79. 79Hacker News: обсуждение self-hosted PostHog (07.2026). https://news.ycombinator.com/item?id=48847302
  80. 80PostHog Docs: Migrate from Google Analytics. https://posthog.com/docs/migrate/google-analytics
  81. 81Rybbit Docs: Architecture. https://rybbit.com/docs/architecture
  82. 82GitHub: rybbit-io/rybbit. https://github.com/rybbit-io/rybbit
  83. 83Rybbit Docs: Self-hosting. https://rybbit.com/docs/self-hosting
  84. 84Rybbit: Pricing. https://rybbit.com/pricing
  85. 85Rybbit Docs: Self-hosted vs Cloud. https://rybbit.com/docs/self-host-vs-cloud
  86. 86Swetrix Blog: Swetrix v5. https://swetrix.com/blog/swetrix-v5
  87. 87GitHub: Swetrix/swetrix. https://github.com/swetrix/swetrix
  88. 88Swetrix Docs: Self-hosting. https://swetrix.com/docs/selfhosting/how-to
  89. 89Swetrix: Pricing. https://swetrix.com/pricing
  90. 90OpenPanel: Migrate from Google Analytics. https://openpanel.dev/guides/migrate-from-google-analytics
  91. 91OpenPanel Docs: Self-hosting. https://openpanel.dev/docs/self-hosting/self-hosting
  92. 92OpenPanel: Pricing. https://openpanel.dev/pricing
  93. 93GitHub: Openpanel-dev/openpanel. https://github.com/Openpanel-dev/openpanel
  94. 94GitHub: openreplay/openreplay. https://github.com/openreplay/openreplay
  95. 95OpenReplay Docs: Deploy with Docker (experimental). https://docs.openreplay.com/en/deployment/deploy-docker/
  96. 96OpenReplay: Pricing. https://openreplay.com/pricing
  97. 97TechCrunch: OpenReplay raises $4.7M (2022). https://techcrunch.com/2022/06/28/openreplay-raises-4-7m-for-its-open-source-tool-to-find-the-bugs-in-sites
  98. 98GoatCounter: Campaigns. https://www.goatcounter.com/help/campaigns
  99. 99GitHub: arp242/goatcounter. https://github.com/arp242/goatcounter
  100. 100GitHub: Open-Web-Analytics. https://github.com/Open-Web-Analytics/Open-Web-Analytics
  101. 101OWA 1.13.0 release notes. https://github.com/Open-Web-Analytics/Open-Web-Analytics/releases/tag/1.13.0
  102. 102Countly: Pricing. https://countly.com/pricing
  103. 103Countly: Licensing FAQ. https://support.countly.com/hc/en-us/articles/360037501312-Countly-Licensing-FAQ
  104. 104GitHub: Countly/countly-server. https://github.com/Countly/countly-server
  105. 105GitHub: usefathom/fathom (Fathom Lite). https://github.com/usefathom/fathom
  106. 106GitHub: d8a-tech/d8a. https://github.com/d8a-tech/d8a
  107. 107awesome-selfhosted: Analytics. https://awesome-selfhosted.net/tags/analytics.html
  108. 108Simo Ahava: Cross-domain tracking with server-side FPID cookie. https://www.simoahava.com/gtm-tips/cross-domain-tracking-server-side-fpid-cookie/
  109. 109ClickHouse Docs: Selecting an insert strategy. https://clickhouse.com/docs/best-practices/selecting-an-insert-strategy
  110. 110ClickHouse Docs: Kafka table engine. https://clickhouse.com/docs/engines/table-engines/integrations/kafka
  111. 111GitHub: jitsucom/jitsu. https://github.com/jitsucom/jitsu
  112. 112GitHub: datalens-tech/datalens. https://github.com/datalens-tech/datalens
  113. 113Metabase: License. https://metabase.com/license
  114. 114Snowplow: Limited Use License FAQ. https://docs.snowplow.io/docs/resources/limited-use-license-faq/
  115. 115Snowplow: Copyright and license по компонентам. https://docs.snowplow.io/docs/resources/copyright-license/
  116. 116SnowcatCloud: OpenSnowcat. https://www.snowcatcloud.com/snowplow/open-source/
  117. 117GitHub: rudderlabs/rudder-server. https://github.com/rudderlabs/rudder-server
  118. 118RudderStack Docs: Control plane setup (open source). https://www.rudderstack.com/docs/get-started/rudderstack-open-source/control-plane-setup/
  119. 119Google: Server-side Tag Manager — manual setup guide. https://developers.google.com/tag-platform/tag-manager/server-side/manual-setup-guide
  120. 120Google: Server-side Tag Manager — sandboxed API. https://developers.google.com/tag-platform/tag-manager/server-side/api
  121. 121ClickHouse Docs: HTTP interface. https://clickhouse.com/docs/interfaces/http
  122. 122ClickHouse Docs: анонимизированный датасет Яндекс Метрики. https://clickhouse.com/docs/get-started/sample-datasets/anon-web-analytics-metrica
  123. 123Snowplow Docs: Self-hosted (оценка стоимости инфраструктуры). https://docs.snowplow.io/docs/get-started/self-hosted/
  124. 124Northflank: повышение цен Hetzner Cloud с 15.06.2026 (таблица новых цен). https://northflank.com/blog/hetzner-cloud-server-price-increases
  125. 125AgentDeals: цены Hetzner Cloud после повышений 2026 года, с IPv4 и ценой диска (проверено 07.10.2026). https://agentdeals.dev/hetzner-pricing-2026
  126. 126Закон Республики Беларусь № 99-З «О защите персональных данных». https://pravo.by/document/?guid=3961&p0=H12100099
  127. 127Нархоз-газета: перечень дополнен государствами — членами ЕАЭС. https://neg.by/novosti/otkrytj/dopolneny-pravila-transgranichnoy-peredachi-personalnykh-dannykh/
  128. 128Постановление Совета Министров РБ № 139 (виртуальные игорные заведения), сайт ОАЦ. https://www.oac.gov.by/public/content/files/files/law/resolutions-sm/2019-139.pdf
  129. 129Lidings: локализация персональных данных — изменения с 01.07.2025. https://www.lidings.com/media/legalupdates/localization_pd_update/
  130. 130Письмо Минцифры России № П25-44929 от 12.05.2025. https://pravo.ppt.ru/pismo/mincifry-rossii/n-p25-44929-316881