woensdag 17 oktober 2012

Vraag toestemming voor cookies van Google Analytics

Eenvoudig cookie-toestemmings-script voor Google Analytics

Enorm veel webshops en andere websites maken gebruik van cookies om de website aan te sturen, winkelwagentjes te vullen, enzovoorts. Handige en noodzakelijke cookies dus.
Maar heel veel site gebruiken ook Google Analytics. En de cookies die Google Analytics op de computer van je websitebezoeker installeert, die zijn niet persé noodzakelijk voor het goed functioneren van je website.

Nu is er sinds 5 juni 2012 een wettelijke verplichting in Nederland om bezoekers de keus te geven of ze cookies van onder andere Google Analytics willen accepteren. En die wet verplicht iedere (ja, iedere) website aan de bezoeker expliciet toestemming te vragen voor het plaatsen van die niet-noodzakelijke cookies. Dat geldt dus ook voor jouw website, als je daar Google Analytics op geïnstalleerd hebt.
Je website zal je dus moeten aanpassen om expliciet toestemming te krijgen van je bezoekers voor het plaatsen van de Google Analytics cookies.

Hierbij een oplossing die je simpel in je website kunt toepassen om de toestemming voor de cookies van Google Analytics te regelen.

Met dit script kan de bezoeker van je website eenvoudig aangeven of hij wél of geen toestemming geeft om de niet-essentiële cookies van Google Analytics te accepteren. Google Analytics wordt alleen opgestart indien er wel toestemming is gegeven. De gebruiker kan op ieder moment met 1 klik de cookie-instelling wijzigen.

Het script werkt in principe in alle websites. Dus ook in je Joomla, Wordpress of welk ander CMS je ook gebruikt. En dus ook in VirtueMart en andere webshops!

Het script kan ook simpel worden uitgebreid naar andere niet-persé-noodzakelijke cookies op je website, maar ik denk dat heel veel sites alleen de Google Analytics cookies hoeven te 'regelen'.

 

Downloaden en installeren

Download het volgende bestandje en sla het op in een map op je webserver met de naam 'js' *:
cookie-permissie.js

Vervolgens plak je de volgende code in de head van je webpagina(s), bijvoorbeeld vlak voor de afsluitende </head>-tag:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="js/cookie-permissie.js" type="text/javascript"></script>
<script type="text/javascript">
if (getCookie('_paqqa') == 'allow')
{
  var _gaq = _gaq || []; _
  gaq.push(['_setAccount', 'JOUW-GOOGLE-ID']);
 _gaq.push(['_gat._anonymizeIp']);
 _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);
 })();
}
</script>

Let op:
De eerste regel in bovenstaande code is een aanroep naar jQuery. Nu gebruiken veel websites al jQuery en is het dus goed mogelijk dat in de head van jouw website de aanroep naar jQuery al gedaan wordt. Als dat zo is, dan even de jQuery-regel uit bovenstaande code verwijderen. Dat voorkomt conflicten.

(*) In plaats van de map 'js' kan je natuurlijk ook een andere map gebruiken. Zorg dan wel dat je die map-naam in de derde regel van bovenstaande code aanpast.

 

Werkt het?

Als alles goed is ben je nu al bijna klaar. Vul alleen in het bovenstaande script nog even je eigen Google-Analytics-ID in, anders worden je statistieken niet bijgehouden.
Let op: de cookie-instelling bovenin je scherm zie je slechts één keer, namelijk de eerste keer dat je de pagina bezoekt. Zo wordt je bezoeker dus niet bij ieder bezoek lastig gevallen door de opvallende cookie-keuzemogelijkheid bovenin het scherm. Onderaan de webpagina blijft wél altijd de keuzemogelijkheid staan. Precies zoals de Nederlandse wetgever het graag wil dus.

Werkt het niet?

Wanneer je alles goed geïnstalleerd hebt zou je bovenin óf onderin je webpagina's voortaan een mogelijkheid moeten zien om de cookie-instelling te veranderen. Zie je dat niet, dan is er iets nog niet goed gegaan. Als het script niet lijkt te werken controleer dan of je het javascript-bestandje hebt geplaatst in de map 'js'. Als die map nog niet bestaat, moet je die eerst even aanmaken.


Waarom is dit script nou zo handig?

Er zijn online veel vergelijkbare oplossingen te vinden voor de cookie-wetgeving. Veel daarvan hebben het nadeel dat ze, iedere keer als een webpagina wordt geladen, verbinding maken met een andere server dan die van jou, omdat ze daar de scripts vanaf moeten halen. Dat is slecht voor de snelheid van je website. Je hebt bovendien geen invloed op hoe de opmaak van de cookie-venstertjes eruit ziet. En de installatieprocedure is soms nogal ingewikkeld (..). 
Mijn script draait op je eigen webserver, en de opmaak van de vensters kan je 100% zelf instellen. Hetzij met je eigen css-sheet, óf door het aanpassen van de opmaakinstellingen in het script zelf. Lekker snel dus, en lekker makkelijk.


Waarom is dit script nou zo ónhandig?

Het is bekend dat heel veel mensen, als ze de vraag gesteld wordt, géén expliciete toestemming geven voor het plaatsen van niet-essentiële cookies. Meer dan 90% zelfs zou het weigeren. En dat vinden veel webmasters niet leuk omdat ze dan veel minder informatie krijgen van hun Google Analytics account.
Daarom wordt door webmasters vaak een variant gebruikt waarbij de bezoeker van de website wel wordt geïnformeerd over het gebruik van de cookies, maar niet expliciet om toestemming wordt gevraagd.
Mijn script werkt volgens het principe van expliciete toestemming. Met een klein beetje kennis van javascript pas je het echter snel aan naar een versie die werkt volgens het principe van niet-expliciete toestemming.

Disclaimer

Iedere eigenaar van een website is zelf verantwoordelijk voor de inhoud van zijn website. Ik bied deze oplossing voor de cookie-wetgeving aan, maar accepteer geen enkele verantwoordelijkheid voor wat je ermee doet. De software is naar eer en geweten gemaakt en voldoet naar mijn idee aan de nieuwe wetgeving. Maar ik zal nooit en te nimmer aansprakelijkheid accepteren voor welke schade dan ook, ontstaan uit het gebruik van mijn software. "As is", noemen ze dat in goed engels. En voel je volledig vrij de software te gebruiken voor je eigen websites, commercieel of niet.