managarten/memoro/apps/landing/docs/posthog-ab-testing-implementation.md
Till-JS e7f5f942f3 chore: initial commit - consolidate 4 projects into monorepo
Projects included:
- maerchenzauber (NestJS backend + Expo mobile + SvelteKit web + Astro landing)
- manacore (Expo mobile + SvelteKit web + Astro landing)
- manadeck (NestJS backend + Expo mobile + SvelteKit web)
- memoro (Expo mobile + SvelteKit web + Astro landing)

This commit preserves the current state before monorepo restructuring.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 23:38:24 +01:00

6 KiB

PostHog A/B-Testing Implementation für Memoro

Stand: 23. Juli 2025
Autor: Development Team
Status: Aktiv

Übersicht

Wir haben PostHog als Analytics- und A/B-Testing-Plattform für die Memoro-Landingpage integriert. PostHog läuft parallel zu Plausible Analytics und bietet erweiterte Funktionen für Experimente, Feature Flags und detaillierte User-Insights.

Technische Implementation

1. PostHog-Komponente (src/components/PostHog.astro)

Die PostHog-Integration ist GDPR-konform implementiert:

  • Lädt nur nach Cookie-Consent: Respektiert die Nutzer-Entscheidung
  • EU-Server: Daten werden in der EU gespeichert
  • Anonyme Profile: person_profiles: 'identified_only'
  • Event-basiertes Tracking: Keine automatische Erfassung sensibler Daten

Wichtige Konfiguration:

posthog.init(PROJECT_KEY, {
  api_host: 'https://eu.posthog.com',
  person_profiles: 'identified_only',
  capture_pageview: true,
  capture_pageleave: true,
  autocapture: false // Volle Kontrolle über Events
});

2. Experiment Utilities (src/utils/experiments.ts)

Zentrale Funktionen für A/B-Tests:

  • getExperiment(key): Holt die aktuelle Variante
  • trackEvent(name, properties): Sendet Custom Events
  • trackExperimentConversion(experiment, type): Trackt Conversions
  • applyExperimentClasses(): CSS-basierte Varianten
  • PostHog wird in der Analytics-Kategorie behandelt
  • UI-Texte erwähnen explizit "Plausible & PostHog"
  • Opt-Out wird respektiert

Implementierte A/B-Tests

1. Hero CTA Test (hero-cta-test)

Ziel: Optimierung der Haupt-Call-to-Action auf der Homepage

Varianten:

  • Control (50%):

    • Primary: "So funktioniert's" → #how-it-works
    • Secondary: "Live-Demo (2 Min)" → /de/demo
  • Variant B (50%):

    • Primary: "Kostenlos testen" → /de/download
    • Secondary: "So funktioniert's" → #how-it-works

Implementation:

  • Script in HeroABTestScript.astro
  • Dynamische CTA-Änderung via JavaScript
  • Tracking von Impressions und Klicks

Event-Tracking Schema

Basis-Events

Event Name Beschreibung Properties
$pageview Automatisch bei Seitenaufruf locale
$pageleave Beim Verlassen der Seite -

Experiment-Events

Event Name Beschreibung Properties
experiment_variant_shown Nutzer sieht eine Variante experiment, variant
hero_cta_clicked Klick auf Hero-CTA experiment, variant, button_type, destination
experiment_conversion Conversion erfolgt experiment, variant, conversion_type, platform

Download-Events

Event Name Beschreibung Properties
download_page_viewed Download-Seite aufgerufen lang
download_button_clicked App-Download geklickt platform, source, lang, hero_experiment_variant

PostHog Dashboard-Konfiguration

Aktivierte Produkte

  • Product Analytics: User-Journeys und Funnels
  • Web Analytics: Basis-Metriken (parallel zu Plausible)
  • Feature Flags: A/B-Test-Infrastruktur
  • Experiments: Statistische Auswertung
  • Session Replay: User-Verhalten verstehen

Empfohlene Dashboards

1. "Hero CTA A/B Test Results"

  • Conversion Funnel: Impression → Click → Download Page → App Download
  • CTR by Variant: Click-Through-Rate Vergleich
  • Download Conversions: Finale Conversions nach Variante
  • Platform Distribution: iOS vs. Android

2. "User Journey Analysis"

  • Path Analysis: Häufigste Wege zur Download-Seite
  • Drop-off Points: Wo verlieren wir Nutzer?
  • Session Duration: Verweildauer nach Variante

Best Practices & Guidelines

1. Neue A/B-Tests erstellen

// 1. Feature Flag in PostHog Dashboard anlegen
// 2. Test-Komponente erstellen:
const variant = await getExperiment('my-new-test');

if (variant === 'variant-b') {
  // Variante B anwenden
}

// 3. Events tracken
trackEvent('my_test_interaction', {
  experiment: 'my-new-test',
  variant: variant || 'control'
});

2. Conversion-Tracking

Immer die komplette Journey tracken:

  1. Impression (Variante gezeigt)
  2. Interaction (Nutzer-Aktion)
  3. Conversion (Ziel erreicht)

3. Statistische Signifikanz

  • Mindestens 1000 Nutzer pro Variante
  • Test mindestens 2 Wochen laufen lassen
  • Wochentags-Effekte berücksichtigen

Wartung & Monitoring

Tägliche Checks

  • Events kommen in PostHog an
  • Feature Flags funktionieren
  • Keine JavaScript-Fehler in Console

Wöchentliche Reviews

  • A/B-Test Performance prüfen
  • Signifikanz-Level checken
  • Anomalien untersuchen

Monatliche Aufgaben

  • Abgeschlossene Tests dokumentieren
  • Neue Test-Ideen priorisieren
  • PostHog-Kosten überprüfen

Troubleshooting

Problem: PostHog lädt nicht

  1. Cookie-Consent prüfen: localStorage.getItem('memoro_cookie_consent')
  2. API-Key in .env verifizieren
  3. Browser-Console auf Fehler checken

Problem: Feature Flag gibt null zurück

  1. Flag-Name exakt prüfen (case-sensitive!)
  2. Rollout-Percentage in PostHog checken
  3. Cache leeren und neu laden

Problem: Events werden nicht getrackt

  1. Network-Tab öffnen, nach eu.posthog.com/e/ suchen
  2. window.posthog in Console prüfen
  3. Event-Namen auf Tippfehler checken

Zukünftige Optimierungen

Phase 1 (Abgeschlossen )

  • PostHog-Integration
  • Erster A/B-Test (Hero CTA)
  • Conversion-Tracking

Phase 2 (Geplant)

  • Pricing-Layout A/B-Test
  • Navigation-Varianten
  • Form-Optimierung

Phase 3 (Zukunft)

  • Personalisierung basierend auf Quelle
  • Multi-Variate Tests
  • KI-gestützte Optimierung

Kontakt & Support

PostHog-Dashboard: https://eu.posthog.com
Dokumentation: https://posthog.com/docs
Support: support@posthog.com

Internes Team:

  • A/B-Tests: Development Team
  • Analytics: Marketing Team
  • Datenschutz: Legal Team

Hinweis: Diese Dokumentation wird regelmäßig aktualisiert. Letzte Änderung: 23. Juli 2025