> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Segment JavaScript Tracker

> Senden Sie Kameleoon Experimentdaten an Segment und nutzen Sie Segment-Personas, -Traits und -Ereignisse in Kameleoon zum Targeting und zur Analyse von Kampagnen.

Mit dieser Integration konnen Sie Kameleoon nahtlos mit [Segment](https://segment.com/) verbinden, um:

* Kameleoon als Quelle zu verwenden, um Kampagnen-Expositionsereignisdaten (Kampagnenname und Variations-Name) an [Segment](https://segment.com/) zu senden, die dann von anderen auf dem [Segment](https://segment.com/catalog/)-Marketplace verfugbaren Plattformen genutzt werden konnen.
* Kameleoon als Ziel zu verwenden, um:
  * Segment-Ereignisse zu importieren, die Sie in Kameleoon-Experimenten und Web-Personalisierungen verwenden konnen.
  * Segment-Personas, -Traits und -Gruppen zu importieren und sie in unserem Segment Builder uber Custom Data zu verwenden.

**Hauptvorteile:**

* Senden Sie automatisch alle Daten, einschliesslich KPIs, von Segment an Kameleoon, um hochgradig getrackte und gezielte Optimierungskampagnen zu erstellen.
* Verbessern Sie das Targeting und analysieren Sie die Ergebnisse Ihrer A/B/n-Tests mit Segment-Ereignisdaten.
* Analysieren Sie die Wirkung von Testkampagnen auf die gesamte Customer Journey.
* Erreichen Sie Besucher, die einer Online-Kampagne ausgesetzt waren, uber andere Kanale (zum Beispiel E-Mail-Marketing-Kampagnen, mobile Apps) mithilfe der von Kameleoon gesendeten Segment-Ereignisse.

## Kameleoon-Expositionsereignisse in Segment einspielen

### Segment-Integration in Kameleoon aktivieren

1. Melden Sie sich bei der Kameleoon-App an.
2. Klicken Sie auf **Admin** > **Integrations** > **Install the tool**.
3. Wahlen Sie die Projekte aus, fur die Sie Segment konfigurieren mochten.
4. Klicken Sie auf **Validate**.

Sie sehen dann einen **ON**-Schalter rechts neben der Zeile des Tools sowie die Anzahl der Projekte, fur die das Tool konfiguriert ist.

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/as-a-destination/cdp/segment/setting-up-segment/integrations-setting-up-segment-5.png)
</Frame>

<Note>
  Stellen Sie sicher, dass das Segment-Skript (analytics.js) auf Ihren Seiten installiert ist, da Kameleoon Kampagnen-Expositionsereignisse uber die [JavaScript-API](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/) von Segment an Segment sendet.
</Note>

### Segment als Reporting-Tool in einem Kameleoon-Experiment oder einer Personalisierung verknupfen

Sobald die Integration auf der Seite "Integrations" aktiviert ist, konnen Sie sie als Reporting-Tool im Tab **Integrations** des Finalisierungspanels des Grafik-/Code-Editors auswahlen.

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/as-a-destination/cdp/segment/setting-up-segment/Capture-decran-2023-11-20-a-15.52.08.png)
</Frame>

Wenn Sie Segment in einer Kampagne aktiviert und als Reporting-Tool definiert haben, wird ein Ereignis namens "**Experiment viewed**" automatisch jedes Mal gesendet, wenn ein Besucher eine Variation eines aktiven Kameleoon A/B-Experiments sieht.

<Note>
  Wenn Sie Expositionsereignisse fur Feature Flags senden mussen, mussen Sie die [Hybrid-Funktionen](../../../../../developer-docs/feature-experimentation/get-started/hybrid-experimentation) aktivieren.
</Note>

### Den Sitecode Ihres Projekts abrufen

Sie mussen auch Ihren Sitecode in Ihrem Kameleoon-Konto abrufen.

