- Enhanced tests to ensure consistent messageId generation for legacy inbox rows lacking a messageId. - Updated test descriptions for better clarity regarding the new messageId handling. - Adjusted test expectations to align with the updated behavior of relaying legacy inbox rows with generated messageIds.
3.7 KiB
3.7 KiB
Итерация 04 — аналитика (GA4), SEO, SSG и деплой на Render
Цель
Подключить аналитику без “магии” и сделать финальную полировку под SSG + Render.
Аналитика (GA4)
Требования
- GA4, события:
download_clickdownload_page_viewlanguage_changetheme_changefaq_opencta_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,totheme_change:from,tofaq_open:item_idcta_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 на всех локалях.
- Статические ассеты оптимизированы (разумные размеры).
- Нет трекинга до пользовательского действия, если потребуется баннер согласия (это заранее решаем политикой проекта).