Passer au contenu principal
Cette fonctionnalite est actuellement en beta ouverte et n’est pas encore visible dans le Segment Destination Catalog. Veuillez contacter l’equipe d’assistance Kameleoon pour en savoir plus sur la mise en oeuvre des Segment destination actions dans votre application web ou mobile.
Avec cette integration Segment x Kameleoon, chaque evenement declenche par Segment est automatiquement envoye a Kameleoon, ce qui fait gagner du temps aux developpeurs en evitant de reimplementer un plan de tracking Segment existant dans Kameleoon. Si le nom de l’evenement Segment correspond au nom d’un objectif existant dans votre compte Kameleoon, une conversion pour cet objectif sera associee au visiteur. Si l’objectif n’existe pas, Kameleoon creera un objectif personnalise en utilisant le nom de l’evenement Segment et associera la conversion au visiteur. L’objectif apparaitra dans la page des objectifs Kameleoon avec la convention de nommage “Segment.io — eventName”. Une fois l’objectif cree, vous pouvez l’utiliser dans n’importe laquelle de vos experiences ou personnalisations.

Importer les evenements, traits, groupes et personas Segment dans Kameleoon

Avec cette integration Segment x Kameleoon :
  • Chaque evenement declenche par Segment sera automatiquement envoye a Kameleoon, ce qui fait gagner du temps aux developpeurs en evitant de reimplementer un Tracking plan Segment existant dans Kameleoon. Les evenements Page, Screen et Track sont automatiquement collectes en tant qu’objectif personnalise Kameleoon. Vous pouvez utiliser n’importe lequel d’entre eux dans vos experiences/personnalisations, ou pour cibler les utilisateurs effectuant une action specifique sur votre site web ou application mobile.
  • Les evenements track de type Audience Entered ou Audience exited sont collectes en tant que custom data Kameleoon a utiliser dans notre Segment Builder pour cibler des personas d’utilisateurs.
  • Les evenements track de type identify avec des traits sont collectes en tant que custom data Kameleoon a utiliser dans notre Segment Builder pour cibler des utilisateurs avec des traits specifiques.
  • Les evenements track de type group sont collectes en tant que custom data Kameleoon a utiliser dans notre Segment Builder pour cibler un group ID.

Considerations

Gardez ces points a l’esprit lors de l’envoi d’evenements a Kameleoon :
  • Vous devez activer cette integration dans chaque projet Segment dans lequel vous souhaitez l’utiliser.
  • Vous avez besoin d’un plan Kameleoon payant pour activer cette integration.
  • Vous devez faire correspondre vos utilisateurs Segment avec les visiteurs Kameleoon en utilisant le meme systeme d’identifiants pour les deux outils.
  • Cette integration a des limitations techniques.
  • Segment envoie toutes les proprietes d’utilisateur, d’evenement et de groupe avec l’evenement.

Limitations

Les limites pertinentes pour les evenements Kameleoon sont :
  • Taille maximale de 1 MB des donnees d’evenement
  • Impossible de creer plus de 50 objectifs Kameleoon sur une periode de 10 secondes
  • Impossible de creer plus de 1000 objectifs Kameleoon sur une periode de 60 minutes

Configuration

Prerequis

Pour configurer une integration Event Streaming de Segment vers Kameleoon, vous avez besoin des informations suivantes de Kameleoon :
  • REST API Key : Pour commencer a envoyer des donnees a Kameleoon, vous avez besoin de votre cle API. Consultez la section Generate your API Key pour plus d’aide.
  • Sitecode : Vous devez fournir le Sitecode du projet que vous souhaitez utiliser avec cette integration. Consultez la documentation Kameleoon dediee pour savoir ou trouver votre Sitecode.

Configuration Kameleoon

Assurez-vous d’avoir votre API Key et votre Sitecode, afin de pouvoir configurer votre integration depuis Segment.

Generer votre cle API

Pour generer votre cle API :
  1. Obtenez votre client ID et client secret. Vous pouvez les trouver dans votre page de profil.
  2. Utilisez votre client ID et client secret avec l’URL suivante pour generer votre cle API :
https://integrations.kameleoon.com/segmentio/getapikey?id=**[CLIENT ID]**&secret=**[CLIENT SECRET]**

Obtenir votre Sitecode

Vous pouvez trouver le Sitecode de votre projet sur le tableau de bord du projet. Consultez la documentation Kameleoon dediee pour savoir ou trouver votre Sitecode.

