Traitement des données personnelles

Le tag remplace les informations suivantes avant qu’elles ne soient collectées :

  • les tokens JWT dans les URLs, remplacés par CS_ANONYMIZED_JWT
  • les adresses email dans les URLs, les erreurs personnalisées, les erreurs JavaScript, les dynamic vars, les custom vars et dans le HTML du Session Replay, remplacés par CS_ANONYMIZED_EMAIL
  • les numéros de carte bancaire dans le HTML du Session Replay, remplacés par CS_ANONYMIZED_PII

Données personnelles et HTML (Session Replay)

Section titled Données personnelles et HTML (Session Replay)

Une session sera enregistrée pour le Session Replay si :

  • La fonctionnalité Session Replay est activée pour votre compte.
  • Le seuil défini par le paramètre Session Replay Recording Rate n’est pas dépassé.

Pour que le contenu HTML soit envoyé, toutes les conditions suivantes doivent être vérifiées :

  1. L’utilisateur n’a pas opt-out.
  2. La session est trackée.
  3. Le navigateur est compatible.
  4. La session est marquée comme “Enregistrée par le Session Replay”, via l’utilisation du cookie _cs_s - voir la liste complète des cookies.

Options d’enregistrement du Session Replay

Section titled Options d’enregistrement du Session Replay

Lorsque le Session Replay est activé et que la session utilisateur est enregistrée, le contenu HTML de la page est envoyé après chaque pageview (naturelle ou artificielle) et chaque mise à jour du DOM (seuls les éléments mis à jour sont envoyés).

L’automasking est désactivé

Section titled L’automasking est désactivé
  • La valeur des éléments <input> de type text, email, password, search, tel, url et les éléments <input> sans attribut type sont remplacés par des points avant l’envoi du HTML,
  • Tous les chiffres des éléments <input> avec un type number sont remplacés par 0,
  • Le contenu des éléments <textarea> est remplacé par des points avant l’envoi du HTML,
  • Le contenu des éléments <script> est supprimé,
  • À part les exceptions ci-dessus, tout le contenu HTML est envoyé, l’élément <head> compris,
  • Le contenu de tous les éléments marqués avec le data attribute data-cs-mask est supprimé (voir l’exemple ci-après).
  • La valeur des éléments <input> de type text, email, password, search, tel, url et les éléments <input> sans attribut type sont remplacés par des points avant l’envoi du HTML,
  • Tous les chiffres des éléments <input> avec un type number sont remplacés par 0,
  • Le contenu des éléments <textarea> est remplacé par des points avant l’envoi du HTML,
  • Le contenu de tous les éléments marqués avec l’attribut de données (data attribute) data-cs-mask est supprimé (voir l’exemple ci-après).
  • Le contenu de tous les éléments marqués avec l’attribut de données (data attribute) data-cs-capture est collecté et affiché sauf s’il s’agit d’un élément <input> ou <textarea>.
  • Tous les caractères textuels des éléments qui sont envoyés sont remplacés par “A”.
  • Les attributs qui ne sont pas liés au layout sont supprimés - seuls id, class, style, src, srcset, href, rel et type sont conservés.

Masquer le contenu des pages d’après leur URL

Section titled Masquer le contenu des pages d’après leur URL

Lorsque votre site affiche des données personnelles sur un ensemble de pages défini, vous pouvez décider d’appliquer l’auto-masking sur ces pages seulement, pour ne pas avoir à masquer ces données sur l’ensemble du site.

Nous proposons deux options :

  • Anonymiser toutes les pages sauf… : Toutes les pages sont masquées à l’exception de celles validant une expression régulière.
  • Désanonymiser toutes les pages sauf… : Tout le contenu des pages collectées sera supprimé à l’exception des pages validant une expression régulière.

Ces options doivent être activées par votre Implementation Manager.

Bloquer l’enregistrement de certaines pages (Session Replay)

Section titled Bloquer l’enregistrement de certaines pages (Session Replay)

Utilisez la commande excludeURLforReplay pour bloquer l’enregistrement de certaines pages d’après leur URL.
Cette commande est utile dans plusieurs cas :

  • Certains enregistrements pour le Session Replay causent des problèmes de performance (lorsque la page contient un nombre important d’images ou de vidéos, par exemple) — vous pouvez bloquer leur enregistrement jusqu’à la résolution du problème,
  • Des données personnelles (PII) ont été exposées,
  • Vous souhaitez bloquer l’enregistrement de parties complètes de votre site.
