=== Privacy Analytics RU ===
Contributors: cmediatech
Tags: статистика, аналитика, 152-ФЗ, яндекс метрика, cookie
Requires at least: 5.8
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 1.8.6
License: GPLv2 or later

Статистика посещений без cookie и без хранения IP — видно всех посетителей, включая отказавшихся от cookie. Плюс данные Яндекс Метрики по API.

== Description ==

Когда счётчики запускаются только после согласия на cookie, посетителей, которые отказались, не видно вовсе. Privacy Analytics RU считает всех — обезличенно:

* не ставит cookie и ничего не пишет в браузер;
* не хранит IP-адрес и строку браузера — только тип устройства, браузер, ОС, ширину экрана;
* повторные визиты в течение суток узнаёт по хэшу с суточной солью, которая удаляется в конце дня;
* страницы, источники (поиск, соцсети, сайты, реклама, UTM), отказы, время на сайте;
* цели без cookie: звонки, почта, мессенджеры, скачивания, формы, свои цели через data-pa-goal;
* доля согласий на cookie;
* для согласившихся — объединение с Метрикой по ClientID: город, новые и вернувшиеся, путь по сайту;
* Яндекс Метрика по API: визиты и цели — на одном графике со своим счётчиком;
* портрет аудитории из Метрики: пол и возраст, интересы, география, поисковые фразы, поведение групп — только сводные цифры, без данных отдельных людей;
* скорость сайта у реальных посетителей (Core Web Vitals: LCP, INP, CLS, TTFB) по страницам и устройствам;
* поведение: поиск по сайту и запросы без результатов, страницы 404 и откуда на них попадают, переходы на другие сайты, брошенные формы, глубина прокрутки;
* пометки на графиках (публикация статьи отмечается сама), визиты по часам и дням недели;
* тревоги на почту, в Telegram или вебхук: сайт не отвечает, пропали визиты, резко упал или вырос трафик, пропали заявки;
* боты и ИИ: поисковые роботы, ИИ-краулеры, ИИ-поиск и ИИ-агенты, SEO-сервисы — что они читают, какие ошибки получают; учёт и через WordPress, и из журнала веб-сервера (видны заходы, отданные из кэша); переходы людей из ChatGPT, Алисы и других ассистентов;
* расходы Директа по кампаниям (из Метрики): цена визита и цели;
* A/B-тест вида баннера Cookie Consent Mascot: какой вид чаще получает согласие, с проверкой значимости;
* отчёт для клиента по ссылке (без входа в админку, с печатью в PDF) и ежемесячный отчёт на почту;
* панель нескольких сайтов: посещаемость, цели и доступность всех сайтов на одной вкладке, внешний сторож с тревогами;
* откуда заявки: конверсия по источникам, страницам входа и устройствам, пути к цели;
* отчёт по статьям блога: первые 7 и 30 дней, дочитывание, поиск и ИИ, переходы дальше по сайту;
* карта кликов без cookie: на что нажимают, где жмут мимо ссылок и несколько раз подряд;
* подсказки «Что изменилось» на обзоре и в письме;
* виджет в консоли, еженедельный отчёт на почту, выгрузка в CSV.

