## Итерация 04 — аналитика (GA4), SEO, SSG и деплой на Render ### Цель Подключить аналитику без “магии” и сделать финальную полировку под SSG + Render. ### Аналитика (GA4) #### Требования - GA4, события: - `download_click` - `download_page_view` - `language_change` - `theme_change` - `faq_open` - `cta_view_features_click` #### План - Конфиг через env (например `NUXT_PUBLIC_GA_ID`). - Единая утилита/композабл `useAnalytics()`: - гарантирует отсутствие вызовов на сервере - нормализует payload (platform, arch, locale, version) - События из UI триггерятся централизованно (минимум дублей). #### Важно Я не могу “привязать к своему гугл аккаунту” или создать property сам — нужен Measurement ID/доступы от владельца. В плане и коде делаем всё так, чтобы подключение было 1 строкой после получения ID. #### Минимальный контракт событий (чтобы аналитика была полезной) - `download_click`: `os`, `arch`, `variant`, `version` (если есть), `locale`, `source` (hero/download-page/footer) - `language_change`: `from`, `to` - `theme_change`: `from`, `to` - `faq_open`: `item_id` - `cta_view_features_click`: `source` - Все события: без персональных данных, без текста транскрипций, без key-материалов (приватность соблюдаем). ### SEO - Meta теги по языкам, og/twitter, robots/sitemap. - Проверка корректности canonical/alternate (i18n). - Семантика: один `h1` на страницу, корректные заголовки секций (`h2/h3`), читаемая структура. - Изображения: `alt`, `width/height` чтобы не было CLS. ### SSG - Проверка, что все страницы генерятся. - Нет runtime зависимостей от SSR. - Это именно **SSG (пререндер страниц)**, а не SPA: важно для SEO. - Отдельно проверяем генерацию i18n-роутов (все локали, которые включены). ### Render - Документируем шаги деплоя под static hosting Render: - build command - publish directory - переменные окружения (GA ID) - Документируем кэширование статических ассетов (правильные headers на стороне Render). ### Критерии готовности - События отправляются один раз и с корректными параметрами. - SSG сборка стабильна. - Документирован деплой на Render. - Lighthouse (desktop/mobile) без красных метрик на главной (особенно LCP/CLS). ### Чеклист перепроверки (2–3 прохода) - События: нет лишних/дублирующихся триггеров. - SEO: title/description на всех локалях. - Статические ассеты оптимизированы (разумные размеры). - Нет трекинга до пользовательского действия, если потребуется баннер согласия (это заранее решаем политикой проекта).