window._uxa = window._uxa || [];
window._uxa.push(['excludeURLforReplay', "URL_REGEX"]);

Cette commande ne bloque pas les page views, simplement les enregistrements.

Supprimer du contenu ou des données personnelles du HTML enregistré

Section titled Supprimer du contenu ou des données personnelles du HTML enregistré

Deux approches sont possibles :

  1. Utiliser le Contentsquare Personal Data Selector
  2. Tagger les éléments du DOM

Chaque élément du DOM à masquer doit être identifié par un sélecteur CSS. Ces sélecteurs sont envoyés à l’API Contentsquare sous la forme d’un objet JavaScript. Le contenu de ces éléments sera donc supprimé de l’enregistrement.

L’objet contenant les sélecteurs CSS pour le texte et les attributs doit être envoyé à l’API Contentsquare comme dans cet exemple, avant le chargement du Tag principal :

window._uxa = window._uxa || [];
window._uxa.push(['setPIISelectors', {PII Object}]);

La structure du PII Object est la suivante :

  • PIISelectors : Liste des sélecteurs CSS séparés par des virgules, qui permet aux éléments correspondants du DOM d’être masqués par le tag.

  • Attributes : Cette clé permet de supprimer les attributs sur les éléments du DOM qui correspondent aux sélecteurs CSS. Vous pouvez utiliser un tableau pour les noms des attributs comme dans l’exemple ci-dessus.

L’utilisation des deux clés PII Selectors et Attributes n’est pas obligatoire : vous pouvez utiliser des sélecteurs d’éléments complets, des sélecteurs d’attributs spécifiques, ou bien les deux, au sein du même objet :

{
PIISelectors: [".css-selector, #css-selector"], // Éléments du DOM à masquer
Attributes: [
{
selector: "select#month option, select#year option", // Sélecteurs CSS
attrName: 'id' // Nom de l'attribut à masquer
},
{
selector: ".link-page-7", // Sélecteurs CSS
attrName: ['href','name'] // Noms des attributs à masquer en tableau
}
]
};

Pour exclure du contenu HTML de la page à enregistrer, ajoutez l’attribut data-cs-mask sur l’élément/les éléments HTML concerné(s): leur contenu sera supprimé du navigateur avant d’être envoyé vers Contentsquare.

HTML de la page

Contenu avant
<p data-cs-mask>
emailaddress@sentitivedata.com
</p>
Contenu après

HTML enregistré

Contenu avant
<p data-cs-mask></p>
Contenu après

Vous pouvez également ajouter l’attribut data-cs-mask avec du JavaScript à condition de le faire avant l’envoi d’une pageview.

Les événements sur des éléments HTML supprimésLes événements (click, hover, etc.) seront toujours collectés et envoyés vers les serveurs Contentsquare même si les éléments visés ont été supprimés. Ils seront visibles dans l’application en utilisant Live Resources.

Afficher du contenu dans une page HTML intégralement masquée

Section titled Afficher du contenu dans une page HTML intégralement masquée

Deux méthodes sont à votre disposition :

  1. Utiliser le Contentsquare Personal Data Selector
  2. Tagger les éléments du DOM

Chaque élément du DOM à afficher est identifié par un sélecteur CSS. Ces sélecteurs sont envoyés à l’API Contentsquare sous la forme d’un objet JavaScript. Le contenu de ces éléments sera donc affiché dans l’enregistrement.

La chaîne de caractères qui contient les sélecteurs CSS séparés par des virgules, pour le texte et les attributs doit être envoyée à l’API Contentsquare, avant le chargement du Tag principal comme dans cet exemple :

window._uxa = window._uxa || [];
window._uxa.push(['setCapturedElementsSelector', "#capture-me, .show-me"]);

Pour afficher un élément HTML dans une page intégralement masquée, ajoutez l’attribut data-cs-capture sur l’élément HTML concerné.

HTML de la page

Contenu sensible avant
<p data-cs-capture>
un fragment de texte sans données sensibles
</p>
Contenu sensible après

HTML enregistré

AAAA AAAA AA
<p data-cs-capture>
un fragment de texte sans données sensibles
</p>
AAA AAA AA

