Zum Hauptinhalt springen
Pro Plan10 minutesFortgeschrittene

Echtzeit-Datenzugriff

Greifen Sie auf Echtzeit-Analysedaten von Zenovay zu – Polling-Strategien, die External API und wo Echtzeitdaten herkommen.

apirealtimestreamingdeveloper
Zuletzt aktualisiert:

Rufen Sie Analysedaten aus Zenovay ab, um Ihre eigenen Dashboards und Überwachungstools zu erstellen.

Zenovay stellt keinen öffentlichen WebSocket-Stream bereit. Das Dashboard zeigt intern Echtzeitaktivität der Besucher an, aber für Ihre eigenen Integrationen ist das unterstützte Muster das Polling der External API. Diese Anleitung zeigt, wie Sie dies effizient umsetzen.

Information

Die External API ist eine bezahlte Funktion. Sie ist auf Pro-, Scale- und Enterprise-Plänen verfügbar – Keys aus dem Free-Tier werden mit 403 API_PAID_PLAN_REQUIRED abgelehnt. Siehe API-Schlüssel abrufen.

Wo Echtzeitdaten herkommen

AnwendungsfallBester Ansatz
Live-Besucher selbst überwachenDie Live View-Registerkarte in Ihrem Dashboard (aktualisiert sich in Echtzeit)
Benutzerdefiniertes DashboardExternal API abfragen
Historische DatenExternal API mit einem range-Filter
Zähler für Live-Besucher auf Ihrer Website einbindenDie Widgets-Funktion (ein autonomes HTML-Widget)

Um zu sehen, wer gerade auf Ihrer Website ist, öffnen Sie das Dashboard Ihrer Website und wählen Sie die Live View-Registerkarte – sie wird automatisch aktualisiert. Die Abschnitte unten zeigen, wie Sie Ihre eigene externe Integration auf der Basis der API erstellen.

External API-Polling

Verwenden Sie für Analysedaten die External API mit Ihrem API-Schlüssel. Die Basis-URL ist:

https://api.zenovay.com/api/external/v1

Authentifizieren Sie sich mit einem dieser Header:

X-API-Key: zv_YOUR_API_KEY
Authorization: Bearer zv_YOUR_API_KEY

Aktuelle Analytik

Der Analytics-Summary-Endpunkt akzeptiert einen range-Abfrageparameter (24h, 7d, 30d, 90d, 1y – Standard: 7d):

const API_KEY = process.env.ZENOVAY_API_KEY;
const WEBSITE_ID = 'your-website-id';

async function getRecentAnalytics() {
  const response = await fetch(
    `https://api.zenovay.com/api/external/v1/analytics/${WEBSITE_ID}?range=24h`,
    {
      headers: { 'X-API-Key': API_KEY }
    }
  );

  return await response.json();
}

Jede External API-Response ist in eine { success, data, timestamp }-Umhüllung verpackt, und die Summen befinden sich unter data.summary:

{
  "success": true,
  "data": {
    "summary": {
      "total_visitors": 1247,
      "total_page_views": 3891,
      "unique_visitors": 1102
    },
    "time_range": "24h",
    "daily_stats": [ /* ... */ ]
  },
  "timestamp": "2026-06-13T00:00:00.000Z"
}

Besucherdaten

async function getVisitors() {
  const response = await fetch(
    `https://api.zenovay.com/api/external/v1/analytics/${WEBSITE_ID}/visitors`,
    {
      headers: { 'X-API-Key': API_KEY }
    }
  );

  return await response.json();
}

Innerhalb der data-Umhüllung gibt dies ein visitors-Array plus ein pagination-Objekt zurück (limit, offset, has_more). Verwenden Sie die limit- und offset-Abfrageparameter, um durch die Ergebnisse zu blättern.

Ein benutzerdefiniertes Dashboard erstellen

React-Beispiel

import { useState, useEffect } from 'react';

function LiveDashboard({ websiteId, apiKey }) {
  const [analytics, setAnalytics] = useState(null);

  // Aktualisieren Sie die Analytics-Zusammenfassung in einem Intervall, das Ihr Rate Limit respektiert
  useEffect(() => {
    async function fetchAnalytics() {
      try {
        const response = await fetch(
          `https://api.zenovay.com/api/external/v1/analytics/${websiteId}?range=24h`,
          {
            headers: { 'X-API-Key': apiKey }
          }
        );
        const body = await response.json();
        // Responses sind in einer { success, data, timestamp }-Umhüllung verpackt.
        setAnalytics(body.data);
      } catch (error) {
        console.error('Analytics fetch error:', error);
      }
    }

    fetchAnalytics();
    const interval = setInterval(fetchAnalytics, 5 * 60 * 1000);
    return () => clearInterval(interval);
  }, [websiteId, apiKey]);

  return (
    <div>
      {analytics && (
        <div>
          <h2>Letzte 24 Stunden</h2>
          <p>Besucher: {analytics.summary.total_visitors}</p>
          <p>Seitenaufrufe: {analytics.summary.total_page_views}</p>
          <p>Einzigartige Besucher: {analytics.summary.unique_visitors}</p>
        </div>
      )}
    </div>
  );
}

Überlegungen zu Ratenbegrenzungen

External API-Ratenbegrenzungen gelten pro API-Schlüssel, und die API ist nur gegen Bezahlung verfügbar – die Free-Zeile wird aus Vollständigkeit angezeigt, aber Free-Tier-Keys können sie nicht aufrufen.

PlanAnfragen/MinuteEmpfohlenes Polling-Intervall
FreeNicht verfügbar
Pro30Alle 5 Minuten
Scale60Alle 2 Minuten
Enterprise120Jede Minute

Responses enthalten X-RateLimit-Limit und X-RateLimit-Remaining Header (auf dem Fallback-Pfad), sodass Sie diese lesen und zurückfahren können, wenn Sie sich dem Limit nähern.

Best Practices

  • Fragen Sie nicht häufiger ab, als Ihr Plan-Ratenlimit zulässt – Analytics-Daten werden im Minutenbereich aktualisiert, nicht im Sekundenbereich.
  • Zwischenspeichern Sie Responses lokal zwischen Abfragen.
  • Implementieren Sie Fehlerbehandlung mit exponentiellem Backoff.
  • Um Live-Besucher selbst zu beobachten, nutzen Sie die Live View-Registerkarte – sie ist dafür konzipiert.

Nächste Schritte

War dieser Artikel hilfreich?