Hilfe › Für Entwickler
Für Entwickler
Alles, was die Verwaltung tut, geht auch per API. Das Snippet nutzt dieselben Endpunkte. Basis: https://churnreturn.com/api/v1, alle Antworten JSON.
Snippet-Schnittstelle im Browser
Das Skript stellt ein globales Objekt bereit:
| Aufruf | Wirkung |
|---|---|
ChurnReturn.consent(true) | Einwilligung melden, schaltet auf den Modus „nach Einwilligung“ |
ChurnReturn.trigger('name') | eigenen Trigger auslösen, zum Beispiel aus dem Warenkorb-Event; der Name muss in der Konfiguration als Trigger vom Typ custom angelegt sein |
ChurnReturn.dismiss() | Overlay schließen |
ChurnReturn.config() | geladene Konfiguration lesen |
ChurnReturn.pageview() | Seitenwechsel melden (Single-Page-Anwendung ohne History-API); Wechsel per pushState, replaceState oder Zurück-Taste erkennt das Skript selbst |
Mit data-debug="1" am Script-Tag schreibt das Skript in die Browser-Konsole, was es tut. Mit ?cr_trigger=<typ> in der Seitenadresse ist nur dieser Trigger scharf (Test, siehe Trigger und Regeln).
Ereignisse
Das Skript meldet, was es tut, als CustomEvent auf document; die Daten stehen in event.detail. So lässt sich das Overlay in eigene Auswertungen einbinden, etwa in den Tag-Manager:
| Ereignis | detail |
|---|---|
churnreturn:ready | triggers (scharfe Trigger auf dieser Seite), only (Wert von cr_trigger), mobile |
churnreturn:trigger | trigger: ein Trigger hat ausgelöst, Empfehlungen werden geladen |
churnreturn:blocked | trigger, reason: already_shown, not_servable, dwell_rule oder frequency |
churnreturn:impression | trigger, products: Overlay angezeigt |
churnreturn:empty | trigger: keine Empfehlungen für diese Seite |
churnreturn:dismiss | trigger: Overlay geschlossen |
churnreturn:pageview | path: Seitenwechsel ohne Neuladen erkannt, Trigger starten neu |
document.addEventListener('churnreturn:impression', function (e) { dataLayer.push({ event: 'cr_overlay', trigger: e.detail.trigger }); });
Öffentliche Endpunkte (ohne Schlüssel, Website per Origin erkannt)
| Endpunkt | Zweck |
|---|---|
GET /config | Konfiguration der Website: Status, Trigger, Regeln, Texte, CSS, JS |
POST /recommendations mit {"url": "...", "text": "..."} | Empfehlungen zur Seite, Antwort mit Produkten, gerendertem HTML und request_id |
POST /events mit {"request_id", "type": "impression|click|dismiss", "product_id"} | Ereignis melden |
GET /resolve?url=... | prüfen, welches Produkt zu einer Adresse erkannt wird (mit Secret Key) |
Verwaltungs-API mit Secret Key
Einen Secret Key legen Admins je Advertiser an. Er gilt als Owner des Advertisers und gehört nur auf Ihren Server, nie in den Browser. Header: Authorization: Bearer cr_sk_…
curl -H "Authorization: Bearer cr_sk_…" https://churnreturn.com/api/v1/advertisers/12/feeds
curl -X POST -H "Authorization: Bearer cr_sk_…" -H "Content-Type: application/json" \
-d '{"embed": true}' https://churnreturn.com/api/v1/feeds/23/import
| Bereich | Endpunkte |
|---|---|
| Advertiser | GET /advertisers, GET|PUT /advertisers/{id}, GET|PUT|DELETE /advertisers/{id}/members |
| Websites | GET|POST /advertisers/{id}/sites, GET|PUT|DELETE /sites/{id}, PUT /sites/{id}/status|template|css|js, GET /sites/{id}/history, POST /sites/{id}/preview |
| Feeds | GET|POST /advertisers/{id}/feeds, GET|PUT|DELETE /feeds/{id}, POST /feeds/{id}/import, POST /feeds/{id}/embed, GET /feeds/{id}/products|runs|fields|sample|preview |
| Keys | GET|POST /advertisers/{id}/keys, DELETE /keys/{id} |
Fehler kommen als {"error": {"code": "...", "message": "..."}} mit passendem HTTP-Status. Die Site-Konfiguration wird beim Speichern validiert, jede Änderung erzeugt eine Version.
Eigene Trigger
Ein Trigger vom Typ custom mit einem Namen in der Konfiguration, dann feuert ChurnReturn.trigger('name') das Overlay, zum Beispiel beim Klick auf „Weiter einkaufen“ oder beim Entfernen eines Warenkorb-Artikels. Die Namen tragen Sie in der Verwaltung unter Trigger & Regeln bei „Eigene Trigger“ ein.