Vous pouvez également ajouter cet attribut avec du JavaScript à condition de le faire avant l’envoi d’une pageview.

  • Avoir installé Google Chrome.
  • Téléchargez l’extension Chrome Contentsquare Tracking Setup Assistant
  • Ajoutez l’attribut data-cs-mask pour exclure des éléments du tracking. Les données dans les champs de formulaire ne sont pas capturées par défaut, à l’exception des listes déroulantes, qui doivent être masquées.
  • Activez le masking de la session, aucune expression régulière ne doit être configurée.
  • Si vous nous avez déjà fourni une liste de vos adresses IP internes/de bureau pour que nous les ajoutions à notre liste d’exclusion et que vous prévoyez d’effectuer des tests de Session Replay, informez votre Implementation Manager ou Success Manager Contentsquare afin que nous puissions mettre temporairement en pause cette liste d’exclusion. Si vous ne le faites pas et que vous exécutez des tests de Session Replay à partir d’une IP qui figure sur notre liste d’exclusion, votre session de test ne sera pas collectée dans Contentsquare.
  1. Démarrez un parcours sur votre site web, par exemple un tunnel d’achat.

  2. Dans l’extension Contentsquare Tracking Setup Assistant extension, sélectionnez Turn off anonymisation afin que le masking ‘AAA’ ne s’applique pas à votre session locale.

  3. Sélectionnez Collected for Session Replay pour activer l’enregistrement du Session Replay pour votre session.

  4. Sélectionnez Trigger testing dvar pour créer la variable dynamique SR Testing qui identifie votre session.

    L’enregistrement débute et vous pouvez poursuivre votre parcours.

  5. Saisissez des informations personnelles fictives tout au long du parcours.
    Ces informations sont souvent affichées sur une page de confirmation — c’est à cette étape que vous devez vérifier qu’elles sont masquées.

  6. Lorsque vous avez terminé le parcours, fermez l’onglet de session ou supprimez vos cookies.

  7. Après 30 minutes, connectez-vous à la plateforme Contentsquare et trouvez le Session Replay contenant la variable dynamique SR testing.

  8. Regardez l’enregistrement en portant attention aux données personnelles :

  • ❌ Si des données personnelles apparaissent, recommencez la procédure de test.
  • ✅ Si aucune donnée personnelle n’est présente, partagez vos résultats avec votre Implemenatation Manager qui pourra désactiver le masking ‘AAA’ après vérification.

Suivre les requêtes Session Replay

Section titled Suivre les requêtes Session Replay

Le contenu HTML est envoyé via une requête à l’un des endpoints ci-dessous, selon la région où vos données sont stockées :

  • https://k.aeu1.contentsquare.net/{apiVersion}/recording
  • https://k.aus1.contentsquare.net/{apiVersion}/recording
  • https://k.eu1.az.contentsquare.net/{apiVersion}/recording
  • https://k.us1.az.contentsquare.net/{apiVersion}/recording
  • https://k.ba.contentsquare.net/{apiVersion}/recording
  • https://k.bf.contentsquare.net/{apiVersion}/recording
  • https://k.aa.contentsquare.net/{apiVersion}/recording
  • https://k.af.contentsquare.net/{apiVersion}/recording

La requête est envoyée avec le cookie _cs_s dont la valeur se termine par .3. Cette requête contient l’intégralité du DOM.

Bloquer des données personnelles dans les URLs

Section titled Bloquer des données personnelles dans les URLs

Des données personnelles ne sont pas seulement susceptibles d’apparaître dans le contenu HTML.

Pour une page donnée, vous devez également masquer les données personnelles qui peuvent se trouver dans :

Des données non masquées peuvent également être exposées dans le module Error Analysis.

Supprimer des données personnelles dans l’URL de la page courante

Section titled Supprimer des données personnelles dans l’URL de la page courante

Pour supprimer des données personnelles dans l’URL de la page courante, vous devez réécrire l’URL du pageview, et la masquer, avant que le Tag ne la collecte, en utilisant la commande setPath.

La commande setPath prend en paramètre le nouveau chemin à collecter en tant qu’URL, par le Tag.

window._uxa = window._uxa || [];
window._uxa.push([
'setPath', '<NOUVEAU_PATH_A_COLLECTER>'
]);

Cette commande doit être déclenchée sur toutes les pages où l’URL contient des informations personnelles, avant le chargement du Tag. Seul le chemin (path) doit être configuré, pas l’URL complète.

window._uxa = window._uxa || [];
window._uxa.push([
'setPath', '/users/<CS_ANONYMIZED_USER_ID>'
]);
URL avant maskingURL après masking
https://www.contentsquare.com/users/jon.snowhttps://www.contentsquare.com/users/CS_ANONYMIZED_USER_ID
https://www.contentsquare.com/cartpage/users/jon.snowhttps://www.contentsquare.com/users/CS_ANONYMIZED_USER_ID

