Data-Warehouse-Integrationen sind als Premium-Add-on für unsere Module Web Experimentation und Feature Experimentation verfügbar. Für weitere Informationen wenden Sie sich bitte an Ihren Customer Success Manager.
Wir unterstützen derzeit Data-Warehouse-Integrationen von folgenden Anbietern:
- BigQuery
- Snowflake
- Redshift
- Databricks
Die Unterstützung für den folgenden Anbieter folgt in Kürze:
Für weitere Informationen und wenn Sie an unserem Early-Adopter-Programm teilnehmen möchten, wenden Sie sich bitte an Ihren Customer Success Manager.
Importierte Audiences in einem Kameleoon-Experiment ansprechen
Dieses Standardbeispiel zeigt die einfachste Methode, importierte Audiences in einem Kameleoon-Experiment anzusprechen. Angenommen, Sie haben in Ihrem Warehouse eine Tabelle user, deren Beispiel wie folgt aussieht:
In diesem Beispiel möchten wir alle Benutzer ansprechen, die in London geboren wurden. Diese Audience erfordert eine Ingestion-Aufgabe, die Sie wie oben beschrieben konfigurieren können. Wir nennen diese Ingestion-Aufgabe „The Londoners”. Die SQL-Abfrage für diese Aufgabe lautet:
SELECT id FROM user WHERE place_of_birth="LONDON"
Um die durch diese (und alle anderen) Ingestion-Aufgaben abgefragten Audiences anzusprechen, müssen Sie die folgende Einrichtung durchlaufen.
- Klicken Sie im linken Menü auf Configure > Custom data.
- Klicken Sie auf New custom data.
- Geben Sie einen Namen für Ihre benutzerdefinierten Daten an.
- Wählen Sie das Projekt aus, für das Sie die Datenaufnahmeaufgabe konfiguriert haben.
- Wählen Sie die Akquisemethode Kameleoon SDK method oder Custom JavaScript code.
- Bitte beachten Sie den folgenden Abschnitt zu diesem Parameter hier.
- Wählen Sie List als Typ und String als Format.
- Wählen Sie für Scope die Option Visit.
- Klicken Sie auf Next.
- Sie können die verschiedenen Werte festlegen, die in der Targeting-Bedingung des erstellten Segments angezeigt werden. Klicken Sie auf Save the values for the targeting condition associated with the custom data point.
const sitecode= "YOUR_SITE_CODE"; //replace this value with your project's sitecode.
const xhr = new XMLHttpRequest();
xhr.open('GET', `https://data.kameleoon.io/map/maps?siteCode=${sitecode}&keys=%5B%22warehouse%5Faudience%5Fconfig%22%5D`, false);
xhr.send(null);
if (xhr.status === 200) {
const data = JSON.parse(xhr.responseText)
if ("warehouse_audience_config" in data) {
if ("audience_labels" in data["warehouse_audience_config"]) {
return data["warehouse_audience_config"]["audience_labels"];
}
}
return [];
} else {
console.error("Error calling for existing custom data values");
return [];
}
- Klicken Sie auf Create.
Akquise benutzerdefinierter Daten
Die Akquisemethode für benutzerdefinierte Daten legt fest, welcher Code den Wert der benutzerdefinierten Daten füllt und wo dieser Code ausgeführt wird. Je nach Ihrer Kameleoon-Einrichtung gibt es mehrere Akquisemöglichkeiten.
Wenn Sie ausschließlich Feature Experimentation verwenden, können Sie Kameleoon SDK method auswählen. Bei dieser Methode wird der Akquise-Code an den Stellen ausgeführt, an denen Sie Methoden des Kameleoon SDK eingebunden haben. Diese Kameleoon-Methoden rufen die Warehouse-Audiences ab, zu denen Ihr Besucher gehört, und speichern diese Informationen im Bereich Custom Data. Der genaue Code-Schnipsel hängt vom verwendeten SDK ab. Hier ein Beispiel mit unserem JavaScript SDK:
import { KameleoonClient, KameleoonUtils } from '@kameleoon/javascript-sdk';
const client = new KameleoonClient('my_site_code');
async function init() {
await client.initialize();
// -- Get visitor code
const visitorCode = KameleoonUtils.getVisitorCode('www.example.com');
// -- Get the warehouse visitor id
warehouseVisitorId = anyClient.getThisVisitorId();
// -- Index of your custom data
const customDataIndex = 10;
// -- Get visitor warehouse audience data using `warehouseKey`
// and add it to storage
const customData: CustomData = await getVisitorWarehouseAudience({
visitorCode: 'my_visitor',
customDataIndex: customDataIndex,
warehouseKey: warehouseVisitorId,
});
}
init();
Beachten Sie, dass die Variable warehouseVisitorId mit der Besucher-ID gefüllt werden muss, die Ihre Organisation für diesen Besucher in ihrem Warehouse verwendet. Diese Codezeile hängt vom Besucheridentifikationssystem Ihrer Organisation ab. Wenn Sie keines haben, können Sie den Kameleoon Visitor Code verwenden, müssen den Kameleoon Visitor Code dann jedoch auch in Ihrem Warehouse verwenden.
Ersetzen Sie den Wert von customDataIndex durch den Index Ihrer benutzerdefinierten Daten. Sie finden den Index im dashboard:
Wenn Sie Web Experimentation (oder sowohl Web Experimentation als auch Feature Experimentation) verwenden, können Sie Custom JavaScript code auswählen. In diesem Fall wird der Code-Schnipsel von der Datei kameleoon.js ausgeführt. Sie können entweder den folgenden Schnipsel zum globalen Skript Ihres Projekts hinzufügen (in Admin > Configure > und dann das entsprechende Projekt bearbeiten):
const warehouseVisitorId = anyClient.getThisVisitorId();
Kameleoon.API.Data.retrieveDataFromRemoteSource(warehouseVisitorId, function(data) {
if("warehouseAudiences" in data){
Kameleoon.API.Data.setCustomData("My Warehouse Audiences", Object.keys(data["warehouseAudiences"]));
}
In diesem Fall müssen wir den Namen Ihrer benutzerdefinierten Daten und nicht den Index verwenden, wie im vorherigen SDK-Beispiel.
Alternativ können Sie den folgenden Schnipsel beim Konfigurieren der benutzerdefinierten Daten in das entsprechende Feld eingeben:
const warehouseVisitorId = anyClient.getThisVisitorId();
if (typeof window.kameleoon_configured_warehouse_audiences === 'undefined') {
window.kameleoon_configured_warehouse_audiences = null;
Kameleoon.API.Data.retrieveDataFromRemoteSource(warehouseVisitorId, function(data) {
if ("warehouseAudiences" in data) {
window.kameleoon_configured_warehouse_audiences = Object.keys(data["warehouseAudiences"]);
}
});
}
if (window.kameleoon_configured_warehouse_audiences === null) {
return null;
}
return {"value": window.kameleoon_configured_warehouse_audiences};
Dies ist eine einmalige Einrichtung, die für alle Ihre Ingestion-Aufgaben funktioniert.
Angenommen, Sie haben beispielsweise eine zweite Ingestion-Aufgabe, die Besucher abfragt, die im März geboren wurden, und nennen sie „Born in March”. Der Wert der benutzerdefinierten Daten für einen Besucher, der im März und in London geboren wurde, enthält beide Audiences („The Londoners”, „Born in March”).
So können Sie diese einzigen benutzerdefinierten Daten für alle Ihre Kameleoon-Segmente verwenden, die Ihre Warehouse-Audiences ansprechen. Sie können diese benutzerdefinierten Daten dann in Ihren Kameleoon-Kampagnen (Experimenten, Feature-Experimenten oder Personalisierungen) verwenden, um Benutzer anhand ihrer Zugehörigkeit zu einer bestimmten Audience in Ihrem Warehouse anzusprechen.
Um ein solches Segment zu erstellen, folgen Sie diesen Schritten:
- Erstellen Sie ein Segment, wie in der zugehörigen Dokumentation beschrieben.
- Verwenden Sie in Ihrem Segment eine Bedingung für benutzerdefinierte Daten.
- Wenn Sie den Operator is among the values auswählen, sollten Sie die Liste der Audiences sehen, die den von Ihnen erstellten Datenaufnahmeaufgaben zugeordnet sind: The Londoners, Born in March usw.
Importierte Audiences nach Attributen ansprechen
In diesem Abschnitt wird eine alternative Methode erläutert, um aus Ihrem Warehouse importierte Audiences anzusprechen. Diese Methode ist besonders hilfreich, wenn Sie separate Experimente durchführen möchten, die unterschiedliche Werte desselben Besucherattributs ansprechen. Wir behalten dieselben Daten und denselben Anwendungsfall wie im vorherigen Beispiel bei, nur dass wir diesmal viele verschiedene Herkunftsstädte ansprechen möchten und nicht nur Besucher, die in London geboren wurden. Dieses Targeting wäre mit dem zuvor beschriebenen Setup möglich: Sie würden für jeden anzusprechenden Geburtsort eine Ingestion-Aufgabe erstellen. Dies könnte jedoch etwas mühsam sein, wenn Sie 50 verschiedene Städte ansprechen möchten.
Kameleoon ermöglicht es Ihnen, Attribute der Besucher in Ihren Warehouse-Audiences zu importieren. Der Import erfolgt, indem Sie der SQL-Abfrage nach dem Feld der Besucher-ID zusätzliche Felder hinzufügen, etwa so:
SELECT id, place_of_birth FROM user
Sie können dann benutzerdefinierte Daten erstellen, die diesmal den Wert des Attributs place_of_birth enthalten. Für die Implementierung mit dem JavaScript SDK sieht der Code so aus:
import { KameleoonClient } from '@kameleoon/javascript-sdk';
const client = new KameleoonClient('my_site_code');
async function init() {
await client.initialize();
// -- Get the warehouse visitor id
warehouseVisitorId = anyClient.getThisVisitorId();
// -- Id of the ingestion task
const taskId = your_task_id;
// -- Name of the attribute
const attributeName = "place_of_birth";
// -- Get remote data
const jsonData = await getRemoteData(warehouseVisitorId);
const data = JSON.parse(jsonData);
if ("warehouseAudiences" in data){
if (taskId in data["warehouseAudiences"]){
const city = data["warehouseAudiences"][taskId][attributeName];
`// -- The index of the custom data you have created`
const customDataIndex = your_index;
const customData = new CustomData(customDataIndex, city);
// -- Add custom data
client.addData(warehouseVisitorId, customData);
}
}
}
init();
Alternativ ist dies der gleichwertige Code, den Sie beim Konfigurieren der benutzerdefinierten Daten mit der Akquisemethode „Custom JavaScript code” verwenden können:
const warehouseVisitorId = anyClient.getThisVisitorId();
const taskId = "your_task_id";
const attributeName = "place_of_birth";
if (typeof window.kameleoon_configured_warehouse_attribute === 'undefined') {
window.kameleoon_configured_warehouse_attribute = null;
Kameleoon.API.Data.retrieveDataFromRemoteSource(warehouseVisitorId, function(data) {
if ("warehouseAudiences" in data) {
if (taskId in data["warehouseAudiences"]){
const city = data["warehouseAudiences"][taskId][attributeName];
window.kameleoon_configured_warehouse_attribute = city;
}
}
});
}
if (window.kameleoon_configured_warehouse_attribute === null) {
return null;
}
return {"value": window.kameleoon_configured_warehouse_attribute};
Sie können dann ein Kameleoon-Segment erstellen, das den Namen der Stadt im Wert der benutzerdefinierten Daten anspricht. Wenn Sie mehrere Städte in einem Segment ansprechen möchten, können Sie beim Erstellen des Segments mehrere Or-Bedingungen zu denselben benutzerdefinierten Daten hinzufügen.
Beachten Sie, dass die taskId hier die eindeutige numerische Kennung der Ingestion-Aufgabe ist, die in der Benutzeroberfläche zu finden ist, in der die Aufgabe definiert wurde.
Sie können beliebig viele Besucherattribute in die SQL-Anfrage einfügen und diese Attribute mit unseren SDKs auf vielfältige Weise nutzen.
Besucheridentifikation
Moderne Apps und Websites nutzen viele externe Tools und häufig viele Besucheridentifikatoren. Damit diese Funktion funktioniert, muss der in den obigen Codebeispielen verwendete Besucheridentifikator zum Abrufen des JSON-Objekts mit dem aus Ihrem Warehouse extrahierten Identifikator übereinstimmen.
Wie dieser Besucheridentifikator generiert wird, bleibt Ihnen überlassen. Es gibt viele Möglichkeiten. Sie können Identifikatoren verwenden, die erst nach der Anmeldung des Benutzers in Ihrer Lösung verfügbar sind, z. B. eine E-Mail-Adresse. Sie können anonyme Identifikatoren verwenden, wenn Ihr Unternehmen keine Anmeldung erfordert oder unterstützt. Sie können sogar eine Mischung aus beiden verwenden, wenn Sie einen Anwendungsfall haben, in dem Sie Benutzer unabhängig davon ansprechen möchten, ob sie angemeldet sind oder nicht.
Sie sind für Ihr Data Warehouse und die Verwaltung der Tabelle verantwortlich, die Kameleoon abfragt. Es gibt daher keine Einschränkungen, außer dass der Identifikator zu einem bestimmten Zeitpunkt für das Tracking verfügbar sein muss.
Das Kameleoon Customer Success Team kann Sie bei der Wahl eines Identifikators basierend auf Ihrem spezifischen Setup, Ihren externen Tools und Ihren Geschäftsanforderungen beraten.