Configuration Segment

  1. Dans l’application web Segment, cliquez sur Catalog > Destinations > Destinations Actions > Add destination.
  2. Selectionnez la Source que vous souhaitez connecter a Kameleoon (Actions).
  3. Cliquez sur Confirm Source.
  1. Dans le panneau lateral Basic Settings, remplissez les champs requis :
    • Name : Saisissez un nom pour vous aider a identifier cette destination dans Segment.
    • API Key : Collez votre cle API Kameleoon.
    • Sitecode : Collez le sitecode de votre projet Kameleoon. Vous pouvez le trouver dans le tableau de bord du projet.
  2. Cliquez sur le toggle Enable Destination.
  3. Cliquez sur Save Changes.

Faire correspondre un utilisateur Segment avec un visiteur Kameleoon

L’integration exige que vous utilisiez le meme systeme d’identifiants pour les deux outils. Alors que Segment utilise userId, Kameleoon utilise kameleoonVisitorCode. Pour identifier quel visiteur a declenche les evenements Segment transferes, vous devez inclure le kameleoonVisitorCode dans vos evenements Segment. Si vous utilisez Kameleoon Web Experiments sur votre projet, Kameleoon place un cookie contenant un identifiant unique anonyme appele Kameleoon Visitor Code, qui est attribue aleatoirement a un visiteur. Cet ID est utilise pour identifier de maniere unique un visiteur. Pour recuperer le kameleoonVisitorCode depuis les cookies du navigateur, utilisez le code suivant :
// Retrieve kameleoonVisitorCode - client-side cookies
 const parseCookie = (str) =>
     str
         .split(";")
         .map((v) => v.split("="))
         .reduce((acc, v) => {
             acc[decodeURIComponent(v[0].trim())] = decodeURIComponent(v[1].trim());
             return acc;
         }, {});
 const {kameleoonVisitorCode} = parseCookie(document.cookie);
Pour ajouter le kameleoonVisitorCode a tous vos evenements Segment, vous pouvez ajouter le code middleware suivant a votre site web :
analytics.addSourceMiddleware(({ payload, next, integrations }) => {
     const event = payload.obj;
     const kamVC = Kameleoon.API.Visitor.code;
     switch (event.type) {
       case "track":
          payload.obj.properties.kameleoonVisitorCode = kamVC;
          break;
       case "page":
         payload.obj.properties.kameleoonVisitorCode = kamVC;
         break;
       case "identify":
         payload.obj.traits.kameleoonVisitorCode = kamVC;
         break;
     }
     next();
   });
Si votre projet est une application mobile, vous pouvez faire le meme middleware en utilisant la bibliotheque Segment associee : Si votre projet est un projet cote serveur, vous pouvez creer un middleware en utilisant la Plugin Architecture : Vous pouvez choisir d’utiliser le EventPlugin, qui vous permet de redefinir le comportement des fonctions d’evenements. Vous pouvez egalement opter pour le DestinationPlugin, qui fonctionne de maniere similaire au EventPlugin, mais est adapte a une destination specifique. Voici un exemple de Plugin C# :
class KameleoonEnrichment : Plugin
{
    public override PluginType Type => PluginType.Enrichment;
    public override RawEvent Execute(RawEvent incomingEvent)
    {
        incomingEvent.Context["kameleoonVisitorCode"] = "PUT THE VISITOR CODE HERE";
        return incomingEvent;
    }
}
Si votre site web utilise Kameleoon Web Experimentation, vous pouvez ajouter le code suivant a votre global custom script :
const addVisitorCodeToEventsPayload = ({ payload, next, integrations }) => {
     payload.obj.properties.kameleoonVisitorCode = window.Kameleoon.API.Visitor.code;
     next(payload);
 };
 Kameleoon.API.Core.runWhenConditionTrue(
     () => typeof window.analytics?.addSourceMiddleware === "function",
     () => analytics.addSourceMiddleware(addVisitorCodeToEventsPayload),
     100
 );
Pour en savoir plus sur le telechargement d’evenements vers Segment, nous vous recommandons de lire la page de documentation dediee.

Recuperer les objectifs crees automatiquement

Comme mentionne precedemment, Kameleoon creera un objectif personnalise en utilisant le nom de l’evenement Segment et associera la conversion au visiteur. Le nom des objectifs crees commencera par “SegmentIO” suivi du type d’evenement et du nom de l’evenement. Exemple : Si le nom de l’evenement est “Clicked on Checkout”, l’objectif genere sera nomme “SegmentIO track - Clicked on Checkout”.
De plus, les objectifs crees automatiquement auront le tag “segment.io” attache. Pour trouver ces objectifs crees automatiquement, accedez au goal dashboard et recherchez les objectifs ayant le tag “segment.io” en utilisant le filtre de tag dans le panneau lateral.

Renommer ou supprimer les objectifs crees automatiquement

