Zum Hauptinhalt springen
7 Min. Lesedauer

Ghost-Integration

Fügen Sie Zenovay in zwei Minuten zu jeder Ghost-Publikation (Ghost(Pro), selbst gehostetes Ghost CMS oder Ghost Cloud) hinzu. Ghosts Code Injection ist auf jedem Plan vollständig zugänglich, sodass diese Integration sowohl für kostenlose Ersteller als auch für selbst gehostete Publisher funktioniert.

Code Injection ist auf allen Ghost-Plänen verfügbar, einschließlich selbst gehostetem Ghost CMS. Kein Upgrade erforderlich.


Schnellstart

SchrittWoWas Sie tun
1Zenovay DashboardKopieren Sie Ihr Tracking-Snippet
2Ghost-Admin → Settings → Code injection → Site HeaderFügen Sie es ein
3SpeichernKlicken Sie auf Save
4Zenovay DashboardEchtzeit-Besucher erscheinen innerhalb von ~30 Sekunden

Methode 1: Site Header-Injection (Empfohlen)

Das Code Injection-Panel von Ghost schreibt rohes HTML in den <head> jeder von Ihrem Theme gerenderten Seite. Dazu gehören die Startseite, Beiträge, Seiten, Tags, Autoren und der Mitgliedschaftsablauf.

