feat(mera): счётчик Метрики на корпоративном аккаунте и подтверждение прав в Вебмастере
All checks were successful
CI Trade-In / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 12s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Successful in 1m59s
CI / openapi-codegen-check (pull_request) Successful in 2m43s
CI / backend-tests (pull_request) Successful in 6m45s

Счётчик 112563104 был заведён подрядчиком на личном аккаунте. На сайт он не
попал ни разу, поэтому терять нечего: вместо переговоров о передаче прав
заведён новый счётчик 112672927 на info@meraocenka.ru — том же аккаунте, где
теперь живёт Вебмастер. Это не вопрос вкуса: счётчик и права на сайт на одном
аккаунте связываются автоматически, на разных — только через письмо
владельцу счётчика, то есть через того же подрядчика.

Вебвизор у нового счётчика выключен на стороне Метрики, а не только в коде,
чтобы две настройки не расходились. Причина прежняя: он пишет ввод в поля
формы, а на /estimate человек вводит адрес своей квартиры, и раздел 9
политики конфиденциальности запись действий не объявляет.

NEXT_PUBLIC_YANDEX_VERIFICATION=82cf8932658461d1 — токен подтверждения прав,
уходит мета-тегом через metadata.verification в mera-public/layout.tsx.
Подтверждение из Вебмастера нажимается после того, как тег окажется на
проде: раньше проверять нечего. Тег остаётся в разметке навсегда, Вебмастер
перепроверяет права и снимает их, если тег исчез.

Оба значения вписаны в ОБА блока build-args, основной и retry-без-кеша.
Комментарии в deploy-tradein.yml и frontend/Dockerfile приведены в
соответствие: они утверждали, что счётчиков нет вовсе.

GA4 и код Search Console остаются пустыми — ещё не заведены.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VQ8jqr4SFirX5tFLwdSrXh
This commit is contained in:
bot-backend 2026-09-15 19:41:11 +03:00
parent 19418066c2
commit da650dcbe9
2 changed files with 26 additions and 13 deletions

View file

@ -511,14 +511,24 @@ jobs:
# NEXT_PUBLIC_APP_VERSION/BUILD_SHA/BUILD_DATE — build-time (Next.js
# инлайнит NEXT_PUBLIC_* в статику, runtime env их не подхватит,
# см. frontend/Dockerfile комментарий у соответствующих ARG).
# NEXT_PUBLIC_YM_ID — счётчик Яндекс.Метрики публичного контура,
# заведён владельцем 15.09.2026. Литерал, а не secret: номер
# счётчика и так уходит в разметку каждой страницы, прятать нечего,
# а secret'ом его нельзя проверить глазами в диффе.
# NEXT_PUBLIC_GA_ID/YANDEX_VERIFICATION/GOOGLE_VERIFICATION —
# ПОКА ПУСТЫЕ: ресурс GA4 и права в поисковых консолях ещё не
# заведены. Пустая строка = соответствующий тег НЕ рендерится
# вообще (контракт фронта, см. тот же Dockerfile-комментарий).
# NEXT_PUBLIC_YM_ID — счётчик Яндекс.Метрики публичного контура.
# Живёт на корпоративном аккаунте info@meraocenka.ru, там же, где
# Вебмастер: счётчик и права на сайт на одном аккаунте связываются
# автоматически, на разных — только через письмо-подтверждение
# владельцу счётчика. Прежний номер 112563104 был заведён на личном
# аккаунте подрядчика и на сайт не попал ни разу, данных не потерял.
# NEXT_PUBLIC_YANDEX_VERIFICATION — токен подтверждения прав в
# Яндекс.Вебмастере, отдаётся мета-тегом (mera-public/layout.tsx).
# Токен привязан к аккаунту: у другого аккаунта он будет свой.
# Удалять его после подтверждения НЕЛЬЗЯ — Вебмастер перепроверяет
# права и снимает их, если тег исчез.
# Литералы, а не secret'ы: оба значения и так уходят в разметку
# каждой страницы, прятать нечего, а secret'ом их не проверить
# глазами в диффе.
# NEXT_PUBLIC_GA_ID/GOOGLE_VERIFICATION — ПОКА ПУСТЫЕ: ресурс GA4 и
# права в Search Console ещё не заведены. Пустая строка =
# соответствующий тег НЕ рендерится вообще (контракт фронта, см.
# тот же Dockerfile-комментарий).
# ЛЮБОЕ из этих значений вписывать литералом СЮДА И в retry-блок
# ниже — оба обязательны, иначе ретрай без кеша уедет без счётчика.
# Требует пересборки образа: build-time bake, не runtime-правка.
@ -528,9 +538,9 @@ jobs:
NEXT_PUBLIC_APP_VERSION=${{ needs.changes.outputs.app_version }}
NEXT_PUBLIC_BUILD_SHA=${{ needs.changes.outputs.build_sha }}
NEXT_PUBLIC_BUILD_DATE=${{ needs.changes.outputs.build_date }}
NEXT_PUBLIC_YM_ID=112563104
NEXT_PUBLIC_YM_ID=112672927
NEXT_PUBLIC_GA_ID=
NEXT_PUBLIC_YANDEX_VERIFICATION=
NEXT_PUBLIC_YANDEX_VERIFICATION=82cf8932658461d1
NEXT_PUBLIC_GOOGLE_VERIFICATION=
cache-from: type=registry,ref=${{ env.IMAGE_FRONTEND }}:buildcache
cache-to: type=registry,ref=${{ env.IMAGE_FRONTEND }}:buildcache,mode=max
@ -555,9 +565,9 @@ jobs:
NEXT_PUBLIC_APP_VERSION=${{ needs.changes.outputs.app_version }}
NEXT_PUBLIC_BUILD_SHA=${{ needs.changes.outputs.build_sha }}
NEXT_PUBLIC_BUILD_DATE=${{ needs.changes.outputs.build_date }}
NEXT_PUBLIC_YM_ID=112563104
NEXT_PUBLIC_YM_ID=112672927
NEXT_PUBLIC_GA_ID=
NEXT_PUBLIC_YANDEX_VERIFICATION=
NEXT_PUBLIC_YANDEX_VERIFICATION=82cf8932658461d1
NEXT_PUBLIC_GOOGLE_VERIFICATION=
cache-to: type=registry,ref=${{ env.IMAGE_FRONTEND }}:buildcache,mode=max
tags: |

View file

@ -40,7 +40,10 @@ ENV NEXT_PUBLIC_ENABLE_PREVIEW=$NEXT_PUBLIC_ENABLE_PREVIEW
# соответствующий script/meta отсутствует в разметке) — так решает
# frontend-код, потребляющий эти env (Dockerfile сам их не читает).
#
# СЧЁТЧИКОВ ПОКА НЕТ — владелец заведёт их позже. Когда появятся номера:
# ЗАВЕДЕНЫ (15.09.2026, аккаунт info@meraocenka.ru): NEXT_PUBLIC_YM_ID —
# счётчик Метрики, NEXT_PUBLIC_YANDEX_VERIFICATION — токен подтверждения прав
# в Вебмастере. Пустыми остаются GA_ID и GOOGLE_VERIFICATION.
# Когда появятся остальные номера — порядок тот же:
# 1) вписать литералом в build-args джоба build-frontend
# (.forgejo/workflows/deploy-tradein.yml) — В ОБОИХ блоках, основном
# И retry-без-кеша, иначе ретрай молча уедет без счётчика;