Zoeken op Blue 2 Blond

Analytics ip-adressen anonimiseren: de correcte manier

De cookie-popup; Iedereen kent ze, de één is beeldvullender dan de ander. Soms kom je er gewoonweg niet in, voordat je cookies accepteert. Gebruik je echter enkel tracking-cookies, dan kan het volstaan om ip-adressen geanonimiseerd op te slaan om je website te ontdoen van tracking cookies. Twee vliegen in één klap; je bent ook dichter bij AVG compliance.

In dit artikel focussen we ons op het tracken van bezoekers via Google Analytics. Remarketing cookies, als ook social share buttons, social widgets (Facebook / Twitter) laten we dan ook buiten beschouwing. Dit werpt namelijk nieuwe drempels op waarbij per stuk nagegaan zal moeten worden of ze AVG compliant zijn. Gebruik je één van laatst genoemde zaken, dan kom je niet onder een cookie-popup uit.

In alle gevallen zal bij het tracken van bezoekers en bijhouden van bezoekers statistieken, een privacy statement omtrent onder meer gebruik van cookies wèl benodigd zijn. Check onze AVG Wordpress checklist.

Tip: snellere websites? Voorkom, door gebruik te maken van de www-prefix, onnodig cookie-verkeer.

Autoriteit Persoonsgegevens biedt voor het privacy vriendelijk instellen van Google Analytics, een handleiding in PDF formaat aan. Vanuit ons netwerk ontvingen we de vraag of men het anonimiseren, aan de hand van de in de handleiding opgenomen code-voorbeeld, correct had toegepast. En daarin zagen we nog wel eens incorrecte implementatie van anonimisering van ip-adressen voor Google Analytics.

Google Analytics geschiedenis

Om correcte anonimisering te kunnen beoordelen, zal nagegaan moeten worden welke Google Analytics versie gebruikt is. Hiervoor dienen we in de geschiedenis van Google Analytics te duiken. De oorsprong van de tracking software ligt bij Urchin Software Corp, uiteindelijk overgenomen door Google. Globaal op een rijtje:

  • 2005: Urchin / UA-code
    te herkennen aan de file google-analytics.com/urchin.js en de functie urchinTracker();
  • 2007: Traditioneel / UA-code
    te herkennen aan de file google-analytics.com/ga.js en de functie pageTracker._trackPageview();
  • 2009: Asynchroon / UA-code
    te herkennen aan de file google-analytics.com/ga.js en de functie _gaq.push(['_trackPageview']);
  • 2012: Advertising Code / UA-code
    te herkennen aan de file stats.g.doubleclick.net/dc.js en de functie _gaq.push(['_trackPageview']);
  • 2013: Universal / UA-code
    te herkennen aan de file google-analytics.com/analytics.js en de functie ga('send', 'pageview');
  • 2015: Google Tag Manager / GTM-code
    te herkennen aan de file googletagmanager.com/gtm.js en geobfusceerde code met parameter lijst (window,document,'script','dataLayer','GTM-XXXX')
    Google Tag Manager biedt bijvoorbeeld marketeers meer invloed, en minder afhankelijkheid van website bouwers. Gevolg is ook dat het anonimiseren van ip-adressen binnen GTM, vanuit Google Tag Manager zelf aangestuurd moet worden, en niet via de analytics-snippet verzorgd kan worden;
  • 2017: Global Site Tag / UA-code
    te herkennen aan de file googletagmanager.com/gtag/js en de functie gtag('config', 'UA-xxxxxxx-xx');
    Global Site Tag is onder meer door Google in het leven geroepen om de overstap naar Google Tag Manager te vereenvoudigen.

Overigens, verschillende versies, vooral in combinatie met GTM, kunnen ook naast elkaar draaien, maar valt buiten de scope van dit artikel.

Correct anonimiseren van IP-adressen

Elke Google Analytics versie heeft dus een net iets andere functie-benaming of benadering, en vereist dan ook een net iets ander stukje code voor zogenaamde customization (in dit geval dus ip-adressen geanonimiseerd registreren).

Wij merken nog wel eens, dat deze versies door elkaar worden gehaald, met als gevolg dat de snippet niet zijn beoogd effect sorteert (namelijk: anonimiseren van ip-adressen van je bezoekers), maar ook dat het een foutmelding oplevert met niet werkende statistieken als gevolg.

Open na implementatie/wijziging van de analytics-snippet vooral de JS console van je webbrowser, om na te gaan of zich foutmeldingen voor doen.

Let wel: wanneer er gebruik wordt gemaakt van meerdere tracking-codes (wat we ook wel eens tegen komen naar aanleiding van vraagstukken vanuit ons netwerk) kan het zijn dat zich niet per definitie een foutmelding voordoet, maar de implementatie voor anonimisering toch incorrect heeft plaatsgevonden.

Google Analytics code snippet