Lors de la reception d’un evenement de Segment, Kameleoon recherchera l’objectif associe existant en recherchant un nom d’objectif correspondant (en respectant la convention de nommage). Si vous modifiez le nom de l’objectif, Kameleoon ne le trouvera pas. Kameleoon creera un nouvel objectif avec un nom correspondant au nom de l’evenement Segment.io (et les conversions de l’objectif precedent seront toujours rattachees a l’ancien objectif). Par consequent, si vous souhaitez modifier le nom d’un objectif, nous recommandons de modifier egalement le nom de l’evenement Segment pour qu’il corresponde au nouveau nom de l’objectif. Nous recommandons egalement de modifier le nom de l’objectif si vous decidez de renommer un evenement Segment pour qu’il corresponde au nouveau nom de l’evenement. Si vous decidez de supprimer un objectif, Kameleoon ne le trouvera pas. Kameleoon creera un nouvel objectif avec un nom correspondant au nom de l’evenement Segment. Comme il s’agit d’un nouvel objectif, toutes les conversions de l’objectif seront perdues.

Conversion automatique d’objectif

Maintenant qu’un objectif a ete genere, Kameleoon commencera a associer les conversions a l’objectif. Comme mentionne precedemment, si le nom de l’evenement Segment correspond au nom d’un objectif existant dans votre compte Kameleoon, une conversion pour cet objectif est associee au visiteur. Dans le dashboard Goals, si vous cliquez sur le bouton Edit d’un objectif Segment, vous verrez le pop-up suivant :
Ne pretez pas attention au message affiche : “To trigger a custom goal conversion, you can either use our JavaScript Activation API or the SDK corresponding to your backend server language (example for NodeJS)”.
Comme les evenements recus par Kameleoon declencheront automatiquement une conversion d’objectif, vous n’avez pas besoin d’implementer de code frontend ou backend pour declencher un objectif Segment. L’objectif sera automatiquement converti si l’evenement Segment associe est declenche et transfere a Kameleoon.

Beneficier des fonctionnalites des Segment Destination Actions

Le framework Destination Actions ameliore les destinations classiques en vous permettant de voir et de controler la facon dont Segment envoie les donnees d’evenement qu’il recoit de vos sources vers les destinations basees sur des actions. Chaque Action dans une destination repertorie les donnees d’evenement requises et les donnees d’evenement facultatives.

Fonctionnalites

  • Filters : Les filtres de destination vous permettent d’envoyer ou de bloquer des evenements, des proprietes et des traits utilisateur vers une destination. Les filtres de destination sont appliques au niveau de l’instance de destination d’une source donnee. Les filtres actives sont appliques a chaque evenement correspondant en transit vers cette destination. Pour plus de details sur les fonctionnalites avancees, consultez la documentation de l’API Destination Filters.
  • Mappings : Configurez le mapping de donnees de votre source vers la destination (Kameleoon).
  • Event tester : Pour vous assurer que vos evenements sont delivres a leur destination, generez un payload d’evenement et envoyez un evenement de test. Visit Documentation.
  • Alerts : Abonnez-vous aux alertes lorsque le taux de delivrance de cette destination chute en dessous d’un certain seuil dans une periode de 24 heures.
  • Event delivery : L’outil Event Delivery vous aide a comprendre si les donnees atteignent vos destinations et a voir si Segment a rencontre des problemes lors de la livraison des donnees source. Voir la documentation dediee
  • Functions : Utilisez les insert functions pour effectuer des transformations personnalisees sur les payloads d’evenements avant de les envoyer a une destination connectee. Pour utiliser une insert function existante, connectez-en une a cette destination depuis le catalog.

Migration depuis la destination Kameleoon classique

Pour migrer depuis la destination Kameleoon classique, vous pouvez suivre ces trois etapes :

Identification du visiteur

  • Incluez le kameleoonVisitorCode dans vos evenements Segment pour un suivi precis des visiteurs.

Mapping, Filtres et Tests

  • Definissez le Mapping et les Filtres dans la page de configuration de la destination.
  • Testez les evenements pour garantir une creation precise des objectifs et un suivi des conversions.

Activation

  • Activez la destination Kameleoon (Actions) lorsque tout est teste et pret.
  • Desactivez la destination Kameleoon classique.

Personas, traits et groupes

Kameleoon vous permet de cibler les utilisateurs en fonction de leur persona Segment : un groupe ayant des traits de proprietes specifiques. Pour utiliser les personas, traits et group IDs dans notre Segment Builder, vous devez configurer une custom data dans votre compte Kameleoon pour le projet de votre choix.

Personas

