# Analytics & Event Tracking ManaCore verwendet Umami für Web Analytics. Alle Events werden zu `stats.mana.how` gesendet. ## Umami Dashboard - **URL**: https://stats.mana.how - **Public Stats**: Alle Websites haben Public Sharing aktiviert ## Architektur Web-App Analytics werden über `hooks.server.ts` injiziert (nicht mehr hardcoded in `app.html`). ``` .env.development → UMAMI_WEBSITE_ID_CHAT=xxx ↓ (scripts/generate-env.mjs) apps/chat/apps/web/.env → PUBLIC_UMAMI_WEBSITE_ID=xxx ↓ (process.env in hooks.server.ts) injectUmamiAnalytics(html) → ``` ### Astro Landing Pages ```astro --- // Layout.astro - Script tag is already in
--- ``` ### Development Mode Im Development-Modus (`import.meta.env?.DEV`) werden Events in die Console geloggt: ``` [Analytics] cta_click { location: 'hero' } ``` --- ## Event Naming Conventions 1. **snake_case** für Event-Namen: `task_created`, nicht `taskCreated` 2. **Kurze, beschreibende Namen**: `signup_completed`, nicht `user_has_completed_signup_process` 3. **Konsistente Suffixe**: - `_created`, `_updated`, `_deleted` für CRUD - `_started`, `_completed`, `_canceled` für Prozesse - `_clicked`, `_viewed` für UI-Interaktionen ## Privacy - Keine persönlichen Daten in Events (keine E-Mails, Namen, etc.) - Suchanfragen: Nur Länge wird getracked, nicht der Inhalt - Error Messages: Auf 100 Zeichen gekürzt - GDPR-konform: Umami ist privacy-focused und setzt keine Cookies ## Umami Server - **Host**: Mac Mini (mana-server) - **Container**: `umami` - **Datenbank**: PostgreSQL (shared mit anderen Services) - **Port**: 3200 (intern), via Caddy erreichbar unter stats.mana.how