Tracking-Skript und window.Rekomi
Installiere den Browser-Loader von Rekomi und lies den Empfehlungskontext (Affiliate und Kampagne) beim Laden der Seite in Echtzeit aus.
Das Tracking-Skript von Rekomi (loader.js) erledigt zwei Dinge:
- Es erfasst den Klick: Es liest den Attributionsparameter des Affiliates aus der URL (
?via=,?ref=,?fpr=usw.), legt ihn imlocalStorageauf deiner Domain ab (dazu ein Cookie auf dem Tracking-Host, das zum First-Party-Cookie wird, sobald du eine eigene Tracking-Domain nutzt) und zeichnet den Klick auf. - Es stellt
window.Rekomibereit, ein kleines JavaScript-Objekt, mit dem deine Website beim Laden der Seite den Empfehlungskontext (Referral Context) auslesen kann: den Namen des Affiliates und den Namen der Kampagne, nicht nur einen Slug. Damit zeigst du zum Beispiel „Empfohlen von …“ an oder erfasst den vermittelnden Affiliate in Echtzeit in deinem Registrierungsformular.
Du ziehst von Rewardful um?
Das ist der direkte Ersatz dafür, bei der Registrierung window.Rewardful.affiliate / window.Rewardful.campaign auszulesen. window.Rekomi stellt jetzt denselben Aufbau mit referral / affiliate / campaign bereit, siehe Affiliate und Kampagne beim Laden erfassen.
Installieren
Füge das auf jeder Seite deiner Website in den <head> 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" alt="" width="1" height="1" referrerpolicy="no-referrer-when-downgrade" /></noscript>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.
Das <noscript>-Beacon zeichnet den Klick bei Besuchern auf, die JavaScript deaktiviert haben. Es nimmt keine Query-Parameter an; das Beacon liest die Empfehlung aus den Attributionsparametern in der URL der verweisenden Seite (dem Referer-Header). Kopiere das exakte Snippet (mit deiner echten data-program-id und allen eigenen Attributionsparametern) unter Dashboard → Einstellungen → Tracking → Website-Snippet. Hast du eine bestätigte eigene Domain, lädt das Snippet von deiner eigenen Subdomain statt von api.rekomi.com.
Das Objekt window.Rekomi
Sobald das Skript geladen ist, definiert es window.Rekomi. Der Slug steht sofort bereit; die Objekte affiliate und campaign werden über eine einzige, schlanke asynchrone Abfrage befüllt, lies sie also innerhalb von ready() aus.
Eigenschaften
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
referral | string | null | Der Empfehlungs-Slug des Affiliates, z. B. "b7pa99hvx7zx". null, wenn der Besucher nicht vermittelt wurde. |
affiliate | { id, name } | null | ID und Anzeigename des vermittelnden Affiliates, sobald aufgelöst. null ohne Empfehlung. |
campaign | { id, name } | null | ID und Name der Kampagne, sobald aufgelöst. null ohne Empfehlung. |
subId | string | null | Das Kanal-Tag am Link des Affiliates (?sub=yt), normalisiert, aus dieser Einstiegs-URL oder aus dem gespeicherten Wert des Klicks, über den der Besucher kam. null, wenn kein Tag gesetzt ist. Siehe Sub-IDs. |
clickId | string | null | Die ID des Klicks, über den dieser Besucher kam, sobald der Klick-Endpunkt geantwortet hat (zusammen mit dem Slug für spätere Seitenaufrufe gespeichert). Bis dahin null. |
Methoden
| Methode | Beschreibung |
|---|---|
ready(callback) | Führt callback(window.Rekomi) aus, sobald der Empfehlungskontext aufgelöst ist. Läuft sofort, wenn es keine Empfehlung gibt (oder sie schon aufgelöst ist). Nutze das, um affiliate / campaign zuverlässig auszulesen. |
getReferral() | Gibt den Slug synchron zurück (URL-Parameter → localStorage → Cookie) oder null. Sofort verfügbar, ohne Wartezeit. |
clearReferral() | Löscht den gespeicherten Slug, das Tag und die Klick-ID (localStorage) sowie die aufgelösten Werte referral / affiliate / campaign / subId / clickId im Speicher. Das Cookie auf dem Tracking-Host und ein Attributionsparameter, der noch in der URL der Seite steht, werden nicht entfernt, getReferral() kann den Slug also wieder aufgreifen. |
convert(email) / convert({ email, name }) | Erfasst eine kostenlose Anmeldung als Lead, verknüpft mit der aktuellen Empfehlung (sendet an /api/v1/r/lead/signup, einmal pro Sitzung, mit der aktuellen subId, damit ein späterer Verkauf das Tag übernimmt). Tut nichts, wenn es keine Empfehlung oder keine E-Mail-Adresse gibt. Das ist reine Lead-Erfassung; ein Verkauf wird damit nie erfasst. |
identify(...) | Alias von convert(...). |
affiliate.name kann null sein, wenn der Affiliate keinen Anzeigenamen festgelegt hat.
Du kannst den Loader die E-Mail-Adresse auch automatisch aus einem Formular erfassen lassen: Ergänze dein E-Mail-Feld um data-rekomi-email oder setze am Script-Tag ein Attribut data-email-selector, das auf dein Feld zeigt. Der Loader liest dann diesen Wert, wenn er den Lead sendet.
Das Tag, das Rekomi ausgibt, trägt data-rkmi-email-capture="auto" (oder capture=auto in der Skript-URL). In diesem Modus erfasst der Loader den Lead in dem Moment, in dem ein vermittelter Besucher eine E-Mail-Adresse fertig in ein beliebiges E-Mail- oder Textfeld getippt hat (bei Änderung oder beim Verlassen des Felds). Außerdem durchsucht er die Felder jedes abgeschickten Formulars. Damit sind auch ein Checkout direkt auf der Seite und ein Login-Schritt abgedeckt, die nie ein Formular abschicken (beehiiv ist der typische Fall). Ohne Empfehlung erfasst er weiterhin nichts, und er sendet dieselbe E-Mail-Adresse nie zweimal in einer Sitzung. Entferne das Attribut, um das auszuschalten: Ohne das Attribut fällt der Loader auf capture zurück, das nur beim Absenden eines Formulars das Feld ausliest, das data-email-selector oder data-rekomi-email benennt. So verhält sich auch eine Website, die noch ein älteres Tag installiert hat. Bei beehiiv, Kit, MailerLite, Ontraport und GoHighLevel schreibt die Plattformverbindung unter Integrationen dem Affiliate Verkäufe ohne dieses Skript gut, und zwar über den Anmeldedatensatz der Plattform selbst; der Erfassungsmodus deckt dann nur Leser ab, die schon vor ihrem Klick abonniert hatten. Siehe Leads und Verkäufe aus deiner Plattform.
Einstellungen. Jede Einstellung gibt es als URL-Variante und als Attribut. Nutze die URL-Variante immer dann, wenn ein Tag-Manager das Skript einfügt: Google Tag Manager baut das Tag neu und lässt dabei jedes data--Attribut weg, ein Tag nur mit Attributen lädt Rekomi dann ohne Programm-ID und ohne Erfassungsmodus.
| Einstellung | Attribut | URL-Variante | Standard | Was sie bewirkt |
|---|---|---|---|---|
| Programm | data-program-id | program= | keiner, Pflichtangabe | Die Kampagne, zu der der Klick und ein möglicher Lead gehören. |
| E-Mail-Erfassung | data-rkmi-email-capture | capture= | auto im Tag, das Rekomi ausgibt; capture ist der Fallback des Loaders, wenn das Attribut fehlt | auto erfasst einen Lead, sobald ein vermittelter Besucher eine E-Mail-Adresse fertig in ein E-Mail- oder Textfeld getippt hat, und durchsucht abgeschickte Formulare. capture liest nur beim Absenden eines Formulars das Feld aus, das data-email-selector oder data-rekomi-email benennt. |
| E-Mail-Selektor | data-email-selector | emailSelector= | keiner | CSS-Selektor des E-Mail-Felds, das der Loader beim Absenden des Formulars ausliest. |
| Attributionsparameter | data-rkmi-params | params=a,b | die eingebaute Liste (via, ref, fpr und die übrigen) | Eigene Attributionsparameter, gespeichert unter Einstellungen > Link-Tags; das Dashboard ergänzt dein Snippet automatisch darum. |
| Pixel-Schlüssel | data-rekomi-org | org= | keiner | Dein öffentlicher Pixel-Schlüssel, wenn deine Installation einen nutzt; das Dashboard ergänzt ihn automatisch. |
Affiliate und Kampagne beim Laden erfassen
So erfasst du am besten, wer eine Anmeldung vermittelt hat: im Browser, in dem Moment, in dem die Seite lädt, ganz ohne Backend-Integration:
<script>
window.Rekomi.ready(function (R) {
if (!R.referral) return; // visitor was not referred
// R.referral -> "b7pa99hvx7zx"
// R.affiliate -> { id: "...", name: "Milo Okha" } (or null)
// R.campaign -> { id: "...", name: "Viraly Affiliate Program" } (or null)
myApp.setReferral({
referral: R.referral,
affiliateName: R.affiliate ? R.affiliate.name : null,
campaignName: R.campaign ? R.campaign.name : null
});
});
</script>Schicke diese Felder dann bei der Registrierung an dein Backend. Weil ready() auf die Abfrage wartet, sind affiliate.name und campaign.name befüllt, auch wenn du sie direkt nach dem Laden der Seite ausliest.
Lies affiliate/campaign innerhalb von ready() aus
getReferral() und R.referral (der Slug) sind synchron. R.affiliate und R.campaign werden nach einer kurzen asynchronen Abfrage befüllt. Liest du sie sofort direkt am Objekt window.Rekomi aus, können sie noch null sein. Lies sie immer innerhalb eines ready()-Callbacks aus.
Alternative auf dem Server
Willst du einen Slug lieber in deinem Backend auflösen, bekommst du dieselben Daten von einem öffentlichen Endpunkt:
GET https://api.rekomi.com/api/v1/r/resolve?via=SLUG[&program=PROGRAM_ID]{
"referral": "b7pa99hvx7zx",
"affiliate": { "id": "6be0bba5-…", "name": "Milo Okha" },
"campaign": { "id": "cd1a591e-…", "name": "Viraly Affiliate Program" }
}Liefert 404 für einen unbekannten oder gesperrten Slug. Der optionale Parameter program ist deine data-program-id; gib ihn mit, damit kontoweite Slugs zur richtigen Kampagne aufgelöst werden.
Was sichtbar ist (und was nicht)
Im Browser sichtbar sind der Anzeigename des Affiliates und der Name der Kampagne, also dieselben Angaben wie auf deinen öffentlichen Anmelde- und Rekrutierungsseiten. Nicht sichtbar sind die E-Mail-Adresse des Affiliates und alle anderen personenbezogenen Daten (PII). Die holst du auf dem Server über die authentifizierte REST-API (der Conversion-Feed liefert zum Beispiel affiliateEmail und stripeCustomerId).
Single-Page-Apps
window.Rekomi bleibt über Routenwechsel im Browser hinweg bestehen und wird deshalb nur einmal beim ersten Laden der Seite initialisiert. Wird dein Registrierungsformular erst nach einem Routenwechsel eingebunden, registriere einen ready()-Callback, wenn diese Komponente eingebunden wird (oder speichere die Werte beim ersten Laden im App-State), statt dich darauf zu verlassen, dass das Skript erneut läuft.
Conversion-Tracking
Dieses Skript kümmert sich nur um die Klick-Attribution und den Empfehlungskontext. Verkäufe erfasst dein Zahlungsanbieter automatisch (Stripe, Paddle, Braintree, Shopify, Lemon Squeezy, Chargebee, Polar, Recurly, Gumroad, Creem, Dodo Payments, Mollie), oder du meldest sie über die S2S-API. Leads (kostenlose Anmeldungen, die vor einer Zahlung erfasst werden) werden bei Stripe, Paddle, Chargebee, Recurly und Creem automatisch und ohne zusätzlichen Code erfasst; bei Polar erfasst ein zugeordneter Start einer Testphase ebenfalls automatisch einen $0-Lead. Nutze Rekomi.convert() für Anmeldungen in Freemium- oder kostenlosen Plänen, die nie ein Abrechnungsobjekt anlegen, für die übrigen Zahlungsanbieter (Braintree, Shopify, Lemon Squeezy, Gumroad, Dodo Payments, Mollie) und für Polar-Anmeldungen ohne Testphase. Es erfasst eine kostenlose Anmeldung als Lead, damit ein späteres Upgrade dem Affiliate auch dann gutgeschrieben wird, wenn das Klick-Cookie weg ist. Übergib bei Mollie außerdem dieselbe E-Mail-Adresse als billingAddress.email an der Zahlung, weil im gehosteten Checkout von Mollie kein Skript läuft und der Verkauf über den Webhook gutgeschrieben wird. Siehe Leads und Anmeldungen tracken. Bei beehiiv, Kit, MailerLite, Ontraport und GoHighLevel ist das Skript für die Attribution optional: Die Plattformverbindung schreibt dem Affiliate Verkäufe über den Anmeldedatensatz der Plattform selbst gut, und das Skript ergänzt die Klickzahlen.
Referenz der S2S-Tracking-API
HMAC-signierte Übermittlung von Conversions für jeden Zahlungsanbieter jenseits der direkten Verbindungen zu Stripe, Paddle, Braintree, Shopify, Wix, BigCommerce, Lemon Squeezy, Chargebee, Polar, Recurly, Gumroad, Creem, Dodo Payments und Mollie.
Leads und Anmeldungen tracken
Erfasse eine kostenlose, identifizierte Anmeldung (eine E-Mail-Adresse, die mit der Empfehlung verknüpft ist) noch vor der Zahlung, damit ein späterer Verkauf dem Affiliate auch dann gutgeschrieben wird, wenn das Klick-Cookie weg ist. Automatisch bei Stripe, Paddle, Chargebee, Recurly und Creem, optional bei allen anderen.