Auf Stripe installieren
Gib den vermittelnden Affiliate an deine Stripe-Abonnements weiter, damit Rekomi dem richtigen Affiliate gutschreibt. Gehört zu Stripe Connect, das die Verkaufs- und Erstattungsereignisse liefert.
Stripe ist die tiefste Integration von Rekomi, und sie hat zwei Hälften. Die Verkaufs- und Erstattungsereignisse erreichen Rekomi automatisch, sobald du dein Konto über Stripe Connect verknüpfst. Du hostest oder konfigurierst also selbst keinen Webhook. Diese Seite behandelt die andere Hälfte: den vermittelnden Affiliate an jeden Stripe-Verkauf zu heften, damit Rekomi weiß, wem es gutschreiben soll. Connect liefert den Verkauf, der Eintrag unten benennt den Affiliate. Beides ist nötig. Du bist noch am Abwägen? Lies Warum Rekomi für Stripe →.
Diese Seite erklärt, wie du den vermittelnden Affiliate in ein Stripe-Abonnement bringst. Hast du dein Stripe-Konto noch nicht verbunden, fang mit Stripe Connect an.
Du steuerst dein Programm lieber direkt in Stripe? Die Rekomi-App für Stripe bringt vermittelte Kunden, Attribution, Aktionen rund um Provisionen und die Prüfung von Auszahlungen in dein Stripe Dashboard, und sie ist dieselbe Autorisierung, die der Button Stripe verbinden im Dashboard nutzt. Sie ist ein Weg zum selben direkten Tracking, das hier beschrieben ist, kein eigener Zahlungsdienstleister.
So funktioniert die Attribution
Rekomi erfasst den Klick im Browser über ein Head-Skript, das die Empfehlung speichert und den vermittelnden Affiliate, sobald er ermittelt ist, als window.Rekomi.affiliate bereitstellt (ein Objekt mit einer id). Wenn der Käufer ein Abonnement abschließt, liefert Stripe den Verkauf über den Weg Stripe Connect an Rekomi, und Rekomi schreibt dem Affiliate in dieser Rangfolge gut:
- Ein Gutscheincode pro Affiliate, der im Checkout eingelöst wurde (wenn der Kampagnengutschein Vorrang haben soll).
- Die Rekomi-ID des Affiliates in den Metadaten des Abonnements oder der Rechnung unter dem Schlüssel
rekomi_affiliate_id(die explizite Übergabe aus deinem Checkout, unten beschrieben). - Verlauf wiederkehrender Kunden: Ein Kunde, der schon einem Affiliate gutgeschrieben wurde, wird diesem Affiliate auch bei späteren Käufen weiter gutgeschrieben.
Passt nichts davon, ordnet ein Gutschein ohne Vorrang den Verkauf trotzdem zu, und zuletzt wird eine kürzliche Anmeldung gutgeschrieben, die mit derselben Kunden-E-Mail-Adresse als Lead erfasst wurde.
Deshalb ist der Eintrag rekomi_affiliate_id unten so wichtig: Ohne Gutschein und ohne bisherigen Verlauf ist er es, der bei einem ersten Abonnement den Affiliate benennt. Connect liefert den Verkauf auch ohne ihn, aber dann gibt es keinen Affiliate, dem gutgeschrieben werden kann.
Das direkte Stripe-Tracking folgt Rechnungsereignissen: Abonnements (erste Belastung und jede Verlängerung) und jede Einmalzahlung, die eine Stripe-Rechnung erzeugt (die genauen Checkout-Optionen stehen unten unter Einmalzahlungen). Für eine einmalige Belastung ohne Rechnung nutzt du einen Gutscheincode pro Affiliate oder die Server-to-Server-API.
Die Rückforderung bei Erstattungen läuft automatisch: Wenn Stripe charge.refunded auslöst, holt Rekomi die Provision zurück (bei Teilerstattungen anteilig), und das ausstehende Guthaben des Affiliates wird sofort aktualisiert. Eine Kündigung des Abonnements stoppt künftige Provisionen auf Verlängerungen, holt aber schon verdiente Provisionen nicht zurück.
Das Head-Skript installieren
Füge das Rekomi-Head-Skript in den <head> deiner Website ein, damit die Empfehlung auf jeder Landingpage erfasst wird, auf die Affiliates Traffic schicken.
<script async src="https://api.rekomi.com/api/v1/r/loader.js" data-program-id="YOUR_PROGRAM_ID" data-rkmi-email-capture="auto"></script>Deine Programm-ID findest du im Rekomi-Dashboard unter Einstellungen, Tracking, Website-Snippet (der Installationsbereich) und in jedem Installationsrezept. Nach der Installation ermittelt das Skript den Affiliate des aktuellen Besuchers asynchron: window.Rekomi.getReferral() gibt den Link-Slug des Affiliates synchron zurück, und window.Rekomi.affiliate wird nach der Ermittlung mit { id, name } befüllt (oder bleibt null, wenn es keine Empfehlung gibt). Mit window.Rekomi.ready(function (r) { ... }) führst du Code aus, nachdem r.affiliate befüllt ist.
Rekomi erfasst eine E-Mail-Adresse, die ein vermittelter Besucher auf den Seiten, auf denen das Tag läuft, in ein beliebiges E-Mail- oder Textfeld tippt (Registrierung, Login, Checkout und andere Formulare), damit der Verkauf auch dann gutgeschrieben werden kann, wenn dein Checkout keine Empfehlung übergibt. Ohne Empfehlung wird nichts erfasst. Entferne das Attribut data-rkmi-email-capture, um das auszuschalten; explizite Aufrufe von Rekomi.convert() funktionieren weiterhin.
Stripe Checkout (serverseitig erstellte Sessions)
Das ist das moderne Muster bei Stripe. Dein Backend erstellt eine Session und gibt die URL zurück; der Browser leitet weiter.
Im Client wartest du, bis der Affiliate ermittelt ist, und gibst seine ID dann als Header an deinen Endpunkt zum Erstellen der Session weiter:
window.Rekomi.ready(function (r) {
var affiliateId = r.affiliate && r.affiliate.id;
fetch('/api/create-checkout-session', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-rekomi-affiliate-id': affiliateId || '',
},
body: JSON.stringify({ priceId: 'price_xxx' }),
})
.then(function (res) { return res.json(); })
.then(function (data) { window.location.href = data.url; });
});Auf dem Server hängst du die Affiliate-ID unter dem Schlüssel rekomi_affiliate_id an subscription_data.metadata an. Steht sie in subscription_data, wird sie auf das Abonnement und jede daraus erzeugte Rechnung übertragen, sodass die erste Belastung und alle Verlängerungen demselben Affiliate zugeordnet werden:
const affiliateId = req.headers['x-rekomi-affiliate-id'] || undefined;
const session = await stripe.checkout.sessions.create({
mode: 'subscription',
line_items: [{ price: priceId, quantity: 1 }],
success_url: 'https://yourdomain.com/thanks',
cancel_url: 'https://yourdomain.com/pricing',
subscription_data: affiliateId
? { metadata: { rekomi_affiliate_id: affiliateId } }
: undefined,
});<?php
// stripe/stripe-php; works the same inside Laravel or WordPress.
$affiliateId = $_SERVER['HTTP_X_REKOMI_AFFILIATE_ID'] ?? null;
$params = [
'mode' => 'subscription',
'line_items' => [['price' => $priceId, 'quantity' => 1]],
'success_url' => 'https://yourdomain.com/thanks',
'cancel_url' => 'https://yourdomain.com/pricing',
];
if ($affiliateId) {
$params['subscription_data'] = [
'metadata' => ['rekomi_affiliate_id' => $affiliateId],
];
}
$session = $stripe->checkout->sessions->create($params);Der Metadaten-Schlüssel muss genau rekomi_affiliate_id lauten, und der Wert ist die Rekomi-ID des Affiliates aus window.Rekomi.affiliate.id. Rekomi liest ihn aus den Ereignissen customer.subscription.created und invoice.paid, die Connect liefert.
Einmalzahlungen (mode: 'payment')
Eine einmalige Checkout Session wird erfasst, wenn sie eine Stripe-Rechnung erzeugt. Schalte invoice_creation ein und setze die Affiliate-ID in die Metadaten der Rechnung, unter invoice_creation.invoice_data.metadata. metadata auf Ebene der Session und payment_intent_data.metadata erreichen die Rechnung nie, und Rekomi liest die Rechnung, deshalb reichen sie allein nicht aus:
const affiliateId = req.headers['x-rekomi-affiliate-id'] || undefined;
const session = await stripe.checkout.sessions.create({
mode: 'payment',
line_items: [{ price: priceId, quantity: 1 }],
success_url: 'https://yourdomain.com/thanks',
cancel_url: 'https://yourdomain.com/pricing',
invoice_creation: {
enabled: true,
invoice_data: affiliateId
? { metadata: { rekomi_affiliate_id: affiliateId } }
: undefined,
},
});Wenn die Zahlung abgeschlossen ist, finalisiert und bezahlt Stripe die Rechnung, invoice.paid erreicht Rekomi, und der Verkauf wird als einmalige Conversion erfasst und diesem Affiliate gutgeschrieben (es sei denn, der Käufer hat zusätzlich den Rekomi-Gutscheincode eines anderen Affiliates eingelöst, der dann Vorrang hat). Nutzt du die Rekomi-App für Stripe und bringt der Verkauf eine Provision, werden die ermittelte Attribution und die Provision als Metadaten rekomi_* zurück in die Rechnung geschrieben. So kannst du die Gutschrift auch auf der Rechnungsseite in deinem Stripe Dashboard prüfen. Eine einmalige Belastung ohne Rechnung erfasst Rekomi nie; ordne sie stattdessen über einen Gutscheincode pro Affiliate oder die Server-to-Server-API zu.
Stripe Payment Links
Für diesen Weg brauchst du keinen Code auf deiner Website. Stripe hostet die Checkout-Seite des Payment Links, ein Skript auf deiner Website kann die Empfehlung also nicht durchreichen. Stattdessen bekommt jeder Affiliate seinen eigenen Promotion-Code, und der Code, den der Käufer einlöst, schreibt dem Affiliate den Verkauf gut. Die Einrichtung dauert etwa fünf Minuten:
-
Erlaube Promotion-Codes in Stripe. Bearbeite deinen Payment Link und schalte Allow promotion codes ein. Ohne diesen Schalter können Käufer keine Codes eingeben, und der unten gezeigte URL-Parameter
?prefilled_promo_codewird im Checkout stillschweigend ignoriert. -
Lege in Rekomi den Kampagnengutschein an. Öffne deine Kampagne, wechsle in den Tab Gutscheincodes und erstelle den Gutschein: den Rabatt, den Käufer bekommen (zum Beispiel 10% Rabatt). Dabei wird automatisch auch der passende Gutschein in deinem Stripe-Konto angelegt.
-
Gib jedem Affiliate seinen eigenen Code. Erstelle ihn auf der Detailseite des Affiliates, oder lass Affiliates ihren Code selbst anfordern: Jede Kampagnenseite im Affiliate-Portal zeigt ihre Codes, und wenn das selbstständige Erstellen eingeschaltet ist, können sie sich selbst einen Wunschcode sichern.
-
Affiliates teilen deinen Payment Link mit schon eingetragenem Code, sodass Käufer mit bereits angewendetem Rabatt im Checkout landen:
https://buy.stripe.com/your-link?prefilled_promo_code=THEIRCODEDen einfachen Link und den Code getrennt zu teilen, funktioniert auch; Käufer können den Code dann im Checkout eintippen.
-
Teste es. Öffne einen Link mit eingetragenem Code, schließe einen Checkout ab und prüfe, ob die Conversion in Rekomi diesem Affiliate gutgeschrieben wird.
Wenn der Käufer bezahlt, liefert Stripe den Verkauf über deine Stripe-Verbindung an Rekomi, und Rekomi ordnet den eingelösten Code dem Affiliate zu, dem er gehört. Jeder Code gehört genau zu einem Affiliate, und Verlängerungen werden automatisch weiter demselben Affiliate gutgeschrieben.
Das Head-Skript ist auf diesem Weg optional: Es erfasst Klicks auf Affiliate-Links und Leads aus Anmeldungen, ordnet aber keine Verkäufe über Payment Links zu.
Stripe Checkout (alte Weiterleitung im Client)
Stripe hat den reinen Client-Ablauf stripe.redirectToCheckout 2023 als veraltet markiert. Nutzt du ihn noch, ist das moderne Muster mit serverseitigen Sessions oben der Weg nach vorn: Verlege das Erstellen der Session in dein Backend, damit du subscription_data.metadata.rekomi_affiliate_id setzen kannst. Der alte reine Client-Ablauf kann keine Abo-Metadaten setzen, ordne diese Verkäufe bis zur Migration also über einen Gutscheincode pro Affiliate zu.
Attribution vor dem Start prüfen
Der Produktivdienst von Rekomi erfasst nur Live-Ereignisse von Stripe. Ereignisse aus dem Testmodus und der Sandbox werden bestätigt und verworfen, selbst wenn in der Sandbox die Rekomi-App installiert ist. Ein Checkout im Testmodus kann die Attribution also nie beweisen. Es gibt keine eigene Test-Autorisierung für einen Workspace, und wenn du in einem Workspace, der schon eine Live-Verbindung hat, eine Sandbox verbindest, ändert das nichts: Die Live-Verbindung bleibt bestehen.
Der Button Testverkauf ausführen (Teste deine Integration) ist eine andere Prüfung. Er löst einen synthetischen Klick und Verkauf über die eigene Pipeline von Rekomi und deinen ausgehenden Webhook aus, berührt Stripe aber nie. Er kann also nicht bestätigen, dass dein Checkout den Affiliate an das Abonnement oder die Rechnung heftet.
Um den ganzen Weg von Anfang bis Ende zu beweisen, tätige einen kleinen Live-Kauf und erstatte ihn:
- Öffne unter Affiliates die Zeile mit dem Badge Test (deinen Test-Affiliate) und kopiere den Tracking-Link aus der Karte Tracking im Tab Übersicht. Der Test-Affiliate wird bei der ersten Kampagne angelegt, die du im Dashboard erstellst; bei jeder anderen Kampagne klickst du einmal im Tab Performance auf Testverkauf ausführen, und er erscheint (siehe Teste deine Integration). Zeigt die Karte nur
?via=..., weil die Kampagne noch keine Ziel-URL hat, hänge diesen Parameter an die URL deiner eigenen Landingpage an. - Öffne diesen Link in einer neuen Browser-Sitzung. Er muss auf einer Seite landen, die das Head-Skript enthält: Das Skript erfasst den Klick und ermittelt für
window.Rekomi.affiliatedie ID des Test-Affiliates. Ohne das Skript auf dieser Seite wird kein Klick erfasst, und dein Checkout hat nichts, was er eintragen könnte. - Schließe einen echten Checkout zu deinem günstigsten Preis ab. Ein eigenes Testprodukt ist in Ordnung; setz den Preis nur so hoch an, dass deine Provision nach dem Runden über null Cent liegt.
- Innerhalb von etwa einer Minute erscheint der Verkauf unter Conversions, gutgeschrieben dem Test-Affiliate. Ist die Rekomi-App für Stripe installiert und liegt die Provision über null, bekommt auch die Rechnung in deinem Stripe Dashboard Metadaten
rekomi_*(nach bestem Bemühen; maßgebliche Quelle ist die Gutschrift auf der Seite Conversions). - Erstatte die Belastung in Stripe. Das Ereignis
charge.refundedholt die Provision automatisch zurück.
Der Test-Affiliate wird nie ausgezahlt: Auszahlungsvorschauen und Auszahlungsläufe überspringen ihn, für diese Prüfung wird also nichts ausgezahlt, auch bevor die Erstattung ankommt. Weil das ein echter Stripe-Verkauf ist (anders als eine Zeile von Testverkauf ausführen), erscheint er als ausstehende Provision in der Zeile des Test-Affiliates und in den Berichten, bis die Erstattung ihn auf Erstattet setzt. Willst du lieber ein echtes Affiliate-Konto nutzen, funktionieren dieselben Schritte; die Erstattung holt auch diese Provision zurück.
Fehlerbehebung
Der Verkauf ist abgeschlossen, aber in Rekomi erscheint keine Conversion. Prüfe zuerst, ob dein Stripe-Konto über Stripe Connect verbunden ist (im Einrichtungsschritt Zahlungsanbieter verbinden oder in deinen Einstellungen). Durch die Connect-Verknüpfung empfängt Rekomi deine Ereignisse; einen Stripe-Webhook richtest du nicht selbst ein. Ist Connect verknüpft und der Verkauf erscheint trotzdem nicht, kam er sehr wahrscheinlich ohne Affiliate an: Prüfe, ob rekomi_affiliate_id auf dem Abonnement eingetragen wurde (ob das Head-Skript auf der Landingpage war und der Affiliate-Link einen Slug enthielt) oder ob der Käufer einen Gutscheincode eines Affiliates genutzt hat.
rekomi_affiliate_id ist auf dem Abonnement leer. Der Browser hatte im Moment des Aufrufs zum Erstellen der Session noch keinen Affiliate ermittelt. Lies die ID innerhalb von window.Rekomi.ready(...) aus, damit sie befüllt ist, und prüfe, ob das Head-Skript auf der Seite installiert ist, auf die der Affiliate Traffic schickt, und ob der Affiliate-Link den Query-Parameter mit dem Slug enthält (?via=, ?ref= oder einen der 19 Attributionsparameter, die Rekomi erkennt).
Eine Einmalzahlung wurde nicht erfasst. Das direkte Stripe-Tracking folgt Rechnungsereignissen. Eine Einmalzahlung wird also erfasst, wenn sie eine Stripe-Rechnung erzeugt und die Affiliate-ID in den Metadaten dieser Rechnung steht (invoice_creation.invoice_data.metadata.rekomi_affiliate_id, siehe Einmalzahlungen). Eine einmalige Belastung ohne Rechnung ordnest du über einen Gutscheincode pro Affiliate oder die Server-to-Server-API zu.
Ein Kauf im Testmodus oder in der Sandbox ist nicht erschienen. Das ist so gewollt: Die Produktion erfasst nur Live-Ereignisse. Den Test mit einem kleinen Live-Kauf findest du unter Attribution vor dem Start prüfen.
Conversions über Payment Links werden dem falschen Affiliate gutgeschrieben. Jeder Promotion-Code gehört in Rekomi genau zu einem Affiliate, eine Verwechslung zwischen zwei von Rekomi angelegten Codes kann also nicht passieren. Wurde ein Code dort geteilt, wo er nicht hingehört, widerrufe ihn und lege auf der Detailseite des Affiliates im Tab Gutscheincodes einen neuen an.
Die Erstattung hat die Provision nicht zurückgeholt. Rekomi empfängt Erstattungsereignisse automatisch über dieselbe Verbindung, die deine Verkäufe liefert; auf deiner Seite gibt es nichts einzuschalten. Hat eine Erstattung eine Provision nicht zurückgeholt, prüfe, ob der ursprüngliche Verkauf als Conversion erfasst wurde, und melde dich beim Support, wenn ja.
Verwandte Seiten
- Stripe Connect (Verkaufs-Tracking): Verbinde dein Konto, damit Rekomi die Verkaufsereignisse erhält, die diese Seite zuordnet
- Leads und Anmeldungen tracken: Mit Stripe werden kostenlose Anmeldungen und Testphasen automatisch als Leads erfasst, ohne zusätzlichen Code
- Überblick über Tracking und Attribution
- Tracking über Gutscheincodes
- Checkout-Tracking ohne Code und ohne Stripe
- Provisionssätze pro Produkt
Zahlungsanbieter
Alle Zahlungsanbieter, mit denen Rekomi direkt integriert ist, an einem Ort. Wähle deinen für die Schritt-für-Schritt-Anleitung; nach dem Verbinden werden Verkäufe, Verlängerungen und Erstattungen automatisch erfasst.
Die Rekomi-App für Stripe
Die Rekomi-App für das Stripe Dashboard, dieselbe Autorisierung, die der Button „Stripe verbinden“ im Dashboard nutzt. Ein anderer Einstieg in dasselbe direkte Stripe-Tracking, kein eigener Zahlungsdienstleister.