AB Testing x Privacy : Comment gérer le consentement Kameleoon (avec tarteaucitron) ?

Comment gérer le consentement Kameleoon de manière à être en conformité avec la RGPD et à pouvoir mener des AB Tests avancés?

Publié par Adrien Millet le 19 septembre 2020, Mise à jour le 17 octobre 2020

Préambule

L'article qui va suivre vous concerne si au moins l'une des conditions suivantes sont réunies

  • Les A/B Tests déployés sur votre site ciblent l'utilisateur suivant ses données personnelles, un comportement passé, ou la géolocalisation de son adresse IP
  • Les customs datas de votre site font remonter des données personnelles

Si ce n'est pas le cas, vous pouvez vous contenter d'une "gestion soft" de la privacy sous Kameleoon, qui est détaillée dans l'article suivant

Du point de vue de l'expérience utilisateur

Pour l'utilisateur, la gestion de la Privacy doit avoir le moins d'impact possible

  • Les A/B Tests ne doivent pas s'activer au moment où le visiteur clique sur "OK, tout accepter" car cela entrainerait d'importantes modifications visuelles sur le site.
  • De la même façon : si un visiteur arrive sur votre site, clique sur "OK, tout accepter" puis revient sur sa décision, il ne doit pas voir d'évolution.

La mécanique correspondante dans Kameleoon