Supprimer des données personnelles dans les paramètres d’URL

Section titled Supprimer des données personnelles dans les paramètres d’URL

Lorsque des données personnes apparaissent les paramètres de requête, utilisez la commande setQuery pour remplacer la query string dans l’URL par une version masquée.

window._uxa = window._uxa || [];
window._uxa.push([
'setQuery',
'<QUERY_STRING_ANONYMISEE>'
]);

La commande setQuery prend en paramètre la nouvelle query string à afficher dans l’URL. Cette commande spécifie au Tag de masquer tout ce qui suit le caractère ? dans l’URL.

Cette commande doit être déclenchée sur toutes les pages où l’URL contient des informations personnelles, avant le chargement du Tag. Seule la query string doit être configurée, pas l’URL complète.

window._uxa = window._uxa || [];
window._uxa.push([
'setQuery',
'?user_id=<CS_ANONYMIZED_USER_NAME>&address=<CS_ANONYMIZED_ADDRESS>'
]);
URL avant maskingURL après masking
https://www.mysite.com/us/makeup/valentines-day/?user_id=jon.snow&address=castle.blackhttps://www.mysite.com/us/makeup/valentines-day/?user_id=CS_ANONYMIZED_USER_NAME&address=CS_ANONYMIZED_ADDRESS
https://www.mysite.com/us/makeup/valentines-day/?campaign=valentinesday_feb_2021&user_id=jon.snow&address=castle.blackhttps://www.mysite.com/us/makeup/valentines-day/?user_id=CS_ANONYMIZED_USER_NAME&address=CS_ANONYMIZED_ADDRESS

Personnalisez le masking selon le type de paramètre à remplacer, afin que le résultat soit plus explicite :

  • CS_ANONYMIZED_USER_ID
  • CS_ANONYMIZED_EMAIL
  • CS_ANONYMIZED_ADDRESS

…et ainsi de suite.

Masquer les données personnelles dans le referrer

Section titled Masquer les données personnelles dans le referrer

Même lorsqu’elles sont masquées dans les URLs et les paramètres de requête, les données personnelles se propagent dans la page suivante du parcours utilisateur via le referrer du navigateur web. Pour ce cas d’usage, utilisez les commandes préfixées referrer: ci-dessous afin de les masquer.

Prenons l’exemple de ce parcours:

  1. L’utilisateur navigue de https://www.example.com/users/123456/products/ABCDEF vers https://www.example.com/.
  2. Un pageview est envoyé sur https://www.example.com/.
  3. La valeur du referrer dans le navigateur et la requête pageview est https://www.example.com/users/123456/products/ABCDEF.

Pour masquer les données personnelles dans l’URL du referrer, utilisez la commande referrer:maskUrl:

var referrers = [
'https://www.example.com/users/:USER_ID/products/:PRODUCT_ID',
'https://www.example.com/account/cancelOrder/:ORDER_ID',
'https://www.example.com/order/:ORDER_ID/merge/:ORDER_ID'
];
window._uxa = window._uxa || [];
for (var i = 0; i < referrers.length; i++) {
window._uxa.push([ 'referrer:maskUrl', referrers[i] ]);
}

La valeur des referrer dans les requêtes pageview seront :

  • https://www.example.com/users/CS_ANONYMIZED_USER_ID/products/CS_ANONYMIZED_PRODUCT_ID
  • https://www.example.com/account/cancelOrder/CS_ANONYMIZED_ORDER_ID
  • https://www.example.com/order/CS_ANONYMIZED_ORDER_ID/merge/CS_ANONYMIZED_ORDER_ID

Dans les paramètres de la requête

Section titled Dans les paramètres de la requête

Prenons l’exemple de ce parcours:

  1. L’utilisateur navigue de https://www.example.com/confirmation?firstname=jon&lastname=snow vers https://www.example.com/.
  2. Un pageview est envoyé sur https://www.example.com/.
  3. La valeur du referrer dans le navigateur et la requête pageview est https://www.example.com/confirmation?firstname=jon&lastname=snow.

Pour masquer les données personnelles dans les paramètres de la requête du referrer, utilisez la commande referrer:removeQueryString:

window._uxa = window._uxa || [];
window._uxa.push([
'referrer:removeQueryString'
]);

La valeur du referrer dans la requête pageview pour la page https://www.example.com/ sera :

https://www.example.com/?

Supprimer des données personnelles dans les erreurs d’API

