Kampagnen-Reporting
-Kampagnen-Reporting
++ Funnel-Signale, Freigaben und Tracking bleiben zusammen sichtbar, + ohne die operative Prüfung aus dem Blick zu verlieren. +
+{dashboard.filters.campaigns.length} Kampagnen
++ {dashboard.filters.niches.length} Nischen · {dashboard.filters.postalCodes.length} PLZ +
+Kampagne: {dashboard.filters.campaigns.length}
-Nische: {dashboard.filters.niches.length}
-PLZ: {dashboard.filters.postalCodes.length}
-Radius: Kampagnenradius
-Priorität: Hoch/Mittel/Niedrig
-Status: Funnel-Status
-Zeitraum: Erstellungsdatum
-{metricLabels[key]}
-{value}
-
+
+ Kampagne, Nische, PLZ, Radius, Priorität, Status und Zeitraum. +
+Funnel Snapshot
++ Live aus Convex, Tracking bei Bedarf aus Rybbit. +
++ {metricLabels[metric.key]} +
++ {metricValue(metric.key)} +
+{metric.note}
++ {group.description} +
+Noch keine Kampagnenläufe.
++ Noch keine Kampagnenläufe. +
) : ( dashboard.runs.map((run) => ( -{run.status}
@@ -185,22 +356,46 @@ export function AnalyticsDashboard() {
- Rybbit-Daten konnten nicht geladen werden, wenn API-URL, Site-ID oder API-Key fehlen. {rybbitError} Audit-Öffnungen: {rybbitData?.auditOpens ?? dashboard.metrics.rybbitAuditOpens} CTA-Klicks: {rybbitData?.ctaClicks ?? dashboard.metrics.rybbitCtaClicks} Website-Link-Klicks: {rybbitData?.outboundClicks ?? 0}
+ {rybbitError}
+
+ Rybbit-Daten konnten nicht geladen werden, wenn API-URL, Site-ID oder API-Key fehlen.
+ Audit-Öffnungen
+ {rybbitData?.auditOpens ?? dashboard.metrics.rybbitAuditOpens}
+ CTA-Klicks
+ {rybbitData?.ctaClicks ?? dashboard.metrics.rybbitCtaClicks}
+ Website-Link-Klicks
+ {rybbitData?.outboundClicks ?? 0}
+ Public-Audit Tracking läuft nur auf veröffentlichten Audit-Seiten.
+ Public-Audit Tracking läuft nur auf veröffentlichten Audit-Seiten.
+
{rowError}
: null} {actionLabel ?{actionLabel}
: null} -