# Web-analytics на public-сайте

Sprint 20: в `food-market.public` (Astro marketing-сайт) подключены
placeholder'ы для Google Analytics 4 и Яндекс.Метрики. По умолчанию
оба не активны — в HTML рендерятся `<script data-id="REPLACE_ME">`
маркеры. Аналитика включается через env-vars при сборке Astro.

**Зачем placeholder, а не сразу скрипты:**
- Аналитика на marketing-сайте — это PII (IP-адреса посетителей),
  по GDPR / 152-ФЗ / казахскому ЗоЗПД требует согласия пользователя
  или специальной конфигурации (`anonymize_ip: true` + cookies notice).
- Прод-аккаунт в Google/Yandex заводится отдельно владельцем; коммитить
  его в репо неправильно.

## Google Analytics 4

1. Завести **GA4 property** на https://analytics.google.com.
2. **Admin → Data Streams → Web → Add stream** → ввести URL public-сайта.
3. Скопировать **Measurement ID** вида `G-XXXXXXXXXX`.
4. В `deploy/Dockerfile.public` или в env переменной добавить:
   ```bash
   PUBLIC_GA_ID=G-XXXXXXXXXX
   ```
5. Пересобрать public-image: `cd src/food-market.public && pnpm build`.
6. Открыть https://food-market.kz, проверить в DevTools → Network тегом
   `gtag/js?id=G-XXX`.

## Яндекс.Метрика

1. https://metrika.yandex.com → **Создать счётчик**.
2. Скопировать **ID счётчика** (8-значное число).
3. Env: `PUBLIC_YM_ID=12345678`.
4. Аналогично — пересобрать.

## Проверка что НЕ настроено

Открыть https://food-market.kz, View Source, найти:

```html
<script data-analytics="google" data-id="REPLACE_ME" data-doc="docs/analytics.md" />
<script data-analytics="yandex-metrika" data-id="REPLACE_ME" data-doc="docs/analytics.md" />
```

Если эти строки есть — аналитика **не подключена**. Если вместо них
видны `gtag` или `ym(...)` скрипты — настроено.

## Что НЕ собираем

- Никаких событий на админ-сайте `admin.food-market.kz` — это закрытая
  система для авторизованных пользователей, тут аналитика будет
  собирать persistent activity, что нарушает privacy expectations.
  Если потребуется product-analytics в админке — отдельный обсуждение
  (можем self-host Plausible / PostHog).
- Никаких user-id в Metrika events — только anonymous traffic.
