La loi a changé concernant les cookies déposés chez les utilisateurs. Pour cela la CNIL a créé une page qui explique ce qu’il en est. Ils proposent même un bout de code pour le opt-in et le opt-out, que j’ai légèrement modifié :
// Remplacez la valeur UA-XXXXXX-Y par l'identifiant analytics de votre site. var 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.style.width="50%"; div.style.position="absolute"; div.style.left="20%"; // Le code HTML de la demande de consentement // Vous pouvez modifier le contenu ainsi que le style div.innerHTML = '<div style="background-color:transparent;color:#fff">Ce site utilise Google Analytics.\ En continuant à naviguer, vous nous autorisez à déposer des cookies à des fins de \ mesure d\'audience. Vous pouvez vous <a href="#optout" onclick="gaOptout()">opposer à ce dépôt</a> ou <a href="#optin" onclick="gaOptIn(); document.getElementById(\'cookie-banner\').style.display=\'none\'">ignorer ce message</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) { var begin = document.cookie.indexOf(NomDuCookie+"="); if (begin != -1) { begin += NomDuCookie.length+1; var 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) { var path = ";path=" + "/"; var 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(); } function gaOptIn() { document.cookie = 'hasConsent=true; '+ getCookieExpireDate() +' ; path=/'; } //Ce bout de code vérifie que le consentement n'a pas déjà été obtenu avant d'afficher la bannière var consentCookie = getCookie('hasConsent'); //L'utilisateur n'a pas encore de cookie de consentement if (!consentCookie) askConsent() // Google Analytics var _gaq = _gaq || []; _gaq.push(['_setAccount', gaProperty]); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.src = 'http://www.google-analytics.com/ga.js'; ga.setAttribute('async', 'true'); document.documentElement.firstChild.appendChild(ga); })();
Bonjour,
merci pour ce code,
quelle est sa différence par rapport à celui de Google ?
Je vois qu’on efface plus les cookies dans certains cas mais j’ai du mal à suivre…
merci d’avance
Renaud> je ne sais pas ce que tu appelles « celui de Google » ?? En tout cas, le code de la CNIL proposet aux internautes d’accepter ou de refuser la présence de cookies, à la différence de la plupart des sites qui aujourd’hui ne font que faire apparaitre une bannière indiquant qu’il y a des cookies sur le site (et ne donnent pas de moyen de faire de opt-out et donc de refuser le tracking, sauf en arrêtant de surfer sur le site en question).