К проектам

Диванная аналитика: разработка локального счётчика

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

Задача

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

Архитектура

Оба пакета используют собственный счётчик и PHP-ядро проверки данных. WordPress хранит агрегаты в отдельных таблицах своей базы, самостоятельный пакет использует SQLite. Разделены публичный приём событий и закрытый просмотр отчётов.

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

Что реализовано

  • Включение после согласия, отзыв и DNT/GPC.
  • Отчёты за выбранные даты внутри срока хранения, быстрые периоды и CSV.
  • Совместные фильтры по странице, источнику, экрану, кампании, каналу, объявлению, фразе и событию.
  • Размеченные ссылки и источники мессенджеров, конструктор UTM в кабинете.
  • Отдельное включение переданных фраз с пояснением границ точности.
  • Адаптивные таблицы, графики и настройки для телефона, планшета и компьютера.
  • Сравнение с предыдущим равным периодом, если он целиком остаётся в пределах хранения.
  • Распределение просмотров по дням и по 24 часам суток UTC.
  • Срок хранения, очистка по расписанию и ручное удаление.
  • Пароль и CSRF для отдельной панели; права администратора и nonce для WordPress.
  • Проверка Origin, состава и размера запроса, ограничения частоты.
  • Установочные ZIP, отдельные инструкции WordPress/PHP и описание обработки данных.
  • Опциональный Tilda-адаптер для подтверждённых отправок форм после согласия.
  • Защищённый приём серверных событий CRM с ключом, allowlist и ограничением частоты; адаптер CRM настраивает владелец.
  • Галерея настоящего тестового кабинета и два видеообзора с оригинальной музыкой.

Переход с первой версии

Суточные итоги 0.1 сохраняются. В новых записях час UTC связан с сочетанием меток страницы, источника, экрана, кампании и события. Поэтому отчёт можно сузить сразу по нескольким признакам. Выбор события показывает его количество с учётом остальных фильтров; графики просмотров к этой выборке не относятся. Идентификаторов посетителей и индивидуальной истории по-прежнему нет.

В версии 0.3 добавлены канал, объявление и переданная фраза. Метки перехода могут сохраняться во вкладке до 30 минут после согласия, чтобы учитывать действия на внутренних страницах. При отзыве согласия они очищаются. Поисковик может скрыть запрос; расходы и показы рекламных площадок счётчик не получает. У старых записей нет этой детализации. Совместные фильтры и почасовой профиль строятся по новым данным; прошлые часы и связи между метками не восстанавливаются.

Разработка и моя роль

Задал сценарий продукта, два способа установки и требования к локальному хранению. Реализация подготовлена с помощью Codex: frontend, PHP-ядро, WordPress-интеграция, самостоятельный пакет и проверки.

Это собственный проект на стадии beta. Показатели внедрения, роста конверсии и клиентские результаты пока не заявляются. Пакеты доступны для тестовой установки.

Ограничения

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

Размещение в РФ, основание, документы, уведомления и журналы сервера проверяет владелец. Установка не гарантирует соответствия 152-ФЗ. Независимый аудит безопасности и нагрузочное тестирование остаются следующими этапами.