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, les éléments cliqués et dans le HTML du Session Replay, remplacés par CS_ANONYMIZED_EMAIL
  • les numéros de carte bancaire dans les éléments cliqués et 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 les éléménets HTML concerné(s) :

Content before
<p data-cs-mask>
emailaddress@sentitivedata.com
</p>
Content after

Leur contenu est supprimé du navigateur avant d’être envoyé vers Contentsquare :

Content before
<p data-cs-mask>
emailaddress@sentitivedata.com
</p>
Content after

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 le replay.

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 les élements HTML :

Sensitive Content before
<p data-cs-capture>
some piece of text that is not sensitive
</p>
Sensitive Content after

Le contenu de cet élément est capturé comme tel :

AAAA AAAA AA
<p data-cs-capture>
some piece of text that is not sensitive
</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
  • Masquez des éléments du replay en utilisant les sélecteurs CSS ou l’attribut data-cs-mask — les éléments <input> sont pas capturées par défaut, à l’exception des listes déroulantes, qui doivent être masquées.
  • Activez le masking de la session.
  • 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, informez votre Implementation Manager ou Success Manager Contentsquare afin que nous puissions mettre temporairement en pause cette liste d’exclusion. Sinon, les sessions de tests à partir de ces IPs ne seont pas collectées dans Contentsquare.
  1. Démarrez un parcours sur votre site web, comprenant les éléments qui seront masqués.

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

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

  4. Sélectionnez Trigger testing pageEvent pour créer l’événement de page SR Testing identifiant votre session courante.

  5. Assurez-vous que les éléments à masquer sont visibles tout au long de votre parcours de test. Si nécessaire, saisissez des informations personnelles fictives. Vous pourrez vérifier qu’elles ont effectivement été masquées dans le replay.

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

  7. Regardez le replay 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

Utilisez la commande networkRequest:maskUrls pour réécrire des URLs avant que le Tag ne collecte les erreurs d’API et l’URL de la requête.

La commande reçoit en paramètre un ou plusieurs patterns de masking à appliquer à l’URL cotenant des données personnelles. Ces patterns peuvent matcher l’URL complète de la page ou une partie.

window._uxa = window._uxa || [];
window._uxa.push([
'networkRequest:maskUrls',
<PATTERN>
]);

Les patterns incluent des fragments d’URL à masquer. Ils doivent être passés comme des variables préfixés par ”:”. Ces variables sont remplacées par le texte CS_ANONYMIZED_{FRAGMENT}:

  • :user_id devient CS_ANONYMIZED_USER_ID
  • :address devient CS_ANONYMIZED_ADDRESS
  • :email devient CS_ANONYMIZED_EMAIL

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.

window._uxa.push(["networkRequest:maskUrls",
[
"order/:order_id/merge/:order_id",
"order/:order_id/item",
"cancelOrder/:order_id"
]
]);
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

Supprimer des données personnelles dans les Éléments cliqués

Section titled Supprimer des données personnelles dans les Éléments cliqués

Quand la collection des éléments cliqués est activée et que la session utilisateur est enregistrée, le Tag collecte le contenu textuel des boutons et des liens qui ont été cliqués par l’utilisateur en tant que donnée d’analyse supplémentaire (voir /events request).

L’automasking est désactivé

Section titled L’automasking est désactivé

L’élément cliqué est collecté à moins qu’il soit masqué via l’attribut data-cs-mask.

L’élément cliqué n’est pas collecté à moins qu’il soit capturé via l’attribut data-cs-capture.

Vous pouvez aussi masquer des élements précis sur la page web. Cette option de masking est prioritaire à la configuration d’automasking. Pour plus d’informations, voir la section Personal Data Selector.

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 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 Contentsquare > 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 replays seront exposés).

La fonctionnalité User Identifier permet de rechercher des 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.