Protéger les données personnelles, accompagner l'innovation, préserver les libertés individuelles

Contenu

Solutions pour la mesure d'audience

Comment me mettre en conformité avec la recommandation "Cookies" de la CNIL ?

Les outils de mesures d’audience sont déployés afin d’obtenir des informations sur la navigation des visiteurs. Ils permettent notamment de comprendre comment les utilisateurs arrivent sur un site et de reconstituer leur parcours. Ces outils utilisent des technologies permettant de tracer les utilisateurs sur le site et d’associer un « referrer » ou une campagne à un identifiant unique. 

Deux solutions :

  1. Utiliser un outil dispensé de consentement
  2. Recueillir le consentement de l'internaute en cas d'utilisation d'outil non conforme

Des statistiques web sans recueillir le consentement

Pour être dispensé du recueil du consentement, les outils de mesure d'audience doivent respecter les conditions suivantes :

  • L'éditeur du site doit délivrer une information claire et complète ;
  • Un mécanisme d’opposition doit être accessible simplement et doit pouvoir être utilisable sur tout types de terminaux (y compris les smartphones et tablettes).
  • Les données collectées ne doivent donc pas être recoupées avec d’autres traitements (fichiers clients ou statistiques de fréquentation d'autres sites par exemple).
  • Le cookie déposé doit servir uniquement à la production de statistiques anonymes.
  • Le cookie ne doit pas permettre de suivre la navigation de l’internaute sur d’autres sites.
  • L’adresse IP permettant de géolocaliser l’internaute ne doit pas être plus précise que l’échelle de la ville. Concrètement les deux derniers octets de l’adresse IP doivent être supprimés.
  • Les cookies permettant la traçabilité des internautes et les adresses IP ne doivent pas être conservés au-delà de 13 mois à compter de la première visite.

A ce jour, l'outil Piwik est pour le moment le seul service d’analytics qui ne requiert qu'un léger paramétrage pour être conforme à la réglementation. Ce tutoriel vous indique comment paramétrer PIWIK .

Que faire en cas d'utilisation d'un autre outil ?

Mesure d'Audience par Google

Si vous utilisez Google Analytics ou Universal Analytics, il faut mettre à jour votre page web afin de bloquer les cookies tant que vous n’avez pas obtenu le consentement utilisateur.

Le script suivant permet de désactiver le traçage des outils de mesure d'audience tant que les utilisateurs n'ont pas donné leur consentement. Ce script s'appuie sur documentation Google Analytics et celle de Universal Analytics).

Que vous utilisiez Google Analytics ou Universal Analytics il vous faudra insérer le code ci-dessous avant vos tags analytics. 

N'oubliez pas de remplacer la valeur UA-XXXX-Y par l'identifiant analytics de votre site.

// Remplacez la valeur UA-XXXXXX-Y par l'identifiant analytics de votre site.
gaProperty = 'UA-XXXXXX-Y'

// Désactive le tracking si le cookie d’Opt-out existe déjà.

var disableStr = 'ga-disable-' + gaProperty;

if (document.cookie.indexOf('hasConsent=false') > -1) {
window[disableStr] = true;
}
//Cette fonction retourne la date d’expiration du cookie de consentement 

function getCookieExpireDate() { 
 var cookieTimeout = 34214400000;// Le nombre de millisecondes que font 13 mois 
 var date = new Date();
date.setTime(date.getTime()+cookieTimeout);
var expires = "; expires="+date.toGMTString();
return expires;
}

// Cette fonction est appelée pour afficher la demande de consentement
function askConsent(){
    var bodytag = document.getElementsByTagName('body')[0];
    var div = document.createElement('div');
    div.setAttribute('id','cookie-banner');
    div.setAttribute('width','70%');
    // Le code HTML de la demande de consentement
    // Vous pouvez modifier le contenu ainsi que le style
    div.innerHTML =  '<div style="background-color:#ffffff">Ce site utilise Google Analytics.\
    En continuant à naviguer, vous nous autorisez à déposer des cookies à des fins de \
    mesure d\'audience.  Pour s\'opposer à ce dépôt vous pouvez cliquer  \
    <a href="javascript:gaOptout()">ici</a>.</div>';          
    bodytag.insertBefore(div,bodytag.firstChild); // Ajoute la bannière juste au début de la page 
    document.getElementsByTagName('body')[0].className+=' cookiebanner';              
}
      
      
// Retourne la chaine de caractère correspondant à nom=valeur
function getCookie(NomDuCookie)  {
    if (document.cookie.length > 0) {        
        begin = document.cookie.indexOf(NomDuCookie+"=");
        if (begin != -1)  {
            begin += NomDuCookie.length+1;
            end = document.cookie.indexOf(";", begin);
            if (end == -1) end = document.cookie.length;
            return unescape(document.cookie.substring(begin, end)); 
        }
     }
    return null;
}
   
// Fonction d'effacement des cookies   
function delCookie(name )   {
    path = ";path=" + "/";
    domain = ";domain=" + "."+document.location.hostname;
    var expiration = "Thu, 01-Jan-1970 00:00:01 GMT";       
    document.cookie = name + "=" + path + domain + ";expires=" + expiration;
}
  
// Efface tous les types de cookies utilisés par Google Analytics    
function deleteAnalyticsCookies() {
    var cookieNames = ["__utma","__utmb","__utmc","__utmz","_ga"]
    for (var i=0; i<cookieNames.length; i++)
        delCookie(cookieNames[i])
}
   
// La fonction d'opt-out   
function gaOptout() {
    document.cookie = disableStr + '=true;'+ getCookieExpireDate() +' ; path=/';       
    document.cookie = 'hasConsent=false;'+ getCookieExpireDate() +' ; path=/';
    var div = document.getElementById('cookie-banner');
    // Ci dessous le code de la bannière affichée une fois que l'utilisateur s'est opposé au dépôt
    // Vous pouvez modifier le contenu et le style
    if ( div!= null ) div.innerHTML = '<div style="background-color:#ffffff"> Vous vous êtes opposé \
    au dépôt de cookies de mesures d\'audience dans votre navigateur </div>'
    window[disableStr] = true;
    deleteAnalyticsCookies();
}



//Ce bout de code vérifie que le consentement n'a pas déjà été obtenu avant d'afficher
// la baniére
var consentCookie =  getCookie('hasConsent');
if (!consentCookie) {//L'utilisateur n'a pas encore de cookie de consentement
 var referrer_host = document.referrer.split('/')[2]; 
   if ( referrer_host != document.location.hostname ) { //si il vient d'un autre site
   //on désactive le tracking et on affiche la demande de consentement            
     window[disableStr] = true;
     window[disableStr] = true;
     window.onload = askConsent;
   } else { //sinon on lui dépose un cookie 
      document.cookie = 'hasConsent=true; '+ getCookieExpireDate() +' ; path=/'; 
   }
}

// Il vous reste à insérer votre tag javascript ici   

Tag Google Analytics

 var _gaq = _gaq || [];
  _gaq.push(['_setAccount', gaProperty]);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + 
    '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

Tag Universal Analytics

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', gaProperty , 'auto');  // Créer le tracker.
ga('send', 'pageview');             // Envoyer l'information qu'une page a été visitée.

Lien vers le mécanisme de refus des cookies analytics

Il vous reste à faire apparaître le lien vers le mécanisme d’opposition dans la page "en savoir plus" décrivant les cookies utilisés sur votre site. Ce lien est valable que vous utilisiez Google Analytics ou Universal Analytics.

<a href="javascript:gaOptout()">Cliquez ici pour vous opposer aux cookies de mesure d'audience de Google</a>
Chargement en cours...