mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-28 12:37:43 +02:00
chore(analytics): Umami aus Legal/Cookies/Features/Schema (Welle C)
datenschutz.md + chat cookies.astro → 'kein Web-Analytics' (akkurat), features.astro Marketing entschärft, manascore-config-Schema-Kommentare, shared-utils index/web-vitals Kommentare, apps/picture/docs/UMAMI_SETUP.md gelöscht. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
f81214043f
commit
394e520a26
1 changed files with 0 additions and 242 deletions
|
|
@ -1,242 +0,0 @@
|
|||
# Umami Analytics Setup
|
||||
|
||||
This document describes how to set up Umami Analytics for the Picture platform.
|
||||
|
||||
## Overview
|
||||
|
||||
Umami Analytics has been integrated into both the landing page and web app to provide privacy-friendly analytics tracking.
|
||||
|
||||
## Architecture
|
||||
|
||||
### Landing Page (Astro)
|
||||
|
||||
- **Location**: `apps/landing/src/layouts/Layout.astro`
|
||||
- **Framework**: Astro
|
||||
- **Integration**: Script tag in `<head>` section
|
||||
|
||||
### Web App (SvelteKit)
|
||||
|
||||
- **Location**: `apps/web/src/routes/+layout.svelte`
|
||||
- **Framework**: SvelteKit
|
||||
- **Integration**: Script tag in `<svelte:head>` section
|
||||
|
||||
## Configuration
|
||||
|
||||
Both apps use environment variables for Umami configuration:
|
||||
|
||||
```bash
|
||||
PUBLIC_UMAMI_URL=https://your-umami-instance.com
|
||||
PUBLIC_UMAMI_WEBSITE_ID=your-website-id
|
||||
```
|
||||
|
||||
### Setting up Environment Variables
|
||||
|
||||
#### For Landing Page
|
||||
|
||||
Create or update `apps/landing/.env`:
|
||||
|
||||
```bash
|
||||
PUBLIC_UMAMI_URL=https://analytics.yourdomain.com
|
||||
PUBLIC_UMAMI_WEBSITE_ID=your-landing-website-id
|
||||
```
|
||||
|
||||
#### For Web App
|
||||
|
||||
Create or update `apps/web/.env`:
|
||||
|
||||
```bash
|
||||
PUBLIC_UMAMI_URL=https://analytics.yourdomain.com
|
||||
PUBLIC_UMAMI_WEBSITE_ID=your-webapp-website-id
|
||||
```
|
||||
|
||||
> **Note**: You can use the same Umami instance for both apps, but you should create separate website IDs in Umami to track them independently.
|
||||
|
||||
## Features
|
||||
|
||||
### Privacy-First Tracking
|
||||
|
||||
- ✅ **Do Not Track**: Respects browser DNT settings via `data-do-not-track="true"`
|
||||
- ✅ **No Cookies**: Umami doesn't use cookies by default
|
||||
- ✅ **GDPR Compliant**: No personal data collection
|
||||
- ✅ **Conditional Loading**: Only loads when environment variables are set
|
||||
|
||||
### Automatic Tracking
|
||||
|
||||
The integration automatically tracks:
|
||||
|
||||
- Page views
|
||||
- Referrers
|
||||
- Browser/device information (anonymized)
|
||||
- Geographic location (country level only)
|
||||
|
||||
## Setup Steps
|
||||
|
||||
### 1. Set Up Umami Instance
|
||||
|
||||
You have two options:
|
||||
|
||||
#### Option A: Use Umami Cloud
|
||||
|
||||
1. Sign up at [umami.is](https://umami.is)
|
||||
2. Create a new website for your landing page
|
||||
3. Create another website for your web app
|
||||
4. Copy the website IDs
|
||||
|
||||
#### Option B: Self-Host Umami
|
||||
|
||||
1. Follow the [Umami self-hosting guide](https://umami.is/docs/install)
|
||||
2. Deploy Umami to your preferred platform
|
||||
3. Create websites for both apps
|
||||
4. Note your instance URL
|
||||
|
||||
### 2. Configure Environment Variables
|
||||
|
||||
#### Development
|
||||
|
||||
1. Copy `.env.example` to `.env` in both `apps/landing` and `apps/web`
|
||||
2. Add your Umami credentials:
|
||||
```bash
|
||||
PUBLIC_UMAMI_URL=https://your-umami-instance.com
|
||||
PUBLIC_UMAMI_WEBSITE_ID=your-website-id
|
||||
```
|
||||
|
||||
#### Production
|
||||
|
||||
Add the environment variables to your deployment platform:
|
||||
|
||||
**Vercel/Netlify:**
|
||||
|
||||
- Go to Project Settings → Environment Variables
|
||||
- Add `PUBLIC_UMAMI_URL` and `PUBLIC_UMAMI_WEBSITE_ID`
|
||||
|
||||
**Other platforms:**
|
||||
|
||||
- Follow your platform's documentation for setting environment variables
|
||||
- Ensure variables are prefixed with `PUBLIC_` to be exposed to the client
|
||||
|
||||
### 3. Verify Integration
|
||||
|
||||
1. Start your development servers:
|
||||
|
||||
```bash
|
||||
# Landing page
|
||||
cd apps/landing
|
||||
pnpm dev
|
||||
|
||||
# Web app
|
||||
cd apps/web
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
2. Open browser DevTools → Network tab
|
||||
3. Look for requests to your Umami instance
|
||||
4. Check your Umami dashboard for live visitors
|
||||
|
||||
## Testing
|
||||
|
||||
To verify Umami is working:
|
||||
|
||||
1. **Check Script Loading**:
|
||||
- Open DevTools → Network
|
||||
- Filter by "script.js"
|
||||
- Verify the Umami script loads successfully
|
||||
|
||||
2. **Check Tracking**:
|
||||
- Navigate to different pages
|
||||
- Open DevTools → Network
|
||||
- Look for POST requests to `/api/send`
|
||||
|
||||
3. **Check Dashboard**:
|
||||
- Log in to your Umami instance
|
||||
- Navigate to Realtime → Current visitors
|
||||
- Verify your session appears
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Script Not Loading
|
||||
|
||||
- ✅ Verify environment variables are set correctly
|
||||
- ✅ Ensure `PUBLIC_` prefix is used
|
||||
- ✅ Check that Umami instance is accessible
|
||||
- ✅ Restart dev server after adding env vars
|
||||
|
||||
### No Data in Dashboard
|
||||
|
||||
- ✅ Verify website ID matches the one in Umami
|
||||
- ✅ Check browser console for errors
|
||||
- ✅ Ensure ad blocker is disabled
|
||||
- ✅ Verify network requests are successful
|
||||
|
||||
### Development vs Production
|
||||
|
||||
- In development: Tracking works but may be blocked by ad blockers
|
||||
- In production: Use a custom domain for Umami to avoid ad blockers (e.g., `analytics.yourdomain.com`)
|
||||
|
||||
## Advanced Configuration
|
||||
|
||||
### Custom Events
|
||||
|
||||
To track custom events, use the Umami JavaScript API:
|
||||
|
||||
```typescript
|
||||
// Track a custom event
|
||||
if (window.umami) {
|
||||
window.umami.track('button_click', {
|
||||
button_name: 'sign_up',
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
### Domain Filtering
|
||||
|
||||
To only track specific domains, add `data-domains` attribute:
|
||||
|
||||
```html
|
||||
<script
|
||||
defer
|
||||
src="..."
|
||||
data-website-id="..."
|
||||
data-domains="yourdomain.com,www.yourdomain.com"
|
||||
></script>
|
||||
```
|
||||
|
||||
### Disable Automatic Tracking
|
||||
|
||||
To disable automatic page view tracking:
|
||||
|
||||
```html
|
||||
<script defer src="..." data-website-id="..." data-auto-track="false"></script>
|
||||
```
|
||||
|
||||
Then manually track page views:
|
||||
|
||||
```typescript
|
||||
if (window.umami) {
|
||||
window.umami.track((props) => ({
|
||||
...props,
|
||||
url: '/custom-page',
|
||||
}));
|
||||
}
|
||||
```
|
||||
|
||||
## Security Considerations
|
||||
|
||||
- ✅ All tracking is done client-side
|
||||
- ✅ No sensitive data is collected
|
||||
- ✅ Website ID is public (not a security concern)
|
||||
- ✅ Only analytics data is sent to Umami instance
|
||||
- ✅ No third-party cookies or trackers
|
||||
|
||||
## Resources
|
||||
|
||||
- [Umami Documentation](https://umami.is/docs)
|
||||
- [Umami Cloud](https://cloud.umami.is)
|
||||
- [Umami GitHub](https://github.com/umami-software/umami)
|
||||
- [Privacy Policy Template](https://umami.is/docs/privacy)
|
||||
|
||||
## Support
|
||||
|
||||
For issues specific to:
|
||||
|
||||
- **Umami**: [Umami Discord](https://discord.gg/4dz4zcXYrQ)
|
||||
- **Integration**: Create an issue in this repository
|
||||
Loading…
Add table
Add a link
Reference in a new issue