ChurnReturn DEEN

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:

AufrufWirkung
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:

Ereignisdetail
churnreturn:readytriggers (scharfe Trigger auf dieser Seite), only (Wert von cr_trigger), mobile
churnreturn:triggertrigger: ein Trigger hat ausgelöst, Empfehlungen werden geladen
churnreturn:blockedtrigger, reason: already_shown, not_servable, dwell_rule oder frequency
churnreturn:impressiontrigger, products: Overlay angezeigt
churnreturn:emptytrigger: keine Empfehlungen für diese Seite
churnreturn:dismisstrigger: Overlay geschlossen
churnreturn:pageviewpath: 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)

EndpunktZweck
GET /configKonfiguration 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
BereichEndpunkte
AdvertiserGET /advertisers, GET|PUT /advertisers/{id}, GET|PUT|DELETE /advertisers/{id}/members
WebsitesGET|POST /advertisers/{id}/sites, GET|PUT|DELETE /sites/{id}, PUT /sites/{id}/status|template|css|js, GET /sites/{id}/history, POST /sites/{id}/preview
FeedsGET|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
KeysGET|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.