Um zu erfahren, wie Sie Ihren Sitecode finden, [lesen Sie bitte diese Dokumentation](../../../../faq#how-do-i-find-my-sitecode).

### Geben Sie diese Informationen ein, wenn Sie Kameleoon als Ziel in Ihrer Segment-App einrichten

1. Klicken Sie im **Destinations Catalog** in der Segment-App auf **Add Destination**.
2. Suchen Sie im **Destinations Catalog** nach Kameleoon und wahlen Sie das Kameleoon-Ziel aus.

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/as-a-destination/cdp/segment/setting-up-segment/SegmentxKameleoon-1920x952.png)
</Frame>

3. Klicken Sie auf **Configure Kameleoon**.
4. Wahlen Sie die **Source** (z. B. App oder Website), die Daten an das Kameleoon-Ziel sendet.
5. Geben Sie den **API Key** und den **sitecode** in den Kameleoon-Zieleinstellungen in Segment ein.

### Benutzer zwischen Kameleoon und Segment abgleichen

Die Integration erfordert, dass Sie dasselbe Identifikationssystem fur beide Tools verwenden, was bedeutet, dass der **`userId`**-Wert, den Sie an Segment ubergeben, derselbe Wert sein sollte, den Kameleoon zur Identifikation eines **"Besuchers"** verwendet.

Wenn Sie Kameleoon Web Experiment verwenden, setzt Kameleoon ein Cookie, das einen anonymen eindeutigen Identifikator enthalt, den so genannten Kameleoon **`visitorCode`**, der einem Besucher zufallig zugewiesen wird. Diese ID wird verwendet, um einen Benutzer in einem Browser eindeutig zu identifizieren. Sie haben mehrere Moglichkeiten:

* Sie konnen unseren `visitorCode` in der Eigenschaft `userId` des [Segment identify-Aufrufs](https://segment.com/docs/connections/spec/identify/) ubergeben, um sicherzustellen, dass Kameleoon alle von Segment empfangenen Ereignisdaten dem richtigen Besucher zuordnen kann.
* Sie konnen unseren `visitorCode` in einem zusatzlichen Segment-Aufruf wie folgt ubergeben: `analytics.track('Kameleoon identifier', {'k_visitorCode': Kameleoon.API.Visitor.code})`. Kameleoon verknupft die Segment-Benutzer-ID oder anonyme ID automatisch mit unserem eigenen `visitorCode`. Stellen Sie sicher, dass Sie dies nur einmal pro Sitzung aufrufen. Wenn Sie beispielsweise Kameleoon Web Experimentation verwenden oder unsere Kameleoon-Anwendungsdatei (kameleoon.js) implementiert haben, um von den Funktionen der [hybriden Experimentation](../../../../../developer-docs/feature-experimentation/get-started/hybrid-experimentation) zu profitieren, konnen Sie das untenstehende Codebeispiel im [Abschnitt Global custom script](../../../../project-management/manage-your-projects#configuration) der Kameleoon-Projekteigenschaften verwenden.

```javascript theme={null}
Kameleoon.API.Core.runWhenConditionTrue(
     () => window.analytics && window.analytics.track && window.analytics.user,
     () => {
         const kSegmentioIdentifier = window.localStorage.getItem('k_segmentio_identifier');
         if(kSegmentioIdentifier && kSegmentioIdentifier === window.analytics.user().anonymousId()) return;
         window.localStorage.setItem('k_segmentio_identifier', window.analytics.user().anonymousId());
         window.analytics.track('Kameleoon identifier', {'k_visitorCode': Kameleoon.API.Visitor.code})
     }
 );
```

<Note>
  Wenn Sie [Kameleoon Feature Experimentation](https://www.kameleoon.com/platform/feature-experimentation/) verwenden, lesen Sie bitte die [Kameleoon SDK-Dokumentation](../../../../../developer-docs/feature-experimentation/get-started/overview), da Sie Ihre eigene ID festlegen konnen, anstatt einen generierten Kameleoon Visitor Code zu verwenden, und so exakt dieselbe ID zwischen Segment und Kameleoon verwenden konnen.
</Note>

### Unterstutzte Segment-Ereignisse und Personas

Kameleoon unterstutzt die folgenden Methoden: Track, Identify, Page, Screen und Group, wie in der [Segment-Spezifikation](https://segment.com/docs/connections/spec) festgelegt.

Wenn der Name des Segment-Ereignisses dem Namen eines vorhandenen [Ziels](../../../../assets/goals/create-a-goal) in Ihrem Kameleoon-Konto entspricht, wird dem Besucher eine Conversion fur dieses Ziel zugeordnet. Wenn das Ziel nicht existiert, erstellt Kameleoon ein [benutzerdefiniertes Ziel](../../../../assets/goals/create-a-goal#benutzerdefiniertes-ziel), indem es den Namen des Segment-Ereignisses verwendet, und ordnet dem Besucher die Conversion zu. Das Ziel wird auf der Kameleoon-[Ziele-Seite](../../../../assets/goals/manage-goals) mit der Namenskonvention **`SegmentIO [eventType] - [eventName]`** angezeigt. Nachdem das Ziel erstellt wurde, konnen Sie es in jeder Ihrer [Kampagnen](../../../../assets/goals/set-up-a-goal-campaign) verwenden.

Segment-Track-Aufrufe vom Typ [Audience Entered](https://segment.com/docs/personas/using-personas-data/#event-destinations), [Audience Exited](https://segment.com/docs/personas/using-personas-data/#event-destinations), [Identify](https://segment.com/docs/connections/spec/identify/) und [Group](https://segment.com/docs/connections/spec/group/). Diese werden als Kameleoon-[Custom Data](../../../../assets/custom-data/create-custom-data) erfasst.

Segment verwendet unseren [Data-API-Map-Endpunkt](/api-reference/map/update-data-for-several-keys), um Daten an Kameleoon zu senden.

#### Personas, Traits und Gruppe

Mit Kameleoon konnen Sie Benutzer basierend auf ihrer [Segment-Persona](https://segment.com/docs/personas/), Gruppe oder bestimmten Eigenschaften ansprechen.

Um Personas, Traits und Gruppen-IDs in unserem Segment Builder zu verwenden, mussen Sie [eine Custom Data einrichten](../../../../assets/custom-data/create-custom-data) in Ihrem Kameleoon-Konto fur das Projekt Ihrer Wahl.

##### Personas

Sie konnen Ihre Persona benennen (z. B. SegmentIO personas), und die Custom Data muss vom Typ **List of string** sein.

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/as-a-destination/cdp/segment/setting-up-segment/image-40-1920x952.png)
</Frame>

<Note>
  Bitte befolgen Sie die folgenden Richtlinien nur fur Web Experimentation.
</Note>

Sie konnen den folgenden Code in der Erfassungsmethode der Custom Data verwenden:

```javascript theme={null}
window.k_segmentIO = window.k_segmentIO || {};
 if(!window.k_segmentIO.runtime)
 {
     window.k_segmentIO.runtime = true;
```

Je nach Ihrer Einrichtung mussen Sie die geeignete Logik zum Abrufen der Benutzer-ID bestimmen.

Wenn Sie einen Track-Event-Aufruf verwendet haben, um unseren Visitor Code zu senden, verwenden Sie die folgende Zeile:

`const user_id = Kameleoon.API.Visitor.code;`

Alternativ, wenn Sie unseren Visitor Code als Segment-Benutzer-ID verwenden oder die Benutzer-ID aus dem Analytics-Objekt von Segment abrufen mussen, verwenden Sie den folgenden Code:

```javascript theme={null}
const user_id = window.analytics.user().id() || window.analytics.user().anonymousId();

Kameleoon.API.Data.retrieveDataFromRemoteSource(`COHORTS_${user_id}`, cohorts => {     window.k_segmentIO.cohorts = cohorts && cohorts !== '{}' ? Object.keys(cohorts).filter(key => cohorts[key]) : []; });``
 }
 if(!window.k_segmentIO.cohorts || !window.k_segmentIO.cohorts.length) return;
 return {"value": window.k_segmentIO.cohorts, "overwrite": true};
```

<Note>
  Um Segment-Personas in serverseitigen Experimenten oder Feature Flags zu verwenden, konnen Sie die in der Dokumentation des jeweiligen SDKs beschriebenen Richtlinien konsultieren.

  Unsere SDKs verwenden die Methode `getRemoteData()`. Diese Methode ruft Daten ab, die von Segment auf unseren Servern gespeichert sind, und macht sie in Ihrem Backend-Code zuganglich.

  Der "key"-Wert, der als erster Parameter verwendet werden soll, sollte folgendem Format folgen: `COHORTS_{user_id}`.
</Note>

##### Segment Persona-Namen in Kameleoon abrufen

Klicken Sie auf **Next** und aktivieren Sie die Option **Save the values for the targeting condition associated with the custom data point**. Fugen Sie den JS-Code unten hinzu und ersetzen Sie `XXXXXXXXX` durch den Kameleoon Sitecode. Um ihn zu finden, [folgen Sie bitte dieser Dokumentation](../../../../faq#how-do-i-find-my-sitecode).

```javascript theme={null}
var xhr = new XMLHttpRequest();
xhr.open("GET", '[https://api-data.kameleoon.com/data?key=common&siteCode=XXXXXXXXX](https://api-data.kameleoon.com/data?key=common&siteCode=XXXXXXXXX)', false);
var SegmentIOPersonas = [];
xhr.onreadystatechange = function() { 
   if(this.readyState === 4) {
     var segmentIOcohorts = JSON.parse(xhr.response);
	  if (segmentIOcohorts && segmentIOcohorts.cohorts) {
		  segmentIOcohorts.cohorts.forEach(persona => SegmentIOPersonas.push({value: persona, label: persona}) );

	   }
   }
}
xhr.send();
return SegmentIOPersonas;
```

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/as-a-destination/cdp/segment/setting-up-segment/Capture-decran-2024-03-12-a-15.20.29.png)
</Frame>

Klicken Sie auf **Validate**, um die Custom Data zu erstellen.

Das war's! Sie konnen jetzt [Segment-Personas](https://segment.com/docs/personas/) in unserem Segment Builder verwenden. Die Liste der verfugbaren Personas ist verfugbar, wenn Sie den Operator **is among the values** wahlen.

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/as-a-destination/cdp/segment/setting-up-segment/image-39-1920x952.png)
</Frame>

##### Traits

Um Traits in unserem Segment Builder zu verwenden, mussen Sie pro Trait-Typ eine Custom Data erstellen. Angenommen, Sie mochten Benutzer basierend auf dem Plan ansprechen, den sie auf Ihrer Website abonniert haben, und Sie haben drei verschiedene Plane: freemium, scale und enterprise. Sie mussen [eine Custom Data einrichten](../../../../assets/custom-data/create-custom-data) mit dem Namen "Subscribed Plan", und die Custom Data muss vom Typ "string" sein.

<Note>
  Bitte befolgen Sie die folgenden Richtlinien nur fur Web Experimentation.
</Note>

Sie konnen den folgenden Code in der Erfassungsmethode der Custom Data verwenden:

```javascript theme={null}
window.k_segmentIO = window.k_segmentIO || {};
 if(!window.k_segmentIO.runtime)
 {
     window.k_segmentIO.runtime = true;
```

Je nach Ihrer Einrichtung mussen Sie die geeignete Logik zum Abrufen der Benutzer-ID bestimmen.

Wenn Sie einen Track-Event-Aufruf verwendet haben, um unseren Visitor Code zu senden, verwenden Sie die folgende Zeile:

`const user_id = Kameleoon.API.Visitor.code;`

Alternativ, wenn Sie unseren Visitor Code als Segment-Benutzer-ID verwenden oder die Benutzer-ID aus dem Analytics-Objekt von Segment abrufen mussen, verwenden Sie die folgende Zeile:

```javascript theme={null}
const user_id = window.analytics.user().id() || window.analytics.user().anonymousId(); 
   
  Kameleoon.API.Data.retrieveDataFromRemoteSource(`IDENTIFY_${user_id}`, segment_identify_properties => {
         if(segment_identify_properties && segment_identify_properties.traits && segment_identify_properties.traits.plan){
             window.k_segmentIO.plan = segment_identify_properties.traits.plan;
         }
     });
 }
 if(!window.k_segmentIO.plan) return;
 return {"value": window.k_segmentIO.plan, "overwrite": true};
```

<Note>
  Um Traits in serverseitigen Experimenten oder Feature Flags zu verwenden, konnen Sie die in der Dokumentation des jeweiligen SDKs beschriebenen Richtlinien konsultieren.

  Unsere SDKs verwenden die Methode **`getRemoteData()`**. Diese Methode ruft Daten ab, die von Segment auf unseren Servern gespeichert sind, und macht sie in Ihrem Backend-Code zuganglich.

  Der "key"-Wert, der als erster Parameter verwendet werden soll, sollte folgendem Format folgen: `IDENTIFY_{user_id}`.
</Note>

Sie konnen denselben Richtlinien fur jede Trait-Eigenschaft folgen, die Sie im Segment Builder von Kameleoon verwenden mochten.

##### Gruppen-IDs

Um Gruppen-IDs in unserem Segment Builder zu verwenden, um Ihre Kampagnen anzusprechen, mussen Sie [eine Custom Data einrichten](../../../../assets/custom-data/create-custom-data) mit dem Namen "Group ID", und die Custom Data muss vom Typ **string** sein.

<Note>
  Bitte befolgen Sie die folgenden Richtlinien nur fur Web Experimentation.
</Note>

Sie konnen den folgenden Code in der Erfassungsmethode der Custom Data verwenden:

```javascript theme={null}
window.k_segmentIO = window.k_segmentIO || {};
 if(!window.k_segmentIO.runtime)
 {
     window.k_segmentIO.runtime = true;
```

Je nach Ihrer Einrichtung mussen Sie die geeignete Logik zum Abrufen der Benutzer-ID bestimmen.

Wenn Sie einen Track-Event-Aufruf verwendet haben, um unseren Visitor Code zu senden, verwenden Sie die folgende Zeile:

`const user_id = Kameleoon.API.Visitor.code;`

Alternativ, wenn Sie unseren Visitor Code als Segment-Benutzer-ID verwenden oder die Benutzer-ID aus dem Analytics-Objekt von Segment abrufen mussen, verwenden Sie die folgende Zeile:

```javascript theme={null}
const user_id = window.analytics.user().id() || window.analytics.user().anonymousId(); 
  
   Kameleoon.API.Data.retrieveDataFromRemoteSource(`IDENTIFY_${user_id}`, segment_identify_properties => {
         if(segment_identify_properties && segment_identify_properties.groupId){
             window.k_segmentIO.groupId = segment_identify_properties.groupId;
         }
     });
 }
 if(!window.k_segmentIO.groupId) return;
 return {"value": window.k_segmentIO.groupId, "overwrite": true};
```

<Note>
  Um Traits in serverseitigen Experimenten oder Feature Flags zu verwenden, konnen Sie die in der Dokumentation des jeweiligen SDKs beschriebenen Richtlinien konsultieren.

  Unsere SDKs verwenden die Methode **`getRemoteData()`**. Diese Methode ruft Daten ab, die von Segment auf unseren Servern gespeichert sind, und macht sie in Ihrem Backend-Code zuganglich.

  Der "key"-Wert, der als erster Parameter verwendet werden soll, sollte folgendem Format folgen: `IDENTIFY_{user_id}`.
</Note>