Buiten GTM om, zal momenteel vooral Global Site Tag (gtag) en Universal (ga) code snippets gebruikt worden. Hiervoor wordt dan ook wel eens het eerder genoemd PDF handleiding van Autoriteit Persoonsgegevens gebruikt, waar de twee versies ook door elkaar zijn gehaald (hiervan zijn ze inmiddels op de hoogte gesteld).

  • Asynchroon / DoubleClick analytics
    In geval van de asynchrone of doubleclick Google Analytics versie, dien je de volgende regel toe te voegen voordat de pageview de deur uit gaat:

    _gaq.push(['_gat._anonymizeIp']);

    Zie ook ga.js handleiding. Let wel: deze Google Analytics versie is verouderd. Gebruik voor nieuwe websites de nieuwere Google Analytics versies (zie Google Analytics historie).

  • Universal analytics
    Gebruik je de universal tracking code, dan dien je de volgende regel toe te voegen voordat de pageview de deur uit gaat:

    ga('set', 'anonymizeIp', true);

    Zie ook analytics.js handleiding.

  • Global Site Tag
    Gebruik je de Global Site Tag / gtag tracking code, dan dien je de config-regel aan te vullen met een parameter. De volgende regel ...

    gtag('config','UA-xxxxxxx-x');

    ... wordt dan als volgt:

    gtag('config','UA-xxxxxxx-x', {'anonymize_ip':true});

    Zie ook gtag.js handleiding.

  • Google Tag Manager
    Gebruik je Google Tag Manager, dan zal het ipadres niet via een code-snippet geanonimiseerd kunnen worden. Anonimiseren van ip-adressen doe je binnen de Google Tag Manager omgeving zelf. Indien ingelogd, kies je onder het kopje "More Settings" voor "Basic configuration". Zet hier "Anonymize IP" op "true".

Events vs pageview

Afhankelijk van de website, kunnen ook events worden geregistreerd. Denk aan webshops of fora, met op ajax gebaseerde filter- en zoekfuncties, of acties waarbij een product aan de winkelwagen wordt toegevoegd. Sla de bijbehorende handleiding van de gebruikte Google Analytics versie er op na, om de juiste syntax na te gaan voor het anonimiseren van ip-adressen in het geval van events.

IP-adres anonimisering binnen CMS systemen

In de meeste gevallen zal er gebruik worden gemaakt van een CMS systeem, waarin de gtag.js of analytics.js code snippet geplaatst kan worden. Soms handmatig door te copy-pasten, soms via een plugin of widget achter de schermen. De incorrecte gevallen, komen we tot dusver vooral bij Wordpress tegen.

Gebruik je het LightBolt CMS om tot een 100% Page Speed te komen, dan zit deze functie ingebakken waarmee foutgevoeligheid wordt weggenomen. Je hoeft enkel je tracking-ID in een formaat als UA-xxxxxxx-x of GTM-xxxxxxx-x in te voeren, om in het geval van een UA tracking-ID aan te geven of je ip-adressen wilt anonimiseren. Het CMS genereert de bijbehorende code.

Toch een cookie-melding benodigd? Het LightBolt CMS voorziet hierin. Ook Wordpress websites kennen hier vaak (met de nodige impact op de laadtijd van de website) plugins voor. Alternatieven zijn er online te vinden, bijvoorbeeld via https://cookieconsent.insites.com.

Heb je een poging gedaan om ip-adressen van bezoekers te anonimiseren niet alleen afscheid te kunnen nemen van de cookie-popup, maar ook te voldoen aan de AVG wetgeving? Of ben je dit van plan maar ben je er niet zeker van of het correct is gebeurd? Neem gerust contact met ons op, via info@blue2blond.nl.

Eigenhandig aan de slag met de AVG wetgeving, zonder juridisch traject? Kijk eens op AVG Cloud Register.

Laat ons weten wat je hiervan vindt!

  • Houd reacties relevant aan het onderwerp en wees redelijk en billijk naar anderen. Houd je bij het plaatsen van een reactie aan de Nederlandse wet.
  • Uw emailadres zal enkel gebruikt worden om u, indien aangegeven, op de hoogte te houden van nieuwe reacties op dit bericht.
  • Indien u er voor kiest uw emailadres weer te geven, zal deze voor bots onleesbaarder worden gemaakt.
  • 20/03/2018 18:12

    ekstyS

    Hallo,
    Fijn dat jullie het voor de verschillende Snippet-versies bij elkaar hebben gezet!
    Is er een reden dat jullie de GTM-implementatie NIET hebben opgenomen?

    • 21/03/2018 17:08

      namfoH niwrE

      Hoi Sytske,

      Daar is een reden voor; In het geval van GTM, dient het via Google Tag Manager ingesteld te worden, bijvoorbeeld door een marketeer. Dit betreft dus geen code/snippet aanpassing binnen de website.

      GTM zal ik echter voor de volledigheid binnenkort alsnog aanvullen. Dank voor de feedback!

  • 25/04/2018 11:08

    najseeK

    Goed overzicht!

    Als je de Global site tag gebruikt en je combineert dit met Google optimize, wordt het dan A of B?

    gtag('config', 'xxxxxxx-x', { 'optimize_id': 'GTM-yyyyyyy'}, { 'anonymize_ip': true});


    of wordt dan

    gtag('config', 'xxxxxxx-x', { 'anonymize_ip': true }, { 'optimize_id': 'GTM-yyyyyyy'});



    oftewel maakt het uit of je eindigd met 'anonymize_ip': true of niet?

    • 25/04/2018 12:31

      namfoH niwrE

      De volgorde maakt niet uit. Echter, de exacte wijze van het doorgeven van anonymize_ip en optimize_id dient in een iets andere syntax. In bovenstaande situatie is gtag de functie, en zijn de rest parameters. In beide gevallen geef je vier parameters door, terwijl het in drie kan.

      Het is even zoeken naar de juiste pagina binnen Google Analytics documentatie, [https://developers.google.com/analytics/devguides/collection/gtagjs/pages], maar de correcte manier voor meerdere "parameter-value pairs" zou als volgt zijn:

      gtag('config', 'xxxxxxx-x', { 'anonymize_ip': true ,  'optimize_id': 'GTM-yyyyyyy'});


      Let op het ontbreken van accolades, waarin optimize_id en anonymize_ip in één JavaScript object zit, in plaats van losse objecten.