Section titled Supprimer des données personnelles dans les erreurs d’API

Vous devez réécrire l’URL avant que le Tag ne collecte les erreurs d’API et l’URL de la requête, via la commande api-errors:maskUrl.

La commande api-errors:maskUrl prend en paramètre l’URL complète exacte à afficher en remplacement de celle contenant les données personnelles - pas le chemin, ni la query string. Elle communique au Tag de remplacer l’URL initiale de la requête par celle masquée et de la collecter.

window._uxa = window._uxa || [];
window._uxa.push([
'api-errors:maskUrl',
<ANONYMIZED_URL_FOR_API_ERRORS>
]);

Cette commande doit être déclenchée sur toutes les pages contenant des données personnelles et qui appellent l’API Contentsquare, avant le chargement du Tag.

Remplacez simplement une partie du chemin - entre deux slashs (/) - contenant des données personnes, par une variable :

  • :user_id devient CS_ANONYMIZED_USER_ID
  • :address devient CS_ANONYMIZED_ADDRESS
  • sur le même modèle :email devient CS_ANONYMIZED_EMAIL
var urls = [
'https://api.net/order/:order_id/merge/:order_id',
'https://api.net/order/:order_id/item',
'https://www.api.nl/nl/ajax/nfs/account/cancelOrder/:order_id'
];
window._uxa = window._uxa || [];
for (var i = 0; i < urls.length; i++) {
window._uxa.push([ 'api-errors:maskUrl', urls[i] ]);
}
URL avant maskingURL après masking
https://api.net/order/:order_id/merge/:order_idhttps://api.net/order/CS_ANONYMIZED_ORDER_ID/merge/CS_ANONYMIZED_ORDER_ID
https://api.net/order/:order_id/itemhttps://api.net/order/CS_ANONYMIZED_ORDER_ID/item
https://www.api.nl/nl/ajax/nfs/account/cancelOrder/:order_idhttps://www.api.nl/nl/ajax/nfs/account/cancelOrder/CS_ANONYMIZED_ORDER_ID

Le tag Contentsquare ne recueille pas le texte saisi dans les champs de type input ou textarea.

Si vous avez besoin d’afficher les données personnelles d’un utilisateur, telles que les adresses d’expédition/de livraison, les noms, les numéros de téléphone, les adresses électroniques, le texte dans un champ de formulaire…, vous pouvez utiliser notre mode de collecte et de chiffrement.

Le mode “collecte et chiffrement” permet de collecter, de stocker et d’afficher le texte d’un champ input, d’un champ textarea ou de tout autre élément d’une page qui est généralement masqué par le tag, avant d’être envoyé à nos serveurs.

Collecte et chiffrement des données personnelles du code HTML collecté

Section titled Collecte et chiffrement des données personnelles du code HTML collecté

Il existe deux méthodes pour collecter et chiffrer les données personnelles à partir du code HTML collecté :

  • Utiliser le “Encryption Selector” de Contentsquare
  • Tagger les éléments du DOM contenant la donnée personnelle

Chaque élément du DOM à collecter et à chiffrer est identifié par son sélecteur CSS. Ces sélecteurs sont transmis à l’API par l’intermédiaire d’un objet JavaScript. Le contenu de l’élément identifié est alors chiffré et collecté pour les Session Replays.

L’objet suivant, qui contient des sélecteurs CSS pour le texte doit être transmis à l’API comme suit, avant de déclencher le tag principal :

window._uxa = window._uxa || [];
window._uxa.push(['setEncryptionSelectors', "#cart, .total-items"]);

L’attribut data-cs-encrypt peut être ajouté à un champ de saisie, à un champ textuel ou à tout autre élément. Au lieu d’être masqué, le texte présent dans ce champ sera chiffré, stocké et mis à disposition pour être exposé dans des conditions spécifiques.

Le processus de chiffrement s’effectue sur la propriété innerText de l’élément tagué. Il ne s’applique pas aux éléments imbriqués : le texte de l’élément imbriqué ne sera ni masqué ni chiffré. Veillez à ajouter l’attribut data-cs-encrypt sur les éléments les plus granulaires qui doivent être collectés…

<h2 class="welcoming">
Welcome back
<span class="user_name" data-cs-encrypt>John Doe</span>
</h2>

Vous pouvez également ajouter l’attribut data-cs-encrypt avec JavaScript, à condition de le faire avant l’envoi d’une page.

