Kunden-Reporting
Menü: Analytics & Insights → Kunden-Reporting
Pfad: /dashboard/analytics/client-report
Monatsübersicht für Centermanagement-Gespräche — live aus dem Cockpit plus importierte Historie aus dem alten Reporting-Dashboard. Nach einmaligem Import ist kein monatlicher manueller Upload mehr nötig.
Für wen?
Marketing, Center-Leitung und Agentur: ein Blick auf die wichtigsten Kennzahlen pro Kanal, plus PDF für Kundentermine.
Center & Zeitraum
- Oben den Center-Filter setzen (wie bei anderen Analytics-Seiten).
- Zeitraum wählen: letzte 7 Tage, letzte 30 Tage oder einen Kalendermonat (z. B. „Mai 2026“).
- Aktualisieren lädt die Daten neu.
Bei Kalendermonat nutzt der Website-Kanal exakt den gewählten Monat (1.–letzter Tag) in Umami — nicht die rollierenden letzten 30 Tage.
Kanäle & Datenquellen
| Kanal | Quelle | Badge |
|---|---|---|
| Website | Umami (live) oder GA-Historie (Import) | Live / Historie |
| Social Media | Outstand (live) oder FB/IG-Historie (Import) | Live / Historie |
| KI-Assistent | Cockpit-Interaktionen (live) oder Import | Live / Historie |
| Digital Signage | Signage-Analytics (live) oder Stele-Historie (Import) | Live / Historie |
| Meta Ads | Zernio (live) oder Reporting-Dashboard-Import | Live / Historie |
| Google Ads | Zernio (live) oder Reporting-Dashboard-Import | Live / Historie |
| Google-Bewertungen | Google Business Profile (live) oder Google Places | Live |
| Suchbegriffe | Reporting-Dashboard-Import | Historie |
| Zusammenfassung | Cockpit (Redaktion, pro Monat) oder Reporting-Import | Live / Historie |
| Ansprechpartner | Cockpit Teamverwaltung (TeamMember) oder Reporting-Import | Live / Historie |
Live hat Vorrang für laufende Zeiträume (letzte 7/30 Tage, aktueller Kalendermonat): Wenn Umami oder Outstand Daten liefern, werden diese angezeigt.
Vergangene Kalendermonate: Für Website, Social, KI-Assistent und Digital Signage wird — falls importiert — die Reporting-Dashboard-Historie bevorzugt (Badge „Historie“). So stimmen die Zahlen mit dem alten Monatsbericht überein, auch wenn Umami/Outstand im Cockpit aktiv sind.
Bei „Letzte 30 Tage“ oder „Letzte 7 Tage“ passen monatliche Import-Snapshots in der Regel nicht zum Zeitraum — dann siehst du Live-Daten aus dem Cockpit. Für importierte Historie einen Kalendermonat wählen (Dropdown: bis zu 18 Monate zurück).
Kanäle ohne Einrichtung und ohne Daten im gewählten Zeitraum erscheinen nicht in der Übersicht. Wenn gar keine Kanal-Daten vorliegen, siehst du einen Hinweis statt leerer Kacheln.
Die Karten nutzen Marken-Logos (Facebook, Instagram, Google, Meta) und für Website das Center-Logo — intern und in der Kunden-Ansicht gleich aufgebaut. Kanäle sind in drei Bereiche gruppiert: Website & Marketing, Social Media, Zusammenfassung & Kontakt. Im Cockpit zeigt die Berichtsvorschau dieselbe Struktur wie der öffentliche Link.
Import-Historie (Kalendermonat wählen) wird ähnlich wie im alten Reporting-Dashboard dargestellt:
- Zusammenfassung: unten im Bereich Redaktion pro Kalendermonat im Cockpit pflegen (Badge „Live“); sonst Legacy-Import
- Ansprechpartner: aus Teamverwaltung (aktive
TeamMember); sonst Legacy-Import - Social: eigene Kachel pro Plattform (Facebook, Instagram, …) mit Follower, Reichweite und Top-Post; Posts (Periode) zählt Cockpit-Posts und native/Kanal-Inbox-Posts (Zernio/Outstand-Kanal, z. B. Karma); bei Import-Historie zusätzlich Interaktionen
- Website: KPI-Kacheln plus Balkendiagramm Besuche nach Wochentag
- PDF-Archiv: importierte Monats-PDFs mit Download über Legacy-Storage (sofern
REPORTING_DASHBOARD_EXPORT_URLerreichbar)
Hinweis: Zusammenfassung und Team aus dem Reporting-Import bleiben als Fallback erhalten. Sobald im Cockpit gepflegt, haben Live-Daten Vorrang (Teamverwaltung bzw. gespeicherte Monatszusammenfassung).
Unter dem Bericht: Bereich Redaktion — Werbebudget (Meta/Google, nur Kalendermonat) und Monatszusammenfassung speichern.
Werbebudget (Meta / Google)
Im Bereich Redaktion (nur bei gewähltem Kalendermonat):
- Meta Ads Monatsbudget und/oder Google Ads Monatsbudget in EUR eintragen.
- Werbebudget speichern — erscheint in den jeweiligen Werbe-Kacheln und in der Kurzfassung.
| KPI | Bedeutung |
|---|---|
| Monatsbudget | Geplanter Betrag für den Monat (Redaktion) |
| Ausgegeben | Tatsächliche Kosten aus Zernio oder Import |
| Verbleibend | Budget minus Ausgegeben (Hinweis bei Überschreitung) |
| Auslastung | Ausgegeben in Prozent des Budgets |
Ohne hinterlegtes Budget bleibt die bisherige Anzeige Kosten gesamt. Mit Budget, aber ohne Kampagnendaten im Monat, erscheint die Kachel trotzdem (nur Budget-KPIs).
Unter der Kurzfassung siehst du den Import-Status des Centers (Anzahl Snapshots, Legacy-ID) — hilfreich vor dem ersten Kundentermin nach dem Import.
Kurzfassung, PDF & Kunden-Link
- Oben: „Kurz fürs Centermanagement-Gespräch“ — automatisch aus den Kanal-KPIs erzeugt.
- PDF für Kundengespräch: öffnet ein Druckfenster; im Browser „Als PDF speichern“ wählen (wie beim Social-Reporting).
Kunden-Link (ohne Login)
Analog zum Social-Freigabe-Link kann die Redaktion den Bericht schreibgeschützt an das Centermanagement weitergeben:
| Aktion | Wann nutzen | Gültigkeit |
|---|---|---|
| Link für Monat | Kalendermonat im Dropdown gewählt | 90 Tage, fester Monat |
| Dauer-Link | Ein Link pro Center, Centermanagement wählt Monat selbst | 365 Tage, Monatswahl auf der Seite |
| Per E-Mail | Öffnet E-Mail-Entwurf mit Monats-Link | wie Monats-Link |
Öffentliche URL: /bericht/{token} — Center-Branding, KPI-Karten, Kurzüberblick, PDF-Druck. Keine Cockpit-Navigation, keine Bearbeitung.
Hinweis: Für Kunden-Links einen Kalendermonat wählen (nicht „Letzte 30 Tage“). Der Dauer-Link zeigt standardmäßig den letzten abgeschlossenen Monat; das Centermanagement kann bis zu 18 Monate zurückblättern.
Pro Kanal mit Cockpit-Detailansicht gibt es intern einen Link „Details im Cockpit“ — in der Kunden-Ansicht ausgeblendet.
Ablösung des Reporting-Dashboards
| Was | Wer | Häufigkeit |
|---|---|---|
| Website, Social, Chatbot, Signage, Team, Zusammenfassung (Cockpit) | Automatisch im Cockpit | laufend |
| Meta Ads, Google Ads (live) | Zernio + täglicher Sync | laufend (nach Mapping) |
| Meta Ads, Google Ads, Keywords (Historie) | Einmaliger Reporting-Import durch IT/SMG | einmalig |
| Monatsbericht für Kunden | Redaktion: Zeitraum wählen, Kunden-Link oder PDF | nach Bedarf |
Das frühere Reporting-Dashboard (manuelle monatliche KPI-Pflege) kann nach erfolgreichem Import und Verifikation abgeschaltet werden.
Was (noch) nicht enthalten ist
- Search-Console-Keywords live (nur historischer Import, derzeit 0 Center in der DB).
KI-Auswertung: Online ↔ Center-Besuch
Was: KI-gestützte Empfehlungen, wie Online-Kanäle mit mehr Besuchern im Center zusammenhängen — inkl. konkreter Maßnahmen. Texte sind editierbar und erscheinen im Kunden-Link erst nach Freigabe.
Warum: Die Redaktion prüft und formuliert KI-Vorschläge, bevor das Centermanagement sie im öffentlichen Bericht sieht.
Wer ist betroffen: Redaktion/Marketing (Bearbeitung im Cockpit), Centermanagement (nur freigegebene Version im Link/PDF).
Wo: Kunden-Reporting → Block Online ↔ Center-Besuch (KI) unter der Berichtsvorschau. Status-Badges: Entwurf, Nicht freigegeben, Im Kunden-Link live.
Workflow:
- Kalendermonat wählen → KI-Auswertung generieren (oder KI neu generieren).
- Einleitung, Überschriften, Kundentexte und Empfohlene Maßnahmen anpassen → Entwurf speichern.
- Für Kunden-Link freigeben — ab dann erscheint der Block in Berichtsvorschau, Kunden-Link und PDF.
- Optional: Freigabe zurückziehen (Entwurf bleibt im Cockpit erhalten).
Bestehende KI-Daten aus früheren Versionen wurden bei der Migration einmalig als freigegeben übernommen — laufende Kunden-Links bleiben unverändert.
Datenbasis: Kanäle des Monatsberichts, aktuelle Events/Angebote, Footfall (Live oder Simulator — wird gekennzeichnet).
API: GET/PATCH/POST /api/analytics/client-report/bridge-insights · Freigabe: POST/DELETE …/bridge-insights/publish
MCP: cockpit_analytics_client_report (Monatsbericht), cockpit_analytics_client_report_bridge_insights (KI-Entwurf; regenerate: true zum Neu-Generieren). Öffentlicher Link nutzt nur freigegebene Insights.
So testen: Kalendermonat → KI generieren → Text ändern → speichern → Vorschau zeigt Hinweis „nicht freigegeben“ → freigeben → Vorschau und /bericht/{token} zeigen Block. Ohne aktiven Chatbot (Webseiten-Tab → Chatbot) erscheinen keine Chatbot-Empfehlungen; die Kachel KI-Assistent wird ausgeblendet.
Google-Bewertungen im Bericht
Daten aus Analytics → Bewertungen (/dashboard/analytics/reviews):
| KPI | Bedeutung |
|---|---|
| Bewertung gesamt | Ø-Sterne und Gesamtzahl auf Google |
| Neu im Zeitraum | Bewertungen im gewählten Monat/Zeitraum |
| Ø im Zeitraum / Ø aktuell | Durchschnitt der neuen Bewertungen; ohne neue im Monat Fallback auf aktuelle Google-Bewertungen (wie Cockpit) |
| Stimmung | Positiv / neutral / kritisch (Zeitraum oder aktuelle Bewertungen) |
| Antwort nötig | Kritische Bewertungen ohne Antwort (wie Analytics → Bewertungen) |
Unter den KPIs: bis zu vier Zitate. Liegen im Berichtsmonat keine neuen Bewertungen vor, zeigt die Kachel trotzdem Ø, Stimmung und aktuelle Zitate aus Google Places bzw. GBP — analog zur Cockpit-Ansicht. GBP verbunden = volle Historie; nur Place ID = maximal 5 aktuelle Bewertungen (Google-Places-Limit).
So testen: Center mit googlePlaceId oder GBP-Verbindung → Kunden-Reporting → Kalendermonat → Kachel Google-Bewertungen prüfen.
Zernio Ads (Meta / Google live)
Werbekonten werden in der Agentur-BM bzw. Google-MCC geschaltet; Cockpit liest Metriken über Zernio (Managed API, analog Outstand für Social).
Einrichtung — alles unter Kunden-Reporting
Auf /dashboard/analytics/client-report den Bereich Datenquellen aufklappen (ein Ort für Website, Social, Werbung und Import-Status):
| Aktion | Wo |
|---|---|
| Live-Daten holen (Outstand + Zernio) | Live-Daten abrufen |
| Meta/Google diesem Center zuordnen | Werbekonten (Zernio) — nur Super Admin |
| Social-Kanäle verknüpfen | Social Cockpit → Kanäle verknüpfen (Migrationsübersicht für Super Admin) |
| Historie importieren | Link zu Reporting-Import (Super Admin) |
Voraussetzung: ZERNIO_API_KEY auf Render + Werbekonten in Zernio verbunden.
Portfolio-Werbekonto (z. B. ILG): Mehrere Center teilen sich ein Meta-Konto in Zernio. Pro Center wird dasselbe zernioAccountId gemappt, aber ein Kampagnen-Filter (campaignFilter: Kürzel wie BPJ, RCO oder Namensfragmente wie Fuchsbezirk) begrenzt die Auswertung auf die Center-Kampagnen. Cockpit wendet den Filter bei Live-Daten, DB-Snapshots und Reporting-Import an (bekannte Center-Slugs wie burgaupark-jena → BPJ auch ohne manuelles Mapping). In Datenquellen erscheint der Filter neben dem Kontonamen.
Auto-Link (Super Admin): Im Dashboard unter Kunden-Reporting → Datenquellen (Abschnitt „Zernio-Verknüpfung“) oder in Community & Antworten beim gelben Hinweis (Zernio verknüpfen). API: POST /api/integrations/zernio/auto-link — verknüpft Werbekonten (Kampagnen-Kürzel) und organische Social-Kanäle (Username + Plattform) mit Cockpit-Centern. Optional Body { "organizationNameContains": "ILG", "centerId": "…", "dryRun": true }. Lokal: cd apps/dashboard && pnpm exec tsx scripts/auto-link-zernio-ads.ts (optional --dry-run, --org Goldbeck). Antwort enthält socialAccounts (gescannt/verknüpft).
Logik: Vergangene Kalendermonate mit Import-Historie → Badge „Historie“. Laufende Zeiträume → Zernio Live (Badge „Live“).
Siehe auch Cron-Setup.
Bericht per E-Mail an das Centermanagement
Unter dem Bericht: E-Mails speichern + Jetzt senden — mehrere Centermanagement-Adressen möglich (eine pro Zeile oder kommagetrennt). Nur manuell, kein automatischer Versand. Alternativ: Link für Monat, Dauer-Link oder Per E-Mail (mailto).
API (Entwickler)
Intern (Session / AgencyOS-Key):
GET /api/analytics/client-report?centerId={id}&timeframe=month|week|day
oder &month=YYYY-MM für einen Kalendermonat.
POST /api/analytics/client-report/share-link — Body { centerId, scope: "month"|"persistent", month?: "YYYY-MM" }
GET /api/analytics/client-report/share-link?centerId=&scope=&month= — bestehenden gültigen Link abfragen.
Öffentlich (Token):
GET /api/analytics/client-report/public/{token}?month=YYYY-MM — nur mit gültigem Freigabe-Token; bei scope=persistent Monat per Query wählbar.
GET/PATCH /api/analytics/client-report/summary?centerId=&month=YYYY-MM — Monatszusammenfassung (intern).
GET /api/analytics/client-report/legacy-pdf?centerId=&type=social_media|chatbot&month=YYYY-MM — signed PDF-URL vom Reporting-Dashboard (intern, Analytics-Auth).
GET /api/analytics/client-report/public/{token}/legacy-pdf?type=&month= — PDF-Download in der öffentlichen Kundenansicht.
GET /api/integrations/zernio/accounts — Zernio-Konten (SUPER_ADMIN).
GET|PUT /api/centers/{centerId}/ads-accounts — Werbekonto-Mapping (SUPER_ADMIN); campaignFilter optional im Body.
POST /api/integrations/zernio/auto-link — Zernio-Kampagnen gegen Center matchen (SUPER_ADMIN).
POST /api/analytics/client-report/sync-sources — Outstand + Zernio für ein Center (Session).
GET /api/analytics/client-report/sources?centerId= — Datenquellen-Status fürs UI-Panel.
Antwort intern: aggregierte KPIs pro Kanal, dataKind (live | imported), usedImportedData, Executive Summary, Metadaten zum Zeitraum.
Zugriff intern: gleiche Rollen wie Analytics (analytics-cockpit).
Siehe auch Reporting-Dashboard Import und Analytics-Integration (Developer).
Nutzungsstatistik: Seitenaufrufe werden anonymisiert erfasst. Im Umami-Dashboard nach diesem Pfad filtern: /en/dashboard/client-reporting