Задача
Дать владельцу небольшого сайта базовый отчёт о посещаемости и действиях с хранением на собственной инфраструктуре. Для 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-ФЗ. Независимый аудит безопасности и нагрузочное тестирование остаются следующими этапами.