Schritt für Schritt

  1. Melden Sie sich in Ihrem Ghost-Admin-Panel an (üblicherweise https://your-site.com/ghost/).
  2. Klicken Sie in der linken Seitenleiste auf Settings (Zahnrad-Symbol).
  3. Scrollen Sie nach unten zu Site → Code injection.
  4. Fügen Sie im Feld Site Header Folgendes ein:
<script defer data-tracking-code="YOUR_TRACKING_CODE" src="https://api.zenovay.com/z.js"></script>
  1. Klicken Sie auf Save.

Überprüfen

Öffnen Sie Ihre Ghost-Website im Inkognito-Modus und zeigen Sie den Quelltext an — Sie sollten <script defer data-tracking-code=...> zwischen <head> und </head> sehen. Ihr Besuch sollte in der Zenovay Echtzeit-Ansicht innerhalb von ~30 Sekunden erscheinen.


Methode 2: Beitrags-/Seitenspezifische Injection

Um nur einen bestimmten Beitrag oder eine Seite zu verfolgen (z. B. eine bezahlte Newsletter-Ankündigung), öffnen Sie den Beitrag im Editor und verwenden Sie die Code Injection auf Beitragsebene:

  1. Öffnen Sie einen Beitrag oder eine Seite im Editor.
  2. Klicken Sie auf das Zahnrad-Symbol (Einstellungen) oben rechts.
  3. Scrollen Sie nach unten und erweitern Sie Code injection.
  4. Fügen Sie das Snippet in Post Header ein.
  5. Aktualisieren Sie den Beitrag.

Die beitrags-spezifische Code Injection wird nach der seitenweiten Code Injection angehängt. Fügen Sie den Tracker nicht in beiden Bereichen ein — es kommt zur doppelten Zählung.


Benutzerdefinierte Ereignisse verfolgen

Nachdem der Tracker geladen ist, können Sie window.zenovay() aus jedem Ghost-Theme-Template, Code Injection-Block oder Markdown-HTML-Embed in einem Beitrag aufrufen.

Newsletter-Anmeldungen verfolgen

Ghosts Anmeldeformulare senden bei Erfolg ein benutzerdefiniertes members:signup-Ereignis aus. Fügen Sie dies in Site Header → Code injection ein (nach der Tracker-Zeile):

<script>
  document.addEventListener('DOMContentLoaded', () => {
    document.addEventListener('submit', (e) => {
      const form = e.target;
      if (form?.matches('[data-members-form]')) {
        if (window.zenovay) {
          window.zenovay('track', 'signup', {
            form_type: form.dataset.membersForm || 'signup',
            page: window.location.pathname,
          });
        }
      }
    }, true);
  });
</script>

Klicks auf bezahlte Abonnements verfolgen (Subscribe / Upgrade)

Ghost rendert Abonnement-/Portal-Schaltflächen mit data-portal-Attributen. Hören Sie auf Klicks:

<script>
  document.addEventListener('DOMContentLoaded', () => {
    document.addEventListener('click', (e) => {
      const target = e.target.closest('[data-portal]');
      if (target && window.zenovay) {
        window.zenovay('track', 'portal_opened', {
          action: target.dataset.portal,
          page: window.location.pathname,
        });
      }
    }, true);
  });
</script>

Mitglieder identifizieren

Ghost stellt das aktuelle Mitglied über /members/api/member/ bereit. Rufen Sie es auf und identifizieren Sie auf jeder Seite:

<script>
  fetch('/members/api/member/', { credentials: 'include' })
    .then(r => r.ok ? r.json() : null)
    .then(member => {
      if (member && window.zenovay) {
        window.zenovay('identify', {
          userId: member.uuid,
          email: member.email,
          name: member.name,
          plan: member.subscriptions?.[0]?.plan?.nickname,
        });
      }
    })
    .catch(() => {});
</script>

Bezahlte Konversionen verfolgen

Für die Umsatzzuordnung bei bezahlten Mitgliedschaften verwenden Sie die Stripe-Webhook-Integration von Ghost und senden Sie Stripe-Ereignisse über unsere serverseitige Tracking-API an Zenovay. Clientseitiges Tracking verpässt Abonnementereignisse, die abgeschlossen werden, nachdem der Benutzer den Tab geschlossen hat (Ghost sendet die Quittung asynchron per E-Mail).

Kurzbeispiel serverseitig (Node.js auf Ihrem eigenen Webhook-Empfänger):

// Forward Stripe checkout.session.completed → Zenovay
app.post('/webhooks/stripe', async (req, res) => {
  const event = req.body;
  if (event.type === 'checkout.session.completed') {
    const session = event.data.object;
    await fetch('https://api.zenovay.com/v1/track', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${process.env.ZENOVAY_API_KEY}`,
      },
      body: JSON.stringify({
        event: 'purchase',
        userId: session.customer_email,
        properties: {
          transaction_id: session.id,
          revenue: session.amount_total / 100,
          currency: session.currency,
        },
      }),
    });
  }
  res.json({ received: true });
});

Arbeiten mit benutzerdefinierten Ghost-Themes

Wenn Sie ein benutzerdefiniertes Ghost-Theme pflegen (z. B. ein Fork von Casper, Source oder Edition), wird Code Injection über den {{ghost_head}}-Helper gerendert. Solange Ihre default.hbs-Datei Folgendes enthält:

{{!-- in default.hbs --}}
{{ghost_head}}

…lädt Zenovay korrekt. Die meisten Ghost-Themes von Drittanbietern enthalten dies standardmäßig. Falls Ihr Theme dies nicht tut, fügen Sie es innerhalb von <head> vor </head> hinzu.


Plan-Voraussetzungen

Ghost-EditionCode InjectionEigene ThemesServerseitiges Tracking
Ghost(Pro) Starter❌ (nur Casper)✅ via Webhooks
Ghost(Pro) Creator
Ghost(Pro) Team / Business
Selbst gehostetes Ghost CMS

Häufige Stolpersteine

{{ghost_head}} fehlt in benutzerdefinierten Themes. Dies ist das häufigste Problem bei benutzerdefinierten Themes. Wenn der Tracker nicht im Seitenquelltext erscheint, prüfen Sie, ob Ihre default.hbs den Helper enthält. Ohne ihn hat Code Injection keinen Platz zum Rendern.

AMP-Beiträge. Wenn Sie AMP über die Ghost AMP-Integration aktiviert haben, gilt Code Injection nicht für /your-post/amp/-URLs (AMP entfernt beliebige Skripte). Deaktivieren Sie entweder AMP oder nehmen Sie in Kauf, dass AMP-Traffic nicht verfolgt wird. Ab Ghost 5.x wird AMP zunehmend de-priorisiert; wir empfehlen die Deaktivierung.

Newsletter-E-Mails. Code Injection gilt nur für Ihre Website, nicht für ausgehende Newsletter-E-Mails. E-Mail-Öffnungen werden von Ghost selbst verfolgt; Sie können diese Daten bei Bedarf über die Ghost Admin API in Zenovay synchronisieren, aber dies ist nicht im Umfang der Basisintegration enthalten.

Nur für Mitglieder zugängliche Beiträge. Der Tracker wird bei jedem Seitenrendering ausgelöst, einschließlich Vorschauen mit Paywall. Wenn Sie Beitragsaufrufe erst nach dem Entsperren der Paywall verfolgen möchten, machen Sie Ihr benutzerdefiniertes Ereignis von der obigen /members/api/member/-Antwort abhängig.

Selbst gehostetes Ghost auf Docker / Kubernetes. Keine zusätzliche Konfiguration erforderlich — Code Injection liegt in der Ghost-Datenbank, nicht im Dateisystem. Fügen Sie das Snippet wie gewohnt über die Admin-Oberfläche ein.


Fehlerbehebung

SymptomWahrscheinliche UrsacheLösung
Keine DatenTracker nicht im SeitenquelltextPrüfen Sie, ob {{ghost_head}} in default.hbs vorhanden ist
Keine Daten bei einigen BeiträgenBeitragsspezifische Code Injection überschreibtSnippet in den seitenweiten Header verschieben
Doppelte SeitenaufrufeSnippet sowohl in Site Header als auch in beitragsspezifischer Code InjectionEinen Bereich wählen
Keine Daten bei /amp/-URLsAMP entfernt SkripteAMP deaktivieren oder die Lücke akzeptieren
Mitglieder werden nie identifiziert/members/api/member/ gibt 404 zurückSie verwenden eine ältere Ghost-Version (< 4.x) — upgraden Sie

Datenschutz & Compliance

Für Cookie-freies Tracking fügen Sie data-cookieless="true" hinzu:

<script defer
        data-tracking-code="YOUR_TRACKING_CODE"
        data-cookieless="true"
        src="https://api.zenovay.com/z.js"></script>

Ghosts eigene Mitgliederanalysen verwenden ohnehin First-Party-Cookies, daher ist die Kombination von Zenovay im Cookie-freien Modus ein gängiges Muster: Sie behalten Ghosts E-Mail-basierte Mitgliederdaten und erhalten zusätzlich Cookie-freie Besucheranalysen für den Rest der Website.

Weitere Details finden Sie unter Datenschutz-Compliance.


Weiterführende Ressourcen


Brauchen Sie Hilfe? Kontaktieren Sie [email protected] oder besuchen Sie unser Help Center.

War diese Seite hilfreich?