Vous pouvez choisir le nom de la custom data (par exemple, SegmentIO personas). La custom data doit etre de type List of string.
Veuillez suivre les directives ci-dessous pour Web Experimentation uniquement.
Vous pouvez utiliser le code ci-dessous dans la methode d’acquisition de la custom data :
window.k_segmentIO = window.k_segmentIO || {};
 if(!window.k_segmentIO.runtime)
 {
     window.k_segmentIO.runtime = true;
Selon votre configuration, vous devrez determiner la logique appropriee pour obtenir l’ID utilisateur. Si vous utilisez un appel track event pour envoyer notre visitor code, utilisez la ligne suivante : const user_id = Kameleoon.API.Visitor.code; Sinon, si vous utilisez notre Visitor Code comme ID utilisateur Segment ou avez besoin de recuperer l’ID utilisateur depuis l’objet analytics de Segment, utilisez la ligne suivante :
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};
Pour utiliser les personas Segment dans des experiences cote serveur ou des feature flags, vous pouvez consulter les directives decrites dans la documentation de chaque SDK.Nos SDK utilisent la methode getRemoteData(). Cette methode recupere les donnees stockees par Segment sur nos serveurs et les rend accessibles dans votre code backend.La valeur “key” a utiliser comme premier parametre doit suivre ce format : IDENTIFY{user_id}.

Recuperer les noms de Persona Segment dans Kameleoon

Cliquez sur Next et activez l’option Save the values for the targeting condition associated with the custom data point option. Ajoutez le code JS ci-dessous et remplacez XXXXXXXXX par le Kameleoon Sitecode. Pour trouver le Sitecode, veuillez suivre cette documentation.
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;
Cliquez sur Validate pour creer la Custom Data. C’est fait ! Vous pouvez maintenant utiliser les Personas Segment dans notre Segment Builder. La liste des personas disponibles s’affiche lorsque vous choisissez l’operateur is among the values.

Traits

Pour utiliser les traits dans notre segment builder afin de cibler vos campagnes, vous devez creer une custom data par type de trait. Disons que vous souhaitez cibler les utilisateurs en fonction du plan auquel ils ont souscrit sur votre site web. Votre site web a trois plans differents : freemium, scale et enterprise. Vous devez configurer une custom data appelee “Subscribed Plan” et la custom data doit etre de type “string”.
Veuillez suivre les directives ci-dessous pour Web Experimentation uniquement.
Vous pouvez utiliser le code ci-dessous dans la methode d’acquisition de la custom data :
window.k_segmentIO = window.k_segmentIO || {};
 if(!window.k_segmentIO.runtime)
 {
     window.k_segmentIO.runtime = true;
Selon votre configuration, vous devrez determiner la logique appropriee pour obtenir l’ID utilisateur. Si vous utilisez un appel track event pour envoyer notre visitor code, utilisez la ligne suivante : const user_id = Kameleoon.API.Visitor.code; Sinon, si vous utilisez notre Visitor Code comme ID utilisateur Segment ou avez besoin de recuperer l’ID utilisateur depuis l’objet analytics de Segment, utilisez le code suivant :
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};
Pour utiliser les personas Segment dans des experiences cote serveur ou des feature flags, vous pouvez consulter les directives decrites dans la documentation de chaque SDK.Nos SDK utilisent la methode getRemoteData(). Cette methode recupere les donnees stockees par Segment sur nos serveurs et les rend accessibles dans votre code backend.La valeur “key” a utiliser comme premier parametre doit suivre ce format : IDENTIFY{user_id}.
Vous pouvez suivre les memes directives pour chaque propriete de trait que vous souhaitez utiliser dans le segment builder de Kameleoon.

Group IDs

Pour utiliser les group IDs dans notre segment builder afin de cibler vos campagnes, vous devez configurer une custom data appelee “Group ID”, et la custom data doit etre de type string.
Veuillez suivre les directives ci-dessous pour Web Experimentation uniquement.
Vous pouvez utiliser le code ci-dessous dans la methode d’acquisition de la custom data :
window.k_segmentIO = window.k_segmentIO || {};
 if(!window.k_segmentIO.runtime)
 {
     window.k_segmentIO.runtime = true;
Selon votre configuration, vous devrez determiner la logique appropriee pour obtenir l’ID utilisateur. Si vous utilisez un appel track event pour envoyer notre visitor code, utilisez la ligne suivante : const user_id = Kameleoon.API.Visitor.code; Sinon, si vous utilisez notre Visitor Code comme ID utilisateur Segment ou avez besoin de recuperer l’ID utilisateur depuis l’objet analytics de Segment, utilisez la ligne suivante :
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};
Pour utiliser les personas Segment dans des experiences cote serveur ou des feature flags, vous pouvez consulter les directives decrites dans la documentation de chaque SDK.Nos SDK utilisent la methode getRemoteData(). Cette methode recupere les donnees stockees par Segment sur nos serveurs et les rend accessibles dans votre code backend.La valeur “key” a utiliser comme premier parametre doit suivre ce format : IDENTIFY{user_id}.