▤ Руководства

Посещаемость (Яндекс.Метрика, GA4)

Содержание

Зачем: связать изменения в поиске с реальным трафиком. SEOMaster не хранит визиты — только итоги по дням (визиты, посетители, визиты из поиска), 120 дней.

Подключение (/traffic)

  • Яндекс.Метрика — OAuth-токен с правом metrika:read. API: management/v1/counters, stat/v1/data (метрики ym:s:visits, ym:s:users, измерение ym:s:date; органика — фильтр ym:s:lastTrafficSource=='organic').
  • GA4 — сервисный аккаунт (JSON), роль «Просмотр» в ресурсе, включённые Analytics Data API и Analytics Admin API. Органика — канал Organic Search.
  • Сайт привязывается к счётчику на странице (при подключении Метрики — автоматически по адресу сайта; у GA4 адреса нет, привязка вручную).
  • LiveInternet (экспериментально) — официального API нет. Берётся публичная страница liveinternet.ru/stat/САЙТ/index.html?date=…;period=month, таблица «по дням» разбирается по заголовкам столбцов (визиты / посетители / просмотры / поисковые системы). Открытая статистика читается без ключей. Закрытая — по паролю счётчика (у каждого счётчика свой, вводится на странице «Посещаемость»): вход — POST на /stat/САЙТ/index.html с полями url, password, ok; из ответа берётся cookie pwd, с ней запрашиваются таблицы. Если вход не срабатывает, вместо пароля можно вписать значение cookie pwd из браузера: hash:ЗНАЧЕНИЕ (такая cookie может устареть). Порядок входа проверен только на подставных ответах. Вёрстка не проверялась на живом счётчике и может измениться — тогда используйте CSV.
  • Загрузка CSV — для любого счётчика: столбец даты (ГГГГ-ММ-ДД или ДД.ММ.ГГГГ) и показатель. Приоритет «визитов»: визиты/сеансы → посетители → просмотры; необязательный столбец «из поисковых систем» даёт органику.

Что считается

  • Окно: 7 завершённых суток против предыдущих 7 (сегодняшний день не берётся). Нужно не меньше 5 дней данных в каждом окне.
  • Событие traffic-drop (дедупликация 72 ч): органика раньше ≥ 100 визитов за неделю и упала на ≥ 30%. Класс сигнала — search.traffic_drop, вместе с падением кликов и потерянными запросами складывается в один инцидент.

Cron

  • bin/traffic.php — раз в 6 часов; bin/links.php — обновление ссылок раз в сутки (грузит только сайты, чья последняя загрузка из сервиса старше 6 суток).

Ограничения

Форматы ответов Метрики и GA4 проверены на подставных ответах, не на живых аккаунтах. В Метрике «из поиска» = последний источник «organic» (может отличаться от «первого источника» в её отчётах).

Обновление из любого источника (v132)

Кнопка «Обновить из любого источника» на странице посещаемости (видна, когда подключено больше одного источника): для каждого сайта роутер возможности traffic (Providers\Router) пробует привязанные источники по приоритету — Метрика, GA4, LiveInternet — и при отказе (ошибка, закончившийся доступ) берёт следующий. Сайты обновляются независимо; в итоге видно, откуда взяты данные и по каким сайтам не ответил ни один источник. Код — Traffic\Sync::runAuto() и runHost().