Лучше всего работает в паре с бесплатным баннером согласия Cookie Consent Mascot (https://cmediatech.ru/cookie-consent-mascot/): из него плагин узнаёт решение посетителя. Без баннера доля согласий и связь с Метрикой недоступны, остальная статистика работает.

== Changelog ==

= 1.8.6 =
* Роботы в браузере больше не считаются посетителями. Сервисы проверки ссылок (соцсети, планировщики публикаций) открывают страницу настоящим браузером на долю секунды — раньше каждый пост давал «визит» в 0 секунд без ответа в баннере. Теперь визит без признаков человека (ни секунды на странице, ни отрисовки, ни действий, ни решения в баннере) через 15 минут переносится в «Боты и ИИ» — строка «Робот в браузере».
* Трекер сообщает о живом посетителе через 2 секунды на странице или при первом касании, клике, нажатии клавиши — даже если сигнал ухода со страницы потеряется.

= 1.8.5 =
* «Боты и ИИ»: если на сайте нет llms.txt, подсказка ведёт на наш бесплатный плагин LLMs.txt RU, который собирает файл автоматически.
* SEOJuice определяется как SEO-сервис.

= 1.8.4 =
* Исправлено: в 1.8.3 администратор сайта в консоли WordPress мог попасть в «Сканеры уязвимостей» как «сканер под видом браузера». Такие записи удаляются при обновлении.

= 1.8.3 =
* «Боты и ИИ»: сканеры уязвимостей выделены отдельно — что искали (чужие PHP-файлы, резервные копии, .env, .git, панели БД), кто, и предупреждение, если сканер получил ответ 200 на файл, которого быть не должно. Сканеры, которые представляются обычным браузером, тоже учитываются.
* Адреса, которые испортил сам бот (русские буквы заменены на «?», двойное кодирование), — отдельной карточкой.
* Доля ошибок для ботов считает только ошибки сайта: сканеры и кривые адреса ботов в неё больше не входят. Уже записанные заходы сканеров размечаются после обновления.

= 1.8.2 =
* «Согласия» → «Виды баннера»: варианты официальной таблички из Cookie Consent Mascot 1.6 (раскладка и цвета) и свои персонажи подписаны понятными названиями.

= 1.8.1 =
* Меню статистики собрано в семь разделов — Обзор, Страницы, Источники, Аудитория, Цели, Согласия, Настройки — и снова помещается в один ряд. Вкладки внутри раздела — во втором ряду; адреса вкладок прежние.

= 1.8.0 =
* «Цели» → «Откуда заявки»: какие источники, сайты, страницы входа и устройства приводят к целям, с конверсией; страницы, которые смотрели перед целью, где цель срабатывает, типичные пути к ней. Можно смотреть по любой цели или по одной.
* Новая вкладка «Статьи»: как записи блога набирают просмотры в первые 7 и 30 дней, график первых 30 дней для последних статей, время чтения, сколько дочитывают, доля входов из поиска и из ИИ, идут ли читатели дальше по сайту и доходят ли до целей.
* Новая вкладка «Клики» — карта кликов без cookie, по всем посетителям: страница сайта с подсвеченными элементами и числом нажатий, отдельно для компьютеров и смартфонов. Места, где нажимают мимо ссылок, и «яростные» клики (несколько нажатий подряд). Собираются только адрес элемента и подпись ссылки или кнопки — без координат и текста полей. Отключается в настройках.
* «Обзор» и письмо: блок «Что изменилось» — плагин сам сравнивает период с предыдущим и пишет о заметных переменах: посещаемость, источники, страницы, переходы из поиска, новые сайты-источники, цели, брошенные формы, битые ссылки, поиск по сайту без результатов.
* Письмо-отчёт: сравнение показателей снова подписано «к прошлой неделе» (раньше всегда было «к прошлому периоду»).
* Ссылки на страницы в новых отчётах работают и на сайтах, где WordPress стоит в подпапке.

= 1.7.4 =
* Обзор: под графиком визитов — пояснение, почему Метрика может показывать больше визитов, чем наш счётчик (тот же счётчик Метрики на других сайтах, администраторы в аккаунте).

= 1.7.3 =
* Просмотр считается, только когда страницу действительно видно. Вкладки, открытые в фоне и закрытые не глядя, и предзагрузка страниц браузером (Chrome, Яндекс Браузер) больше не дают визитов в 0 секунд и лишних «не ответили» в согласиях.
* «Согласия»: новый блок «Кто не ответил» — отдельно те, кто ушёл раньше, чем мог заметить баннер, и те, кто смотрел сайт, но баннер не нажал. Главная цифра — сколько ответили среди тех, кто баннер видел.
* Сравнение видов баннера (A/B-тест) больше не учитывает быстрые уходы без ответа: сравнение точнее при том же числе визитов.
* В письме-отчёте — доля ответивших среди тех, кто видел баннер.

= 1.7.2 =
* Новая вкладка «Люди из ИИ»: посетители, пришедшие по ссылкам из ChatGPT, Claude, Perplexity, Gemini, Алисы и других ассистентов. На какие страницы ведут ассистенты, путь по сайту, время, прокрутка, цели, устройства, сравнение с сайтом и поиском, последние визиты (обезличенно) и связка «ИИ открывал страницу — люди пришли».

= 1.7.1 =
* Боты и ИИ: если у сайта включён open_basedir, проверка из админки больше не отключает журнал, который успешно читает крон сервера. Для open_basedir плагин показывает готовую строку для настроек PHP-FPM.

= 1.7.0 =
* Новая вкладка «Боты и ИИ»: поисковые роботы, ИИ-краулеры (GPTBot, ClaudeBot, Bytespider…), ИИ-поиск (OAI-SearchBot, PerplexityBot, YandexAdditional), ИИ-агенты по запросу человека (ChatGPT-User, Claude-User, подписанные агенты с Signature-Agent), SEO-сервисы, превью в соцсетях. Что читают ИИ и поисковики, кто запрашивает robots.txt, карту сайта и llms.txt, какие ошибки получают боты.
* Два источника: через WordPress и из журнала веб-сервера — он видит и заходы, отданные из кэша страниц. Журнал ищется сам; если его нет или к нему нет доступа, плагин объясняет почему и даёт готовую настройку nginx/Apache и письмо в поддержку хостинга.
* Новый источник трафика «ИИ-ассистенты»: люди, пришедшие по ссылкам из ChatGPT, Perplexity, Claude, Gemini, Алисы, GigaChat, DeepSeek и других (в том числе по метке utm_source=chatgpt.com).
* Про ботов хранится только имя, группа, страница, код ответа и время — без IP и User-Agent.

= 1.6.2 =
* Telegram через прокси: в настройках тревог можно указать HTTP(S)- или SOCKS5-прокси (с логином и паролем). Прокси хранится вместе с секретами и используется только для запросов к Telegram.

= 1.6.1 =
* Разовый сетевой сбой при самопроверке облегчённой точки приёма больше не переключает сбор на REST API на сутки: проверка повторяется через час.

= 1.6.0 =
* Отчёт для клиента по ссылке: только чтение, без входа в админку; периоды, графики с пометками, страницы, источники, цели; печать и сохранение в PDF.
* Ежемесячный отчёт 1-го числа за прошлый месяц — на указанные адреса, со ссылкой на подробный отчёт.
* Панель нескольких сайтов: вкладка «Сайты» со сводкой по всем сайтам (визиты, цели, последний визит, время ответа) и внешний сторож: тревога, если сайт не отвечает, даже когда на нём остановилось всё.

= 1.5.0 =
* Тревоги: сайт не отвечает или отдаёт пустую страницу, целый час нет визитов, посещаемость за день упала вдвое или выросла в 2,5 раза, за день ни одной цели. Проверка каждые 15 минут.
* Каналы уведомлений: почта, Telegram (через прокси HTTP/SOCKS5 или своё зеркало Bot API) и вебхук. Недельная сводка — тоже в Telegram и вебхук.
* «Источники»: реклама в Директе по кампаниям — расход, клики, визиты, цена визита и цели (из Метрики).
* «Согласия»: виды баннера — доля согласий по каждому виду Cookie Consent Mascot и вывод, значима ли разница (A/B-тест в Cookie Consent Mascot 1.5).

= 1.4.0 =
* Вкладка «Скорость»: Core Web Vitals (LCP, INP, CLS, TTFB) у реальных посетителей — по сайту, устройствам и страницам, с оценкой «хорошо / можно лучше / плохо».
* Вкладка «Поведение»: поиск по сайту (и запросы без результатов), страницы 404 с источниками, переходы на другие сайты, брошенные формы, глубина прокрутки.
* Пометки на графике визитов: публикация статьи отмечается автоматически, свои пометки — вручную.
* «Аудитория»: визиты по часам и дням недели по собственной статистике.
* «Согласия»: чем отличаются согласившиеся и отказавшиеся — по источникам, страницам входа и устройствам.
* Самопроверка точки приёма больше не выполняется во время сохранения настроек и запросов посетителей — только в фоне.
* Отчёт за сегодня кэшируется на 5 минут; в настройках показан размер таблиц статистики.
* Каждый новый вид данных можно отключить в настройках.

= 1.3.2 =
* Портрет аудитории: короткие названия дней недели (Пн, Вт…).

= 1.3.1 =
* Портрет аудитории: цвета пола закреплены за значениями, в графике интересов подписаны все категории.

= 1.3.0 =
* Новая вкладка «Портрет аудитории»: пол и возраст, интересы, страны и города, поисковые фразы, часы и дни недели, поведение групп (отказы, глубина, время, конверсия) — сводные отчёты Метрики без данных отдельных людей.
* Если на сайте нет Cookie Consent Mascot, плагин предлагает установить или активировать его в один клик; при другом баннере согласия — объясняет, какие разделы недоступны.

= 1.2.1 =
* Данные Метрики по посетителю сводятся из всех его визитов: пустой город не затирает известный, дата первого визита — самая ранняя.

= 1.2.0 =
* Объединение с Яндекс Метрикой для посетителей, давших согласие: к их визитам привязывается ClientID Метрики, город, дата первого визита и источник подтягиваются из Метрики.
* Новая вкладка «Согласившиеся»: уникальные посетители за период, новые и вернувшиеся, путь по сайту, города.
* Смена решения в баннере на открытой странице сразу попадает в статистику: отказ на первой странице больше не считается «не ответил».
* При отзыве согласия связь визита с Метрикой удаляется.
* Блок автора в настройках.

= 1.1.1 =
* Согласие на cookie в отчётах считается по последнему решению посетителя в визите (раньше согласие имело приоритет над отказом).

= 1.1.0 =
* Облегчённая точка приёма событий: WordPress загружается без темы и плагинов — в разы меньше нагрузка на сервер. Включена по умолчанию.
* Самопроверка облегчённой точки при обновлении и раз в сутки; если хостинг её не пропускает, события автоматически идут через REST API.
* Выбор точки приёма в настройках.
* Сайты за прокси: константа PARU_IP_HEADER в wp-config.php.
* Подписи из Яндекс Метрики — на русском.

= 1.0.2 =
* Кнопка «Получить токен» явно указывает страницу Яндекса с токеном — работает, даже если у OAuth-приложения есть другие адреса возврата.

= 1.0.1 =
* Подсказка на вкладке «Обзор», пока данных ещё нет: откуда берутся визиты и почему не видны свои.

= 1.0.0 =
* Первая версия.
