Своя веб-аналитика вместо Google Analytics: что учесть
Данные о посетителях сайта - это ваши данные о вашем бизнесе, но хранятся они обычно у третьей стороны, которая решает, что вам показывать, сколько хранить и по каким правилам работать. К этому добавился практический вопрос: часть привычных сервисов стала работать в России непредсказуемо, а требования к хранению данных пользователей никуда не делись.
Разберём, что даёт аналитика на своём сервере, сколько ресурсов она реально съедает при разном трафике, чем тяжёлые системы отличаются от лёгких и что важно понимать про персональные данные.
Зачем переносить к себе
Данные остаются у вас. Сырые логи посещений лежат на вашем сервере, в вашей стране. Для проектов с российской аудиторией это ещё и вопрос требований к хранению, см. VPS в России.
Нет усреднения и лимитов. Облачные сервисы на больших объёмах показывают выборку, а не полные данные, и ограничивают глубину хранения. У себя вы храните столько, сколько позволяет диск.
Полный доступ к сырым данным. Можно построить любой отчёт напрямую из базы, а не ждать, пока сервис добавит нужный срез.
Меньше блокировок счётчика. Скрипт со своего домена реже попадает под блокировщики, чем известные внешние адреса, поэтому картина получается полнее.
Обратная сторона предсказуемая: собирать, хранить и обслуживать данные теперь ваша работа. Об этом ниже.
Тяжёлые и лёгкие системы
Выбор сводится к тому, сколько данных вам действительно нужно.
Полноценная система. Богатые отчёты, сегменты, цели, воронки, карты кликов, запись сессий. По возможностям сопоставима с привычными облачными сервисами. Требует базы данных, регулярной обработки и заметных ресурсов, растущих вместе с трафиком.
Лёгкий счётчик. Показывает визиты, источники, страницы и устройства - и больше почти ничего. Работает на минимальных ресурсах, база растёт медленно. Если вам нужны цифры посещаемости, а не глубокий анализ поведения, этого достаточно.
Разбор логов веб-сервера. Самый экономный вариант: данные уже пишутся, нужен только инструмент для отчётов. Не видит поведения внутри страницы и не отличает людей от ботов так же хорошо, но не требует ни счётчика на сайте, ни отдельной базы, см. логи на сервере.
Практическое правило: начинайте с лёгкого варианта. Перейти на тяжёлую систему всегда успеете, а обратный путь означает потерю накопленных данных.
Сколько ресурсов нужно
Нагрузка определяется не размером сайта, а количеством событий, которые вы пишете.
| Трафик сайта | Лёгкий счётчик | Полноценная система |
|---|---|---|
| До 1000 визитов в сутки | 1-2 ГБ памяти | 2-4 ГБ |
| До 10 000 визитов | 2 ГБ | 4-8 ГБ |
| Выше | Считать по объёму событий | Отдельный сервер |
Два момента, которые чаще всего упускают.
База растёт постоянно. Каждый визит - это записи в базе, и они накапливаются. Через год данных становится в разы больше, чем в первый месяц. Заранее решите, сколько хранить сырые данные и когда сворачивать их в агрегаты.
Обработка идёт в фоне. Тяжёлые системы пересчитывают отчёты по расписанию, и это отдельная нагрузка, обычно ночью. На маленьком сервере она может конкурировать с самим сайтом, см. задачи по расписанию.
Отсюда частая рекомендация: держать аналитику отдельно от сайта, если трафик заметный. Тогда всплеск на одном не роняет второе, см. база данных на своём сервере.
Про персональные данные
Аналитика собирает сведения о посетителях, и это влечёт обязанности, которые не исчезают от того, что сервер ваш.
- IP-адрес - персональные данные. Большинство систем умеет их обезличивать, и это стоит включить, если полный адрес вам не нужен.
- Уведомление и согласие. Требования к информированию посетителей о сборе данных зависят от вашей аудитории и не отменяются самостоятельным размещением.
- Срок хранения выбирают осознанно. Держать годами детальные записи о каждом визите рискованнее, чем хранить агрегаты.
- Доступ ограничивают. Панель аналитики содержит данные о поведении пользователей, и она не должна быть открыта всему интернету, см. порты на сервере.
Конкретные требования к вашему проекту определяет юрист, но общее правило простое: самостоятельное хранение добавляет ответственности, а не снимает её.
Что настроить обязательно
- HTTPS. Счётчик на странице загружается с вашего домена, и он должен работать по защищённому соединению, см. SSL-сертификат на VPS.
- Бэкап базы. Данные аналитики невосстановимы: их нельзя собрать задним числом, см. резервное копирование VPS.
- Контроль места на диске. База растёт без остановки, и однажды она упрётся в объём, см. мониторинг VPS.
- Обновления. Веб-приложение, доступное из интернета, обновляют регулярно, см. обновление сервера.
Когда проще остаться в облаке
Честная граница выглядит так.
- Сайт небольшой, и вам хватает базовых цифр из бесплатного сервиса.
- Нет желания администрировать. База, бэкапы и обновления - постоянная небольшая работа.
- Нужны сложные интеграции с рекламными кабинетами, которые в облачных сервисах работают из коробки.
Частый рабочий компромисс: оставить облачный счётчик для рекламных связок и поднять свой для полной картины и хранения сырых данных. Они не мешают друг другу.
Частые ошибки
Ставят тяжёлую систему на младший тариф. Обработка отчётов конкурирует с сайтом, и тормозит всё.
Не ограничивают срок хранения. База растёт, место кончается, скорость падает.
Держат аналитику на том же сервере при заметном трафике. Всплеск посещаемости бьёт по обоим сервисам сразу.
Забывают про бэкап. Потерянные данные аналитики восстановить невозможно в принципе.
Оставляют панель открытой. Данные о поведении пользователей доступны посторонним.
Считают, что своё хранение снимает вопросы по персональным данным. Скорее наоборот: ответственность теперь на вас.
Частые вопросы
Зачем ставить аналитику на свой сервер? Чтобы данные оставались у вас и в вашей стране, не было усреднения и лимитов на хранение, а сырые данные были доступны для любых отчётов.
Сколько ресурсов нужно? Лёгкому счётчику хватает 1-2 ГБ памяти. Полноценной системе нужно от 2-4 ГБ, а при заметном трафике её выносят на отдельный сервер.
Что выбрать: полноценную систему или лёгкий счётчик? Начинайте с лёгкого, если нужны посещаемость и источники. Полноценная оправдана, когда нужны сегменты, воронки и анализ поведения.
Нужен ли отдельный сервер под аналитику? При небольшом трафике нет. Когда посещаемость заметная, аналитику выносят отдельно, чтобы фоновая обработка не мешала сайту.
Снимает ли своё размещение вопросы по персональным данным? Нет. Обязанности по обезличиванию, информированию и срокам хранения остаются, просто теперь отвечаете за них вы.
Можно ли обойтись без счётчика на сайте? Да, разбором логов веб-сервера. Это экономно, но не показывает поведение внутри страницы.
Что будет, если не следить за базой? Она вырастет и заполнит диск. Помогают ограничение срока хранения сырых данных и контроль свободного места.
Нужен сервер под свою аналитику? VPS на NVMe от 459 руб в месяц - диск расширяется без переезда, площадки в Москве, Казани и Амстердаме, данные остаются в выбранной стране. Активация за 3 минуты.