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é :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | // 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.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).