Четыре аналитических источника в одном разделе «Интеграции»
Раньше аналитика была разбросана: Яндекс Вебмастер жил на своей странице, а Метрика, Google Search Console и Google Analytics на ipd.by вообще не были подключены. Теперь все четыре источника собраны в одном разделе «Интеграции» — с вкладками, общей проверкой подключения и показателями за 30 дней. Добавлена шифровка секретов: OAuth-токен Яндекса и ключ сервисного аккаунта Google больше не лежат в базе открытым текстом.
Что сделано в версии 4.50.0
от 05.10.2026Единый раздел «Интеграции»
- Четыре источника на одной странице — Яндекс Вебмастер, Яндекс Метрика, Google Search Console и Google Analytics (GA4) — вкладками на странице «Интеграции и аналитика». У каждой вкладки свой статус подключения, свои поля и пошаговая инструкция с готовыми ссылками на нужные экраны Google Cloud и Яндекса.
- Показатели за 30 дней — Для Вебмастера, Метрики, Search Console и GA4 выводится таблица по дням с итогами. Формат приведён к общему виду: визиты, посетители, просмотры, отказы и средняя длительность сессии считаются одинаково независимо от источника, а у Google дополнительно показываются CTR и средняя позиция.
- Проверка подключения живым запросом — Кнопка «Проверить подключение» делает реальный запрос к API источника и показывает факт: для Вебмастера — число страниц в индексе и ИКС, для Метрики — визиты за неделю, для Search Console — показы и клики, для GA4 — сессии. Ошибка 401 или 403 расшифровывается до понятной причины, а не выводится кодом.
Вебмастер: страница заработала по-настоящему
- Показы и клики перестали быть пустыми — Вебмастер просит два показателя одним параметром, повторяющимся в адресе. Стандартная отправка массива давала пустые индикаторы, и таблица показов выглядела исправной, но оставалась пустой — без единой ошибки. Теперь данные приходят: 578 показов и 36 кликов за последние 30 дней, плюс средняя позиция по дням.
- Проблемы переведены на язык человека — Раньше страница запрашивала у Яндекса отчёт по несуществующему адресу и получала ошибку. Теперь берётся настоящая диагностика сайта, показываются только активные проблемы, а коды вроде DOCUMENTS_MISSING_DESCRIPTION переводятся на русский. По ipd.by Яндекс сейчас видит две: страницы без meta-описания и сайт, известный поиску по нескольким доменам.
- Поиск мусорных адресов в индексе — Добавлена кнопка, которая читает индекс Яндекса и собирает все адреса с параметрами — те самые «?controller=…», из-за которых страница жила в индексе вечно. Среди первых пятисот адресов на ipd.by найдено двадцать таких. Показано, сколько записей проверено и сколько всего в индексе, чтобы было видно, что осмотрен не весь объём.
- Кнопка «Снять адрес с индекса» больше не обещает невозможное — Метода исключения URL из индекса в API Яндекс Вебмастера нет вообще — проверено запросом к живому API. Раньше кнопка вызывала несуществующий метод и всегда отвечала ошибкой. Теперь она ставит адрес в очередь переобхода, а в тексте прямо сказано, что окончательное исключение делается в веб-интерфейсе Яндекса.
- Проверка адреса не путала мусор с чистым — При сравнении адресов терялась строка запроса, поэтому «/news?page=3» считался тем же самым, что «/news». Исправлено: параметры различаются, и отправка на переобход уходит по тому адресу, который указан, а не по обрезанному.
- Адреса ipd.by больше не отвергались — Проверка «свой ли это сайт» брала адрес платформы, то есть внутренний домен. На боевом это означало, что любой адрес ipd.by отклонялся и функции работали вхолостую. Теперь сверяется с доменом, зарегистрированным в Вебмастере.
Подключение к Google
- Доступ по сервисному аккаунту, а не по паролю — Search Console и GA4 подключаются ключом сервисного аккаунта Google: платформа подписывает запросы ключом, пароль от аккаунта Google не используется и нигде не хранится. Ключ один на оба сервиса — отдельный для GA4 не нужен.
- Нужно включить правильный API — Для Search Console — Google Search Console API (searchconsole.googleapis.com), для GA4 — Google Analytics Data API (analyticsdata.googleapis.com). Перепутать их нельзя: в инструкции на вкладке указаны прямые ссылки именно на нужные экраны включения.
- Роли на стороне Google — Сервисному аккаунту нужно выдать права вручную: в Search Console — «Полный доступ» в разделе «Настройки → Пользователи и разрешения», в GA4 — «Читатель» в «Администрирование → Управление доступом к ресурсу». Если этого не сделать, проверка подключения вернёт ошибку доступа.
Безопасность хранения ключей
- Секреты шифруются — OAuth-токен Яндекса и Service Account JSON Google хранятся зашифрованными средствами Laravel. В таблице базы и в SQL-бэкапе лежит неразборчивый текст, поэтому утечка бэкапа не раскрывает доступы к аналитике.
- Секрет не показывается в форме — В форме поле секрета пустое — вместо значения показываются точки и длина. Пустое поле при сохранении означает «оставить как есть», поэтому перезаписать токен случайно невозможно. Удалить секрет можно только отдельной явной кнопкой.
- Идентификаторы остаются читаемыми — Несекретные значения — ID пользователя и хоста Вебмастера, номер счётчика Метрики, ресурс Search Console, Property ID GA4 — остаются обычным текстом: их удобно проверять глазами в phpMyAdmin и не нужно шифровать.
- Смена APP_KEY — Если значение APP_KEY в .env сменится, ранее сохранённые секреты перестанут расшифровываться. В таком случае ключи нужно ввести заново через форму — это делается намеренно, чтобы старая шифровка не маскировала потерю доступа.
Что осталось на месте
- SEO-отчёт Вебмастера — Страница с диагностикой сайта, поиском мусорных адресов в индексе, проверкой конкретного URL и отправкой адреса на переобход осталась отдельной: она нужна для точечной работы с мусорными адресами, а вкладка Вебмастера в «Интеграциях» отвечает за подключение и показатели.
- Переходы в меню и на дашборде — В боковом меню появился пункт «Интеграции и аналитика», карточка на странице «Маркетинг» и кнопка «Поиск» на дашборде теперь ведут на общий раздел.
Почему этому можно доверять
Платформа ipd.by развивается открыто: каждый пункт этой версии — реально выполненная работа с датой и описанием, а вся история изменений хранится в реестре версий на Laravel. Кейсы, на которые ведут ссылки выше, — реальные проекты, а не обещания.
Нужна такая работа над вашим проектом
Версии — это видимая история разработки: платформа растёт, а каждая страница объясняет, что и зачем сделано. Если ищете команду, которая так же профессионально развивает продукт — это как раз то, чем я занимаюсь.