L'ACPM vous permet de certifier vos données Piano Analytics. Cette certification répond néanmoins à un cahier des charges strict, qui impose un marquage conforme au RGPD. Cette conformité doit pouvoir être vérifiée et validée par Piano Analytics avant que les données collectées puissent être transmises à l'ACPM.
Ainsi, le marquage en place sur vos sites et applications certifiés doit impérativement venir alimenter les propriétés visitor_privacy_mode et visitor_privacy_consent.
Si cela est automatiquement le cas sur les SDK Piano Analytics via l'implémentation d'un mode de consentement (ou le preset des SDK), ce n'est pas le cas pour le SmartTag ou les fichiers xtcore.js ni les applications mobiles utilisant un SDK v2.
Nous vous invitons dans la mesure du possible à maintenir le marquage à jour et sur une version de SDK maintenue par nos équipes de développement (actuellement, les SDK Piano Analytics, version 6 et supérieures).
Si néanmoins la mise des SDK n'est pas possible, vous trouverez ci-dessous un guide afin d'adapter les marquages SmartTag et xtcore en conséquence afin que la certification puisse fonctionner correctement.
smarttag.js
Pour le fichier smarttag.js, l'implémentation va dépendre de la version du marqueur utilisée.
> 5.24.0
Sur les fichiers en version 5.24.0 et supérieurs, nous vous invitons à suivre les indications de notre documentation en ligne : Privacy - Javascript - AT Internet Developers (atinternet-solutions.com)
Et à vous appuyer sur les méthodes tag. privacy.setVisitorOptin() et tag.privacy.setVisitorMode("cnil", "exempt").
< 5.24.0
Sur les fichiers antérieurs à la version 5.24.0, il sera nécessaire de pousser manuellement ces informations.
Pour les SDK en version 5.21.0 à 5.23.0, nous vous invitons à utiliser la méthode setProps();
tag.setProps({ "visitor_privacy_mode": "exempt", //ou optin selon consentement obtenu "b:visitor_privacy_consent": false // ou true en mode optin }, true); // Persistent tag.page.set({'name': 'page_name_set'}); tag.dispatch();
Pour les fichiers encore antérieurs, vous pouvez utiliser la méthode setParams();
tag.setParam('visitor_privacy_mode', 'exempt', {permanent: true, hitType: ['all'], encode: true}) // Mode exempt
tag.setParam('b:visitor_privacy_consent', false, {permanent: true, hitType: ['all'], encode: true}) // Mode exempt
ou
tag.setParam('visitor_privacy_mode', 'optin', {permanent: true, hitType: ['all'], encode: true}) // Mode optin
tag.setParam('b:visitor_privacy_consent', true, {permanent: true, hitType: ['all'], encode: true}) // Mode optin
Note
Les méthodes setParam() et setProps() existent aussi sur les SDK mobiles v2. La première est recommandée jusqu'à la version 2.17.0 du SDK Android, après nous vous invitons à basculer sur setProps(). Il en va de même pour iOS où la version charnière est la version 2.18.0.
xtcore.js
Pour le fichier xtcore.js, les propriétés devront être ajoutées au marqueur principal, via les paramètres de query string vm et vc.
L'exemple de code ci-dessous explique comment implémenter une collecte en mesure hybride sur cette version du marqueur en fonction du consentement donné sur votre CMP :
<script type="text/javascript">
<!--
xtnv = document; //parent.document or top.document or document
xtsd = "http://logxxxx";
xtsite = "xxxxx"; //site number
xtpage = ""; //page name (with the use of :: to create chapters)
//-->
if (consentGiven) {
xtn2 = ""; //level 2 site
xtdi = ""; //implication degree
xt_multc = ""; //customised indicators
xt_an = ""; //numeric identifier
xt_ac = ""; //category
xt_vm = "optin"; //visitor mode
xt_vc = "true"; //visitor consent (true/false)
//do not modify below
if (window.xtparam!=null){window.xtparam+="&ac="+xt_ac+"&an="+xt_an+xt_multc+"&vm="+xt_vm+"&vc="+xt_vc;}
else{window.xtparam = "&ac="+xt_ac+"&an="+xt_an+xt_multc+"&vm="+xt_vm+"&vc="+xt_vc;};
} else {
xt_vm = "exempt"; //visitor mode
xt_vc = "false"; //visitor consent (true/false)
//do not modify below
if (window.xtparam!=null){window.xtparam+="&vm="+xt_vm+"&vc="+xt_vc;}
else{window.xtparam = "&vm="+xt_vm+"&vc="+xt_vc;};
}
</script>
<script type="text/javascript" src="http://www.mysite.com/xtcore.js"></script>
À noter que le fichier xtcore.js n'effectue pas de gestion native des propriétés strictement nécessaire, il est donc de votre responsabilité de gérer les propriétés envoyées en mode exempt via la section "do not modify below" présente pour chaque marqueur xtcore.
//do not modify below
if (window.xtparam!=null){window.xtparam+="&vm="+xt_vm+"&vc="+xt_vc;}
else{window.xtparam = "&vm="+xt_vm+"&vc="+xt_vc;};
N'hésitez pas à contacter notre centre support si vous avez un doute sur la configuration à adopter dans votre cas.