Compte tenu de ce que nous apprend la documentation de Kameleoon, nous allons déployer la gestion du consentement suivante :

  • Il est nécessaire que l'utilisateur donne son consentement pour que Kameleoon fonctionne normalement. (Dans les paramétrages, nous allons donc, pour "Politique de consentement" sélectionner "Consentement requis")
  • Tant que l'utilisateur n'aura pas donné son consentement, son consentement légal sera "inconnu" et Kameleoon va fonctionner en "mode restreint" (dans les paramétrages pour "Comportement en cas de consentement non connu", nous sélectionnerons "Bloquer partiellement Kameleoon").
  • Si l'utilisateur s'oppose au tracking Kameleoon, il restera en mode restreint. Dans ce cas de figure :
    • Le tracking de Kameleoon est complètement désactivé (pas de hit envoyé vers Kameleoon, pas d'écriture dans le cookie, le session storage ou le local storage de l'utilisateur.
    • Seuls les tests flaggés "Technical" vont continuer à être visibles. Visible uniquement : il n'y aura pas d'envoi de données vers Kameleoon. Ce type d'A/B Test permet d'avoir une expérience utilisateur cohérente et de bonne qualité (pas d'activation intempestive de test modifiant le site).
    • Seuls les tests n'utilisant pas de données personnelles pourront être technical : un test flaggé "technical" ne peut pas utiliser le genre, le mois de naissance ou effectuer un ciblage géographique par exemple.

Paramétrage dans Kameleoon

Pour déployer cette mécanique dans Kameleoon, vous devez allez dans Configuration > Mes sites > Editer

Puis dans "Configuration", sélectionnez "A/B Test", puis sélectionnez les options suivantes :

  • Politique de consentement ➡ consentement requis
  • Comportement en cas de consentement non connu ➡ Bloquer partiellement Kameleoon
  • Comportement en cas d'optout ➡ Bloquer partiellement Kameleoon

Puis rebelote avec dans "Personnalisation", où nous vous recommandons de sélectionner les mêmes options


Déploiement du code de suivi Kameleoon et bandeau Privacy Tarteaucitron

Vous avez déployé le script Kameleoon en dur sur votre site, vous devez gérer le consentement de l'utilisateur via votre Privacy Center ou votre gestionnaire de cookies. Nous allons ici utiliser le gestionnaire de cookie Tarteaucitron, qui présente l'avantage d'être gratuit. Sébastien Lardez de Digital-analyst.fr en a détaillé l'implémentation pour gérer les cookies de Google Analytics via le TMS Google Tag Manager Vous pouvez reprendre l'installation indiquée

Ensuite, vous devez créer une balise de type "HTML personnalisée" dans Google Tag Manager, ajouter un déclencheur "All pages" et insérer le code suivant :

<script type="text/javascript">
tarteaucitron.user.kameleoonID = 'VOTRE IDENTIFIANT Kameleoon';
(tarteaucitron.job = tarteaucitron.job || []).push('kameleoon');
</script>

Votre identifiant Kameleoon est visible dans "Configuration > Mes sites"


Adaptons ensuite le script Tarteaucitron

Le script Tarteaucitron que vous avez inséré ne gère pas Kameleoon, vous devez donc créer vous-même le custom service. La documentation correspondante pour l'ajout d'un custom service est disponible ici

Pour ajouter ce custom service, vous devez modifier le fichier "tarteaucitron.services.js"

Ajoutez ensuite le bloc suivant

// kameleoon
tarteaucitron.services.kameleoon = {
"key": "kameleoon",
"type": "api",
"name": "Kameleoon",
"uri": "https://www.kameleoon.com/en/privacy-policy",
"needConsent": true,
"cookies": ['kameleoonVisitorCode'],
"js": function () {
"use strict";
if (tarteaucitron.user.kameleoonID === undefined) {
return;
}
console.log("validation privacy V2")
Kameleoon.API.Core.enableLegalConsent()
},
"fallback": function () {
"use strict";
if(Kameleoon.API.Visitor.experimentLegalConsent){
console.log("désactivation Kameleoon V2")
Kameleoon.API.Core.disableLegalConsent()
}
}
};

Ce code indique que Kameleoon :

  • Dépose un unique cookie "kameleoonVisitorCode"
  • Lors de la validation du consententement : Activation de la privacy Kameleoon via la commande Kameleoon.API.Core.enableLegalConsent()
  • Inversement lorsque l'utilisateur s'oppose aux personnalisations : désactivation de Kameleoon via la commande Kameleoon.API.Core.disableLegalConsent()

  • Et vous, quel type de consentement avez-vous donné sur eloquentdata.fr ?

    Lorsque vous avez chargé cette page, votre consentement Kameleoon était

    Kameleoon.API.Visitor.experimentLegalConsent :

    Kameleoon.API.Visitor.personalizationLegalConsent :

    Si vous venez de modifier votre consentement via le bouton "Gestion des cookies" dans le footer, vous pouvez actualiser votre consentement en cliquant ici

    Les limites de ce type d'implémentation

    Les A/B Tests qui ne sont pas flagués en "Technical" risquent de dégrager l'expérience utilisateur :

    • Lorsque l'utilisateur donne clique sur "OK" il risque de voir des changements dans le rendu visuel de votre site
    • Inversement si l'utilisateur choisi de désactiver le tracking Kameleoon, là aussi le rendu visuel du site va évoluer, avec la désactivation des A/B Tests

    1ère conséquence : vous devez flaguer le plus de tests possibles en "Technical", car ces derniers continueront d'être actifs quelque soit le consentement Privacy de l'utilisateur !

    2ème conséquence : vous devez limiter les tests (non technical !) sur les pages d'acquisition : c'est sur ces pages que les visiteurs vont donner leur consentement au tracking sur votre site et c'est donc sur ces pages qu'il y a un risque que l'utilisateur voit le site changer suite à sa validation de la privacy !

    Techniquement, tous les A/B Tests et les personnalisations qui n'utilisent pas de données personnelles peuvent être flaguées en "Technical". Dans les faits, il faut savoir que Kameleoon ne va vous attribuer un identifiant visiteur persistant qu'à partir du moment où vous avez consenti aux personnalisations (voir ci-dessus). Pour accéder à votre identifiant visiteur, il faut taper le code suivant dans la console

    Kameleoon.API.Visitor.code

    Les implications pour vos tests :

    • Nous vous déconseillons de flagger des A/B Tests en "Technical" s'ils sont actifs sur plusieurs pages sur votre site. Si votre test concerne par exemple le menu, il va être visible à chaque chargement de page de votre site et les visiteurs qui n'ont pas consenti à la personnalisation vont voir une variation différente du menu à chaque chargement de page !
    • Ce problème ne concerne pas les Personnalisations puisque comme ces dernières ne poussent qu'une seule variation il n'y a pas de risque qu'un visiteur soit exposé à plusieurs variations au cours de sa visite !