Pour utiliser Controlled Exposure, toutes les données à collecter doivent être chiffrées. Pour ce faire, vous devrez obtenir une combinaison de clés de chiffrement :

  • Clé publique : utilisée par le tag pour chiffrer les données.
  • Clé privée : utilisée par l’application Contentsquare pour le déchiffrement.

Comment générer la paire de clés

Section titled Comment générer la paire de clés

Option 1: Avec un script Google Chrome

Section titled Option 1: Avec un script Google Chrome
  1. Copiez le script suivant

    function arrayBufferToString(buffer) {
    const byteArray = new Uint8Array(buffer);
    let byteString = "";
    for (let i = 0; i < byteArray.byteLength; i += 1) {
    byteString += String.fromCodePoint(byteArray[i]);
    }
    return byteString;
    }
    crypto.subtle.generateKey({
    name: "RSA-OAEP",
    hash: "SHA-256",
    modulusLength: 4096,
    publicExponent: new Uint8Array([1,0,1])
    }, true, ["encrypt", "decrypt"]).then(
    (keysObject) => {
    crypto.subtle.exportKey("pkcs8", keysObject.privateKey).then(result => {
    const privateKey = btoa(arrayBufferToString(result));
    console.log(`Private key: `, privateKey);
    });
    crypto.subtle.exportKey("spki", keysObject.publicKey).then(result => {
    const publicKey = btoa(arrayBufferToString(result));
    console.log(`Public key: `,publicKey);
    });
    });
  2. Coller le script dans la console Chrome.

  3. Appuyez sur Entrée sur votre clavier.

Option 2: Avec OpenSSL ou OpenSSH

Section titled Option 2: Avec OpenSSL ou OpenSSH

Sur Linux/Mac, vous pouvez ouvrir OpenSSL :

openssl genpkey -out mykey.pem -algorithm RSA -pkeyopt rsa_keygen_bits:4096
openssl rsa -in mykey.pem -pubout > mykey.pub

Sur Windows vous devrez [installer WSL] (https://docs.microsoft.com/fr-fr/windows/wsl/install).

Comment ajouter une clé publique dans Contentsquare

Section titled Comment ajouter une clé publique dans Contentsquare
  1. Allez dans la Console > Choisissez votre compte > Choisissez votre projet > Allez dans l’onglet “Encryption management”.
  2. Cliquez sur “Entrer une clé publique”.
  3. Collez votre clé publique.
  4. Cliquez sur “Sauvegarder votre clé publique”.

Dé-masquer le texte à l’écran dans Contentsquare

Section titled Dé-masquer le texte à l’écran dans Contentsquare
  1. Sélectionnez l’icône “clé” et choisissez “Dé-masquer le texte à l’écran”.
  2. Saisissez la clé privée et sélectionnez déchiffrer (tous les Session Replays seront exposés).

La fonctionnalité User Identifier permet de rechercher des Session Replays appartenant à des utilisateurs spécifiques, grâce à un identifiant unique. Vous avez ainsi la possibilité de chercher et d’accéder à toutes les sessions associées à cet identifiant, par exemple john@gmail.com sur la plage sélectionnée. Cette fonctionnalité est particulièrement utile en cas de commentaires ou de plaintes d’utilisateurs.

L’identifiant utilisateur peut être un nom d’utilisateur, un numéro de compte, une adresse e-mail, un numéro de téléphone, un ID client, ou l’ID d’un programme de fidélité. L’identifiant est imédiatement haché avec une fonction à sens unique avant d’être envoyé à Contentsquare.

Lorsque vous filtrez les Sessions Replay avec un identifiant utilisateur dans Contentsquare, la même fonction de hachage est utilisée et les deux hashs sont comparés afin de trouver les replays qui correspondent à l’identifiant utilisateur.

Implémentation du User Identifier

Section titled Implémentation du User Identifier
  1. Choisir le bon User Identifier : Optez pour un identifiant unique tel que l’adresse électronique, le nom d’utilisateur ou le numéro de compte client qui est accessible sur le site.

  2. Collecte des User Identifiers: Pour collecter le User Identifier,envoyez un événement de page via la fonction trackPageEvent avec le préfixe @user-identifier@ :

    window._uxa = window._uxa || [];
    window._uxa.push(['trackPageEvent', '@user-identifier@user_email']);

    Ou si vous tirez le User Identifier de votre data layer :

    window._uxa = window._uxa || [];
    window._uxa.push(['trackPageEvent', '@user-identifier@' + dataLayer.Name]);

    La valeur du user identifier est limitée à 100 caractères.