Auf Ghost installieren
Ghost Members rechnet über dein eigenes Stripe-Konto ab, deshalb erfasst ein verbundenes Stripe jeden Verkauf automatisch. Das Head-Skript in Code Injection erfasst den Klick und speichert die E-Mail-Adresse des Mitglieds als Lead, sobald sie eingetippt ist. So steht fest, welcher Affiliate den Verkauf gebracht hat.
Ghost Members nutzt für bezahlte Mitgliedschaften dein eigenes Stripe-Konto, deshalb laufen die Verkäufe über dieselbe Stripe-Anbindung wie bei einem Kunden, der direkt mit Stripe arbeitet. Für die Installation fügst du nur einmal etwas in Code Injection von Ghost ein: das Head-Skript mit eingeschalteter automatischer E-Mail-Erfassung. Es erfasst den Klick und die E-Mail-Adresse des Mitglieds, damit Rekomi weiß, welcher Affiliate es geschickt hat. Die einzige zusätzliche Hürde ist die Unterscheidung zwischen kostenlosen Anmeldungen (ohne Stripe, ohne Provision) und bezahlten Upgrades (Stripe löst customer.subscription.created aus); die eigenen Webhooks von Ghost lösen für beide member.added aus.
Das Head-Skript installieren
Schritt 1. Öffne im Ghost-Admin Settings > Code injection > Site Header.
Schritt 2. Füge das Rekomi-Head-Skript ein:
<script async src="https://api.rekomi.com/api/v1/r/loader.js" data-program-id="YOUR_PROGRAM_ID" data-rkmi-email-capture="auto"></script>
<noscript>
<img src="https://api.rekomi.com/api/v1/r/c.gif" width="1" height="1" alt="" referrerpolicy="no-referrer-when-downgrade" />
</noscript>Speichere. Das Skript lädt auf jeder öffentlichen Ghost-Seite (Beiträge, Seiten, Einstieg ins Mitgliederportal). Code Injection hängt nicht vom Theme ab und übersteht deshalb Theme-Updates.
Deine Programm-ID ist im Snippet in Rekomi unter Einrichtung > Installieren (Ghost wählen) schon eingesetzt. Die Installation funktioniert auf Ghost Pro und auf selbst gehostetem Ghost genau gleich.
So funktioniert die Attribution (der Standardweg)
Ghost Members rechnet über dein eigenes Stripe-Konto ab. Meldet sich ein Besucher für eine bezahlte Stufe an, legt Ghost einen Stripe-Kunden und ein Abonnement an. Stripe sendet customer.subscription.created und invoice.paid an den Webhook-Empfänger von Rekomi, und der Verkauf wird automatisch erfasst.
Um den Affiliate zu benennen, fehlt noch ein Baustein. Der Checkout von Ghost kann keine Rekomi-Metadaten übergeben, und der Members-Checkout hat kein Gutscheinfeld. Rekomi ordnet den Verkauf deshalb zu, indem es die E-Mail-Adresse des Käufers mit einem Lead aus den letzten 90 Tagen abgleicht. Varianten mit Plus-Adressierung wie you+test@gmail.com und you@gmail.com zählen als dasselbe Postfach.
Das Attribut data-rkmi-email-capture="auto" am Head-Skript oben erfasst diesen Lead. Sobald ein vermittelter Besucher eine E-Mail-Adresse fertig in ein E-Mail- oder Textfeld auf einer Seite mit dem Skript getippt hat, sendet das Skript sie zusammen mit dem vermittelnden Affiliate an Rekomi. Das deckt jedes eingebettete Formular zur Anmeldung oder zum Login in deinem Theme ab (die meisten Ghost-Themes binden diese über data-members-form ein), egal ob das Formular je abgeschickt wird, und auch jedes andere Formular auf diesen Seiten. Ohne Empfehlung erfasst es nichts, und dieselbe E-Mail-Adresse sendet es pro Sitzung nie zweimal. Ein Snippet im Footer brauchst du nicht; entferne das Attribut, um die Erfassung abzuschalten.
Hast du nach einer früheren Version dieser Seite ein separates Snippet zur Lead-Erfassung unter Site Footer eingefügt, lösche es; das Attribut ersetzt es. Baust du einen eigenen Anmeldeablauf und willst den Lead selbst erfassen, bleibt window.Rekomi.convert({ email }) der Weg für Entwickler.
Wenn sich Mitglieder nur über das Portal-Modal anmelden können (den schwebenden Abonnieren-Button), kann das Head-Skript nicht hineinsehen, die automatische Erfassung eingeschlossen: Das Portal läuft in einem eigenen iframe. Lass Affiliate-Links stattdessen auf eine Landingpage mit eingebettetem Anmeldeformular zeigen, damit die E-Mail-Adresse erfasst ist, bevor das Portal übernimmt.
Ist der Lead erfasst, wird das bezahlte Upgrade automatisch zugeordnet, sobald Stripe den Verkauf meldet, egal ob das Mitglied am selben Tag oder Wochen später upgradet (innerhalb des Lead-Zeitfensters von 90 Tagen). Wiederkehrende Kunden, die einmal zugeordnet wurden, werden bei späteren Rechnungen ohne weitere Erfassung demselben Affiliate gutgeschrieben.
Optional: alternative Wege für Conversions
Der Stripe-Webhook ist der maßgebliche Weg und braucht keine weitere Einrichtung. Für Abrechnungsarten, die nicht über dein Stripe-Konto laufen, nutzt du statt eines Snippets auf der Seite einen dieser Wege. Sie ersetzen die Stripe-Anbindung, sie laufen nicht parallel dazu: Der S2S-Endpunkt ist deaktiviert, solange Stripe Connect verknüpft ist, damit derselbe Verkauf nicht doppelt gezählt wird.
Gutscheincodes (ohne Programmierung). Gutscheincodes greifen, wenn der Checkout deiner Paywall Stripe-Promotion-Codes akzeptiert UND auf demselben Stripe-Konto läuft, das du mit Rekomi verbunden hast (eine Paywall von Drittanbietern oder ein eigener Stripe-Checkout). Der native Members-Checkout von Ghost hat kein Feld für Codes, dort verlässt du dich also auf die Lead-Erfassung. Erstelle Gutscheincodes pro Affiliate unter Kampagne > Gutscheincodes. Löst ein Käufer den Code eines Affiliates in einem Checkout mit Codefeld ein, schreibt Rekomi den Verkauf diesem Affiliate gut.
Server-to-Server-Relay. Reagiere auf den Webhook member.added von Ghost (er wird bei jeder Anmeldung ausgelöst, kostenlos oder bezahlt, filtere also auf Mitglieder mit bezahltem Abonnement) und sende den Verkauf dann mit HMAC von deinem Backend per POST an den S2S-Tracking-Endpunkt von Rekomi. Eine Voraussetzung, die du einplanen solltest: Die S2S-Payload benennt den Affiliate über den Slug, und dein Server kennt den Slug nur, wenn dein Anmeldeablauf ihn gespeichert hat (zum Beispiel eine eigene Anmeldung, die window.Rekomi.getReferral() am Mitglied speichert). Dieser Weg überträgt den echten Bestellbetrag, ohne vom Browser abzuhängen.
Kostenlos oder bezahlt
Die Webhooks von Ghost lösen bei jeder Anmeldung member.added aus, kostenlos oder bezahlt. Nur bezahlte Anmeldungen erzeugen Stripe-Ereignisse und Umsatz, nutze deshalb deinen Stripe-Webhook als Quelle für Conversions:
- Anmeldungen für die kostenlose Stufe: Ghost löst
member.addedaus, aber Stripe ist nicht beteiligt, und in einem verkaufsbasierten Programm gibt es keine Provision. - Bezahlte Anmeldungen: Stripe löst den maßgeblichen Webhook aus (
customer.subscription.created,invoice.paid); Rekomi erfasst den Verkauf und schreibt ihn dem Affiliate gut, der über den Anmelde-Lead ermittelt wurde.
Betreibst du ein Lead-basiertes Programm, bei dem die Provision für die E-Mail-Erfassung statt für ein bezahltes Upgrade gezahlt wird, ist das eine eigene Funktion: siehe Lead-Tracking. Die meisten Affiliate-Programme zahlen Provision nur auf bezahlte Verkäufe.
Gut zu wissen
Die Members-API hat Rate-Limits. Synchronisierst du Mitglieder programmatisch über die Ghost Admin API (etwa um kostenlose Anmeldungen zu verfolgen), bremst Ghost Lastspitzen stark aus. Nutze Stripe-Webhooks als maßgebliche Quelle für Conversions und die Ghost Admin API nur zur Anreicherung, nicht als maßgebliche Quelle.
Im Theme-Kontext von Ghost gibt es keinen „gerade gezahlten Betrag“. Themes können Preise der Stufen anzeigen (über den Helper {{#get "tiers"}}), aber auf einer Seite nach der Anmeldung steht kein Zahlungsbetrag pro Mitglied zur Verfügung. Das ist ein Grund, warum der Verkauf über Stripe (oder ein serverseitiges Relay) erfasst wird und nicht über die Seite. Nutzt du den Server-to-Server-Weg als Alternative, lies den Betrag aus der Mitglieder-Payload des Ghost-Webhooks member.added oder aus Stripe, nicht aus dem Theme.
Theme-Updates und Code Injection. Code Injection > Site Header ist bei Ghost unabhängig von den Theme-Dateien, deshalb bleibt die Installation im Head beim Theme-Wechsel erhalten. Nach einem Theme-Wechsel musst du nichts erneut hinzufügen.
Selbst gehostetes Ghost verhält sich identisch. Dasselbe Feld Code Injection gibt es auch auf selbst gehostetem Ghost. Bei der Installation gibt es keine Unterschiede zwischen Ghost Pro und selbst gehostetem Ghost.
Erstattungen
Erstattest du eine Zahlung, löst Stripe charge.refunded aus, und Rekomi macht die Provision rückgängig und aktualisiert automatisch das ausstehende Guthaben des Affiliates. Eine Kündigung (customer.subscription.deleted) ist etwas anderes: Sie stoppt künftige Provisionen auf Verlängerungen, holt aber bereits verdiente Provisionen nicht zurück. Für beides brauchst du auf Seiten von Ghost nichts einzustellen.
Nutzt du eine Abrechnungsart ohne Stripe (bei Ghost selten), musst du für die Zuordnung von Erstattungen den Kündigungs-Webhook für Mitglieder von Ghost an /api/tracking/refund weiterleiten, mit der passenden externalEventId aus der ursprünglichen Conversion.
Fehlerbehebung
Ein Besucher meldet sich bezahlt an, aber in Rekomi kommt keine Conversion an. Ein Kauf, der Rekomi ohne passenden Lead erreicht, erscheint nicht als Verkauf. Ein leerer Tab Verkäufe auf der Seite Conversions kann deshalb zweierlei bedeuten. Prüfe zuerst, ob Stripe in Rekomi unter Einrichtung > Zahlungsanbieter verbinden verbunden ist. Ist es verbunden und ein Testkauf erscheint trotzdem nicht, wurde vor dem Checkout kein Lead für diese E-Mail-Adresse erfasst (siehe „So funktioniert die Attribution“ oben). Prüfe, ob das Head-Skript-Tag data-rkmi-email-capture="auto" enthält und ob das Mitglied seine E-Mail-Adresse auf einer Seite mit dem Skript eingegeben hat und nicht im Portal-Modal.
Ein Besucher meldet sich kostenlos an, und es kommt keine Conversion an. Das ist so gewollt. Kostenlose Anmeldungen erzeugen keine Stripe-Ereignisse und werden standardmäßig nicht vergütet. Willst du auch kostenlose Anmeldungen vergüten, siehe „Kostenlos oder bezahlt“ oben.
Anmeldungen über das Portal-Modal werden nie zugeordnet. Das Portal läuft in einem eigenen iframe, in das das Head-Skript nicht hineinsehen kann, deshalb erreicht die E-Mail-Adresse des Mitglieds Rekomi nie als Lead. Nutze auf den Seiten, auf die Affiliates verlinken, ein eingebettetes Anmeldeformular (ein Formular mit data-members-form in deinem Theme), damit die automatische Erfassung die E-Mail-Adresse speichert, bevor das Portal übernimmt.
Die Erstattung hat die Provision nicht zurückgeholt. Prüfe, ob die Erstattung in Stripe wirklich durchgeführt wurde (ein gekündigtes Abonnement allein erstattet nichts). Ist die Erstattung da und die Provision steht nach ein paar Minuten immer noch, such im Aktivitätsprotokoll in Rekomi nach dem passenden Eintrag und melde dich beim Support, wenn er nie auftaucht.
Verwandte Seiten
Auf Thinkific installieren
Füge den Rekomi-Loader in Thinkific unter Settings > Code & Analytics in den Site Footer Code ein, um Klicks und E-Mail-Adressen zu erfassen, und erfasse Verkäufe dann über dein eigenes Stripe-Konto oder bei Thinkific Payments über ein Server-to-Server-Relay.
Auf beehiiv installieren
Verbinde das Stripe-Konto, über das beehiiv abrechnet, und verbinde beehiiv unter Integrationen. Verkäufe von Premium Subscriptions werden dann dem Affiliate gutgeschrieben, dessen Link den Leser gebracht hat, anhand des Anmeldedatensatzes von beehiiv selbst und ohne etwas im Browser des Lesers. Ein GTM-Tag (Google Tag Manager) ist optional und liefert Klickstatistiken.