Editar Plantilla HTML:
Después del Title (o sea que esté en el head)
Código
<SCRIPT> cookieChoices = {}; </SCRIPT>
Añadir script de Google:
http://www.cookiechoices.org/cookiechoices.zip
Dentro del zip hay el fichero cookiechoices.js
Añadir después de la siguiente línea:
Código
document.getElementById(dismissLinkId).onclick = _dismissLinkClick;
esto para que al hacer scroll desaparezca el aviso (consideramos que si está navegando acepta nuestra política de Cookies, navegar = scroll).
Código
document.onscroll = _dismissLinkClick;
La cookie caduca por defecto en 1 año:
Podemos poner + 3 años:
Código
expiryDate.setFullYear(expiryDate.getFullYear() + 3);
Y añadir el "path=/" para que no aparezca el aviso en todas las páginas del dominio:
Código
document.cookie = cookieName + '=y; path=/; expires=' + expiryDate.toGMTString();
O otra opción es colocar la cookie en culaquier subdominio de .elhacker.net, es decir *.elhacker.net , de manera que si el nombre de la cookie (displayCookieConsent) y el valor es "y" y la acepta en un subdominio sirve para el resto de los dominios.
Código
document.cookie=cookieName+'=y; expires='+expiryDate.toGMTString()+'; domain='+getDomainName(window.location.host)+'; path=/';
Debemos añadir la función getDomainName en el fichero cookiechoices.js
Código
/* function getDomainName(hostName){if(hostName.lastIndexOf(".")==hostName.indexOf(".")){return hostName}return hostName.substring(hostName.indexOf(".")+1)} */ function getDomainName(hostName) {return hostName.substring(hostName.lastIndexOf(".",hostName.lastIndexOf(".")-1)+1);}
Y cambiamos el nombre de la variable cookieChoices por cookieOpciones
Ahora ponemos el código en la plantilla de nuestro sitio web dentro del body (no en el head)
Código
Podemos cambiar el texto del aviso de Cookies, y el texto de más información y el del ok, o Entendido o Vale, De Acuerdo, etc.
El js de blogger por defecto es:
Código
<!-- 'Tú eres el responsable de informar a los visitantes de tu blog de las cookies que utilizas en él. Para más información, ve a http://www.blogger.com/go/cookiechoices.' --> <script src="/js/cookiechoices.js" defer></script> <script> document.addEventListener('DOMContentLoaded', function(event) { window.cookieChoices && cookieChoices.showCookieConsentBar && cookieChoices.showCookieConsentBar( (window.cookieOptions && cookieOptions.msg) || 'Este sitio emplea cookies de Google para prestar sus servicios, para personalizar anuncios y para analizar el tráfico. Google recibe información sobre tu uso de este sitio web. Si utilizas este sitio web, se sobreentiende que aceptas el uso de cookies.', (window.cookieOptions && cookieOptions.close) || 'Entendido', (window.cookieOptions && cookieOptions.learn) || 'Más información', (window.cookieOptions && cookieOptions.link) || 'https://www.blogger.com/go/blogspot-cookies'); }); </script>
Para cambiar el texto:
Código
<script> cookieOptions = {msg: "Este sitio web utiliza cookies propias y de terceros. Si continúas navegando, consideramos que aceptas su uso", close: "Vale", learn: "Más info", link:"http://www.elhacker.net/legal.html"}; </script>
Para modificar la apariencia: style:
Código
<b:skin><![CDATA[ #cookieChoiceInfo { position:absolute !important; width:40% !important; background-color:#eee !important; left:38% !important; color: #333 !important; font-size: 10px !important; font-weight:normal !important; padding:4px !important; margin:0; !important; z-index:1000 !important; line-height:1% !important; }
Para cumplir la ley debemos esperar a que el usuario acepte las cookies antes de cargarlas:
Código
<script> function carga_cookies(){ (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', 'UA-xxxxxxx', 'auto'); ga('send', 'pageview'); } </script>
Y una vez acepte las cookies llamamos a la función:
Código
carga_cookies();
Google Analytics sin recoger datos de país (cookie técnica)
https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#anonymizeIp
https://github.com/ItalyCookieChoices/italy-cookie-choices/wiki/Analytics-and-Cookie-Law
Código
<script> (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', 'UA-XXXXXXX-X', {'siteSpeedSampleRate': 100, 'anonymizeIp': true, 'storage': 'none', 'clientId': window.localStorage.getItem('ga_clientId')}); ga(function(tracker) { window.localStorage.setItem('ga_clientId', tracker.get('clientId')); }); ga('send', 'pageview'); </script>
Otra opción más completa es usar jquery:
Código
En el cookiecuttr.js cambiar el texto, link info cookies,
Código
cookieMessage: cookiePolicyLink:
Y cargar en el <body>
Código
<script> $(document).ready(function () { $.cookieCuttr(); $( window ).scroll(function() { if (jQuery.cookie('cc_cookie_accept') == undefined) { $( ".cc-cookie-accept" ).click(); } }); $( window ).click(function() { if (jQuery.cookie('cc_cookie_accept') == undefined) { $( ".cc-cookie-accept" ).click(); } }); }); </script>
Otra opción interesante es un script que cumple con la ley con Google Adsense y Google Analytics:
https://github.com/ecoal95/CookieTool/blob/master/src/cookietool.js
http://emiliocobos.net/script-ley-de-cookies/
http://emiliocobos.net/ley-de-cookies-y-adsense/