- Besuchsereignisse für einen bestimmten Besucher abzurufen.
- Zusätzliche Besuchsereignisse für einen bestimmten Besucher zu senden, wie zum Beispiel Offline-Konversionsereignisse.
- Produktdaten für einen bestimmten Sitecode zu senden und abzurufen.
- Zusätzliche Daten für einen bestimmten Besucher zu speichern, wie zum Beispiel CRM- oder Segmentierungsdaten.
Data API in Postman testen
Testen Sie Data-API-Anfragen ohne Code mit der Kameleoon-Data-API-Collection in Postman. Die Collection enthält eine Anfrage pro Endpoint, und jede Anfrage gibt eine200-Antwort zurück, sobald Sie die Variablen festgelegt haben.
So verwenden Sie die Collection:
- Laden Sie die Kameleoon-Data-API-Collection als ZIP-Archiv herunter, entpacken Sie die JSON-Datei und importieren Sie sie in Postman.
- Legen Sie im Tab Variables der Collection
baseUrlauf den Host Ihres Projekts undsiteCodeauf den Site-Code Ihres Projekts fest. - Um
POST /visit/forgetaufzurufen, tragen Sie zusätzlichclientIdundclientSecretein, die Sie über den Authentifizierungsablauf der Automation API erhalten, und senden Sie dann Get access token. Die Anfrage speichert das Token in der VariableaccessToken. - Senden Sie eine beliebige andere Anfrage.
Data-API-Endpoints
Die Endpoints lassen sich in drei Hauptkategorien von Daten einteilen:Visit-Endpoints
Die Visit-Endpoints rufen Ereignisse (Conversions, Custom Data, Segmente und mehr) für einen bestimmten Besuchercode ab und senden sie. Verwenden Sie diese Endpoints, um Offline-Kaufdaten, wie zum Beispiel Einkäufe im stationären Handel, in Kameleoon zu importieren.- GET /visit/visitor: Dieser Endpoint ruft die von Kameleoon erfassten Besuchsdaten ab, wie zum Beispiel Experimente und Personalisierungen, die für den Benutzer ausgelöst wurden, oder gezielte Segmente.
Der Zugriff auf diesen Endpoint erfordert die Kameleoon-Lösung Feature Experimentation. Weitere Informationen erhalten Sie beim Customer Success Manager.
- POST /visit/forget: Dieser Endpoint entfernt Daten für mehrere Besucher. Der Endpoint erfordert immer eine Authentifizierung. Rufen Sie ihn daher von Ihren Servern aus auf, niemals aus einem Browser.
- POST /visit/events: Dieser Endpoint sendet Daten für einen bestimmten Besucher, wie zum Beispiel Konversions- und Seitenaufruf-Ereignisse.
Product-Endpoints
Die Product-Endpoints rufen Produktdaten für einen bestimmten Sitecode ab und senden sie. Verwenden Sie diese Endpoints, um produktbezogene Ereignisse wie Ansichten, Hinzufügen zum Warenkorb oder Kaufereignisse zu registrieren oder um Statistiken zu bestimmten Produkten abzurufen, wie historische Kauf- oder Aufrufzahlen.- POST /product/events: Dieser Endpoint sendet Produktattribute und Ereignisse (Ansicht, Hinzufügen zum Warenkorb und Kauf) für mehrere Produkte. Die Activation API verwendet die Methoden
obtainProductDataundobtainProductInteractions, um diese Daten abzurufen und für Targeting oder Empfehlungen zu verwenden. - GET /product/productCounters: Dieser Endpoint ruft Zählwerte (Anzahl der Aufrufe, Mengen im Warenkorb, Transaktionsmengen) für mehrere Produkte ab.
- GET /product/productData: Dieser Endpoint ruft Attribute für mehrere Produkte ab.
Sie benötigen Zugriff auf das Product Recommendation-Modul oder das Product Targeting-Add-on. Beide lassen sich in die Lösung Web Experimentation integrieren. Weitere Informationen erhalten Sie vom Customer Success Manager.
Map-Endpoints
Die Map-Endpoints speichern zusätzliche Daten für einen bestimmten Schlüssel (in der Regel ein Besuchercode oder eine interne User-ID). Die Activation API und alle SDKs verwenden die MethoderetrieveDataFromRemoteSource, um diese Daten abzurufen und für Targeting und Segmentierung zu verwenden. Verwenden Sie den map-Endpoint, um gespeicherte Daten für einen bestimmten Schlüssel abzurufen.
- GET /map/map: Dieser Endpoint ruft Daten für einen bestimmten Schlüssel ab.
- GET /map/maps: Dieser Endpoint ruft Daten für mehrere Schlüssel ab.
- POST /map/maps: Dieser Endpoint sendet Daten für mehrere Schlüssel.
Data-API-Hosts
Data-API-Anfragen gehen an einen Host, der von der Region und der Domain Ihres Projekts abhängt. Kameleoon hostet Projekte in Europa und Nordamerika, und jede Region hat einen Host auf der Domainkameleoon.io und auf der Domain kameleoon.eu.
Eine Anfrage an den Host der falschen Region erhält eine HTTP-
308-Weiterleitung an den richtigen Host. Um die Weiterleitung zu vermeiden, verwenden Sie den Host aus dem Location-Header als Basis-URL.
Domain auswählen
Beide Domains führen zu denselben Servern, die Domain ändert also nicht, wie sich Anfragen verhalten. Neuere Projekte verwendenkameleoon.io, ältere Projekte verwenden kameleoon.eu. Verwenden Sie die Domain, die zum Code-Snippet Ihres Projekts passt.
Ihre Domain finden
So finden Sie die Domain Ihres Projekts:- Klicken Sie auf Admin > Projects > Edit > Setup.
- Suchen Sie in Ihrem Code-Snippet die
src-Adresse, die wie//<siteCode>.kameleoon.io/engine.jsaussieht. - Lesen Sie die Domain hinter Ihrem Site-Code:
kameleoon.iooderkameleoon.eu.
Authentifizierung und Ratenbegrenzung
Authentifizierung
Standardmäßig erfordern die meisten Data-API-Endpoints keine Authentifizierung, da die Data API die Web-Experimentation-Engine beim Abrufen historischer Daten unterstützt. Die Ausnahme ist POST /visit/forget, das immer eine Authentifizierung erfordert. Für die Authentifizierung verwendet die Data API denselben Ablauf wie die Automation API mit JSON Web Tokens. Wahren Sie die Sicherheit und schützen Sie Ihre API-Anmeldedaten, indem Sie die Authentifizierung für bestimmte Anfragetypen verwenden:- Serverseitige Quellen: Für Anfragen, die von Ihren Servern stammen, empfiehlt Kameleoon die Authentifizierung dringend, da sie die Ratenbegrenzungen erhöht. Authentifizieren Sie sich, wenn Sie serverseitige SDKs mit Feature Experimentation verwenden.
- Clientseitige Quellen: Für Anfragen, die von einer Clientanwendung wie einem Webbrowser stammen, bei denen API-Anmeldedaten offengelegt werden könnten, sollten Sie sich nicht authentifizieren. Kameleoon empfiehlt diese Konfiguration bei der Verwendung von Web Experimentation nicht. Clientseitige Quellen können
POST /visit/forgetnicht aufrufen, da dieser Endpoint ein Token erfordert. Rufen Sie ihn nur von Ihren Servern aus auf.
Wenn Sie ausschließlich Feature Experimentation und serverseitige SDKs verwenden, kontaktieren Sie den Customer Success Manager, um die Authentifizierung für bestimmte Endpoints zu aktivieren. Kameleoon bietet eine flexible Einrichtung, um Endpoints zu sichern und die Authentifizierung auf GET- oder POST-Anfragen zu beschränken.
Ratenbegrenzungen
Die Data API erzwingt Ratenbegrenzungen basierend auf Ihren vertraglich vereinbarten monatlichen Unique Visitors (MUV) und Ihrer IP-Adresse. Wenn Ihre Anwendung eine dieser Grenzen überschreitet, gibt die API eine HTTP 429-„Too Many Requests”-Antwort zurück. Diese Ratenbegrenzungen stellen sicher, dass der Kameleoon-Service für alle Kunden leistungsfähig und zuverlässig bleibt. Für serverseitige Quellen können Sie die IP-basierten Begrenzungen durch Authentifizierung aufheben. In Umgebungen, in denen viele Besucher eine einzige IP-Adresse teilen, etwa in Büros oder Unternehmensnetzwerken, können die IP-basierten Begrenzungen auch dann greifen, wenn Ihre MUV im Rahmen des Vertrags bleiben.
Der Wert von
multiplier hängt von Ihrem Abonnement ab:
1— Sie nutzen nur eine Lösung, entweder Web Experimentation oder Feature Experimentation2— Sie nutzen sowohl Web Experimentation als auch Feature Experimentation
Wenn Sie für Ihren Anwendungsfall höhere Ratenbegrenzungen benötigen, wenden Sie sich bitte an Ihren Account Manager, um weitere Informationen zu erhalten.
Was Anfragen generiert
Das Verständnis, welche Operationen GET- und POST-Anfragen generieren, hilft Ihnen, den Verbrauch Ihres Rate-Limits zu schätzen und zu verwalten. Die folgende Aufschlüsselung gilt hauptsächlich für clientseitige Technologien (engine.js, das JavaScript SDK und mobile SDKs), bei denen jedes Gerät eigene Anfragen sendet. Für POST-Tracking-Anfragen sind serverseitige SDKs bei großen Datenmengen effizienter, da sie Daten mehrerer Besucher in einer einzigen Anfrage bündeln können; GET-Anfragen richten sich immer an einen einzelnen Besucher. Ihre Anwendung löst GET-Anfragen nur aus, wenn sie explizit einen der folgenden Vorgänge aufruft. Das SDK und der Engine führen kein automatisches Polling durch:- Besucherdaten-Abruf:
getRemoteVisitorData()(SDKs) oderperformRemoteSynchronization()(engine.js) laden Remote-Besucherdaten für einen bestimmten Besucher bei Bedarf. - Remote-Daten- und Warehouse-Audience-Abruf:
getVisitorWarehouseAudience()(SDKs) oderretrieveDataFromRemoteSource()(SDKs und engine.js) laden Data-Warehouse- oder Remote-Map-Daten bei Bedarf.
- Tracking-Anfragen: Der primäre wiederkehrende POST-Aufruf. Das SDK oder der Engine bündelt ausstehende Besucherdaten und sendet sie höchstens einmal pro Tracking-Intervall, jedoch nur wenn Daten ausstehen. Das Standardintervall beträgt 1 Sekunde. In SDKs können Sie das Intervall zwischen 1 und 5 Sekunden mithilfe von
trackingIntervalMillisecond/tracking_interval_millisecondkonfigurieren; engine.js verwendet ein festes Intervall von 500 Millisekunden. Konversionen, getrackte Feature-Flag-Auswertungen und expliziteflush()-Aufrufe stellen Daten für das nächste Intervall in die Warteschlange, oder senden sie sofort, wenn Sie einen sofortigen Flush auslösen. - Activity-Tracking: Ein sekundärer Mechanismus, der Besucheraktivitätsdaten (Klicks, Scrollvorgänge und Mausbewegungen) in den nächsten Tracking-Versand einbindet. Das SDK sammelt Aktivitätsdaten nur, wenn der Benutzer auf dem aktiven Tab aktiv ist. Das Standardintervall beträgt 60 Sekunden. In SDKs können Sie das Intervall mithilfe von
activityTrackingIntervalMillisecond/activity_tracking_interval_millisecondkonfigurieren; engine.js verwendet ein festes Intervall von 60 Sekunden.
flush({instant: true}) explizit auf. Wenn die Kameleoon Engine (window.Kameleoon) ebenfalls auf der Seite vorhanden ist, verhindert das SDK eine doppelte Activity-Tracking-Erfassung.
Kontoweite Limits
Ratenlimits gelten für Ihr gesamtes Kundenkonto, nicht für einzelne Projekte. Wenn ein Projekt übermäßig viele Anfragen erzeugt (beispielsweise weil eine fehlerhafte Implementierung eine Schleife erstellt, die Custom-Data-Events wiederholt sendet), verbraucht dieses Projekt das gemeinsame Konto-Limit und kann HTTP 429-Fehler in all Ihren anderen Projekten verursachen.Diagnose von übermäßigem Anfragevolumen
Verwenden Sie die Live events-Seite (Insights > Live events), um das Projekt zu identifizieren, das unerwarteten Traffic erzeugt:- Ereignisvolumen nach Projekt prüfen: Wählen Sie jedes Projekt nacheinander aus und prüfen Sie die Ereignisanzahl der letzten Stunde oder 24 Stunden. Ein Projekt, das deutlich mehr Ereignisse erzeugt, als sein Besuchervolumen rechtfertigt (beispielsweise mehrere Millionen Ereignisse bei einem Vertrag mit 100.000 MUV), ist wahrscheinlich die Ursache.
- Nach Ereignistyp filtern: Sobald Sie das verdächtige Projekt identifiziert haben, filtern Sie die Ereignisse nach Typ. Custom-Data-Events sind die häufigste Ursache für unerwartetes Volumen. Eine fehlerhafte Implementierung kann eine Schleife erstellen, die dieselbe Custom-Data-Variable oder alle Custom-Data-Variablen bei jedem Seitenaufruf sendet und in kurzer Zeit eine große Anzahl von Ereignissen produziert.
Ihre Anfragenanzahl prüfen
Verwenden Sie die Data-API-Request-Endpoints der Automation API, um genau zu sehen, woher Ihr Anfragevolumen an die Data API stammt, bevor es sich Ihrem Rate Limit nähert:- Nach Endpoint:
GET /data-api-requests/by-endpointgibt die Anzahl der an die Data API gesendeten Anfragen für eine bestimmte Site zurück, aufgeschlüsselt nach Tag, HTTP-Methode, Pfad und Statuscode. Verwenden Sie diesen Endpoint, um zu erkennen, welche Integration oder welcher Endpoint Ihren Traffic verursacht. - Nach Quelle:
GET /data-api-requests/by-sourcegibt die Anzahl der an die Data API gesendeten Anfragen für eine bestimmte Site zurück, aufgeschlüsselt nach Tag und Quelle (Engine,SDK: <name>oderDirect). Verwenden Sie diesen Endpoint, um zu erkennen, welcher Clienttyp Ihren Traffic verursacht.
Der Bereich zwischen
from und to darf 7 Tage nicht überschreiten.curl
curl