Счётчик Яндекс.Метрики 112563104 доведён до сборки публичного контура #3529

Merged
lekss361 merged 1 commit from feat/metrika-counter-112563104 into main 2026-09-15 16:29:33 +00:00
Owner

Аналитика на публичном контуре стоит с #3436, но собирает ноль: все четыре переменные уходят в сборку пустыми, а пустая строка по контракту фронта убирает тег целиком. Проверено на живом сайте сегодня — в разметке meraocenka.ru нет ни mc.yandex.ru, ни googletagmanager, ни мета-тегов верификации.

Владелец завёл счётчик Метрики 112563104. Этот PR доводит его до сборки.

Что меняется

deploy-tradein.ymlNEXT_PUBLIC_YM_ID=112563104 в обоих блоках build-args: основном и в retry без кеша. Пропустить второй — значит получить сборку без счётчика ровно в тот прогон, когда битый buildcache уронит первый (#2841). Комментарий над блоком переписан под новое состояние: что заведено, что нет и почему номер стоит литералом, а не secret'ом (он и так уходит в разметку каждой страницы, а литерал в диффе можно проверить глазами).

AnalyticsScripts.tsxssr:true в ym(..., "init", ...). Страницы публичного контура рендерятся на сервере, и без флага Метрика считает первый хит по состоянию DOM на момент гидратации, а не по отданной сервером разметке. Флаг выставлен и в самом счётчике на стороне Метрики.

Вебвизор остаётся выключен

В счётчике владелец включил webvisor:true, в коде остаётся false. Это не рассогласование по недосмотру: клиентская настройка перекрывает серверную, и решает та, что в коде.

Вебвизор пишет запись действий посетителя, включая ввод в поля формы. На /estimate человек вводит адрес своей квартиры. Раздел 9 политики конфиденциальности объявляет сбор IP, идентификатора устройства, параметров сессии и UTM-меток — записи действий там нет. Пока раскрытие не покрывает запись, включать нельзя.

Включается одним заходом с двумя правками: фраза про запись действий в п. 9.1 privacy/page.tsx и маскировка полей адреса и телефона через ym-hide-content / data-ym-disable-keys. Отдельной задачей, не здесь.

Что осталось пустым

NEXT_PUBLIC_GA_ID, NEXT_PUBLIC_YANDEX_VERIFICATION, NEXT_PUBLIC_GOOGLE_VERIFICATION — ресурс GA4 и права в поисковых консолях ещё не заведены. Каждое значение вписывается той же правкой в оба блока и требует пересборки образа: это build-time bake, не runtime-правка на проде.

Проверка

tsc --noEmit чист. vitest по mera-public — 18 файлов, 232 теста зелёные. Тестов, завязанных на содержимое init-блока Метрики, в проекте нет.

Счётчик проверяется только после деплоя: NEXT_PUBLIC_* инлайнится в статику на сборке, в текущем образе его нет физически.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VQ8jqr4SFirX5tFLwdSrXh

Аналитика на публичном контуре стоит с #3436, но собирает ноль: все четыре переменные уходят в сборку пустыми, а пустая строка по контракту фронта убирает тег целиком. Проверено на живом сайте сегодня — в разметке `meraocenka.ru` нет ни `mc.yandex.ru`, ни `googletagmanager`, ни мета-тегов верификации. Владелец завёл счётчик Метрики **112563104**. Этот PR доводит его до сборки. ## Что меняется **`deploy-tradein.yml`** — `NEXT_PUBLIC_YM_ID=112563104` в **обоих** блоках `build-args`: основном и в retry без кеша. Пропустить второй — значит получить сборку без счётчика ровно в тот прогон, когда битый buildcache уронит первый (#2841). Комментарий над блоком переписан под новое состояние: что заведено, что нет и почему номер стоит литералом, а не secret'ом (он и так уходит в разметку каждой страницы, а литерал в диффе можно проверить глазами). **`AnalyticsScripts.tsx`** — `ssr:true` в `ym(..., "init", ...)`. Страницы публичного контура рендерятся на сервере, и без флага Метрика считает первый хит по состоянию DOM на момент гидратации, а не по отданной сервером разметке. Флаг выставлен и в самом счётчике на стороне Метрики. ## Вебвизор остаётся выключен В счётчике владелец включил `webvisor:true`, в коде остаётся `false`. Это не рассогласование по недосмотру: клиентская настройка перекрывает серверную, и решает та, что в коде. Вебвизор пишет запись действий посетителя, включая ввод в поля формы. На `/estimate` человек вводит адрес своей квартиры. Раздел 9 политики конфиденциальности объявляет сбор IP, идентификатора устройства, параметров сессии и UTM-меток — записи действий там нет. Пока раскрытие не покрывает запись, включать нельзя. Включается одним заходом с двумя правками: фраза про запись действий в п. 9.1 `privacy/page.tsx` и маскировка полей адреса и телефона через `ym-hide-content` / `data-ym-disable-keys`. Отдельной задачей, не здесь. ## Что осталось пустым `NEXT_PUBLIC_GA_ID`, `NEXT_PUBLIC_YANDEX_VERIFICATION`, `NEXT_PUBLIC_GOOGLE_VERIFICATION` — ресурс GA4 и права в поисковых консолях ещё не заведены. Каждое значение вписывается той же правкой в оба блока и требует пересборки образа: это build-time bake, не runtime-правка на проде. ## Проверка `tsc --noEmit` чист. `vitest` по `mera-public` — 18 файлов, 232 теста зелёные. Тестов, завязанных на содержимое init-блока Метрики, в проекте нет. Счётчик проверяется только после деплоя: `NEXT_PUBLIC_*` инлайнится в статику на сборке, в текущем образе его нет физически. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01VQ8jqr4SFirX5tFLwdSrXh
lekss361 added 1 commit 2026-09-15 16:21:55 +00:00
feat(mera): подключить счётчик Яндекс.Метрики 112563104 к публичному контуру
All checks were successful
CI Trade-In / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 13s
CI / frontend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Successful in 1m55s
CI / openapi-codegen-check (pull_request) Successful in 2m35s
CI / backend-tests (pull_request) Successful in 6m48s
5be5fc005f
Обвязка аналитики стояла на сайте с #3436, но собирала ноль: все четыре
переменные NEXT_PUBLIC_YM_ID/GA_ID/YANDEX_VERIFICATION/GOOGLE_VERIFICATION
уходили в сборку пустыми, а пустая строка по контракту фронта убирает тег
целиком. Владелец завёл счётчик 112563104 — вписан литералом в ОБА блока
build-args деплоя (основной и retry без кеша): пропустить второй значит
получить сборку без счётчика ровно в тот прогон, когда битый buildcache
уронит первый.

Номер счётчика не secret: он и так уходит в разметку каждой страницы, а
литерал в диффе можно проверить глазами.

Добавлен ssr:true в init. Страницы публичного контура рендерятся на сервере,
и без флага Метрика считает первый хит по состоянию DOM на момент
гидратации, а не по отданной сервером разметке. Флаг выставлен и в самом
счётчике на стороне Метрики.

ВЕБВИЗОР ОСТАЁТСЯ ВЫКЛЮЧЕН, хотя в счётчике владелец его включил. Он пишет
ввод в поля формы, а на /estimate человек вводит адрес своей квартиры;
раздел 9 политики конфиденциальности запись действий не объявляет. Включать
следует одним заходом с двумя правками: фраза про запись действий в п. 9.1
privacy/page.tsx и маскировка полей адреса и телефона через ym-hide-content
/ data-ym-disable-keys.

GA4 и коды верификации поисковых консолей остаются пустыми — не заведены.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VQ8jqr4SFirX5tFLwdSrXh
lekss361 merged commit 19418066c2 into main 2026-09-15 16:29:33 +00:00
lekss361 deleted branch feat/metrika-counter-112563104 2026-09-15 16:29:34 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#3529
No description provided.