IP-anonimisering in Analytics

Een technische uitleg over hoe IP-adressen worden geanonimiseerd in Analytics

In het kort

Wanneer een klant van Analytics anonimisering van IP-adressen aanvraagt, maakt Analytics de adressen anoniem zodra dit technisch gezien mogelijk is, in een zo vroeg mogelijk stadium in het collectienetwerk. De IP-anonimiseringsfunctie in Analytics stelt het laatste octet van IPv4-adressen van gebruikers en de laatste 80 bits van IPv6-adressen in op nullen in het geheugen, vlak nadat deze naar het Analytics-collectienetwerk zijn verzonden. Het volledige IP-adres wordt in dit geval nooit op de harde schijf opgeslagen.

Wanneer u een property maakt, heeft u drie opties. Voor deze opties wordt anonimisering van IP-adressen als volgt geïmplementeerd:

Uitgebreide uitleg

Sinds 25 mei 2010 biedt Analytics de functie _anonymizeIp in de JavaScript-bibliotheek ga.js (en sinds kort ook ga('set', 'anonymizeIp', true) in de bibliotheek analytics.js), zodat website-eigenaren kunnen verzoeken om alle IP-adressen van gebruikers te anonimiseren binnen het product. Deze functie is in het leven geroepen zodat eigenaren van sites hun eigen privacybeleid kunnen naleven of, in sommige landen, kunnen voldoen aan aanbevelingen van lokale autoriteiten op het gebied van gegevensbescherming, waardoor volledige gegevens van IP-adressen wellicht niet mogen worden opgeslagen. IP-adressen anonimiseren/maskeren vindt plaats zodra gegevens worden ontvangen door het Analytics-collectienetwerk, nog voordat deze worden opgeslagen of verwerkt.

De procedure voor de anonimisering van IP-adressen in Analytics vindt plaats in twee stappen in de collectiepipeline: de JavaScript-tag en het collectienetwerk. Deze stappen worden hieronder beschreven.

De JavaScript-tag van Analytics

Wanneer een webbrowser met JavaScript een pagina met de Analytics-tag (ga.js of analytics.js) laadt, worden twee handelingen asynchroon uitgevoerd: de Analytics-functiewachtrij wordt geladen en verwerkt en de JavaScript-code van Analytics wordt aangevraagd. De functiewachtrij is een JavaScript-matrix waarnaar de verschillende configuratie- en collectiefuncties van Analytics worden gepusht. De eigenaar van de site stelt deze functies tijdens de implementatie van Analytics in. De functies omvatten onder andere de specificatie van het Analytics-accountnummer en de daadwerkelijke verzending van paginaweergavegegevens naar het Analytics-collectienetwerk voor verwerking.

Wanneer de JavaScript-code van Analytics een functie uitvoert vanuit de functiewachtrij waardoor gegevens worden verzonden naar het Analytics-collectienetwerk (deze functie is meestal ga('send', 'pageview') in de JavaScript-bibliotheek analytics.js en _trackPageview in de bibliotheek ga.js), worden de gegevens als URL-parameters verzonden bij een HTTP-verzoek voor http://www.google-analytics.com/_utm.gif (voor ga.js) en http://www.google-analytics.com/collect (voor analytics.js). Als de functie voor anonimisering wordt aangeroepen vóór de functie voor paginatracking, wordt een aanvullende parameter aan het pixelverzoek toegevoegd. De parameter voor de anonimisering van IP-adressen ziet er als volgt uit: &aip=1.

Het Analytics-collectienetwerk

Het Analytics-collectienetwerk is een verzameling van servers die twee belangrijke services biedt: ga.js en analytics.js (de JavaScript-code van Analytics) leveren en de gegevens verzamelen die worden verzonden via verzoeken voor _utm.gif en /collect.

Wanneer een verzoek voor ga.js, analytics.js, _utm.gif of /collect binnenkomt, bevat dit aanvullende informatie in de koptekst van het HTTP-verzoek (zoals het type browser dat wordt gebruikt) en de TCP/IP-koptekst (zoals het IP-adres van de aanvrager).

Wanneer een verzoek voor _utm.gif binnenkomt, wordt dit in het geheugen gehouden voor anonimisering. Als de parameter &aip=1 is gevonden in de URL van het verzoek (waar deze wordt geplaatst door de JavaScript-code van Analytics na verwerking van de functie voor anonimisering in ga.js of analytics.js), wordt het laatste octet van het IP-adres van de gebruiker ingesteld op nul terwijl het nog in het geheugen zit. Het IP-adres 12.214.31.144 wordt bijvoorbeeld gewijzigd in 12.214.31.0. (Als het IP-adres een IPv6-adres is, worden de laatste 80 bits van de in totaal 128 bits ingesteld op nul.) Pas na deze anonimiseringsprocedure wordt het verzoek opgeslagen op de harde schijf ter verwerking. Als de IP-anonimiseringsmethode wordt gebruikt, wordt het volledige IP-adres nooit op de harde schijf opgeslagen, omdat de anonimisering vlak nadat het verzoek is ontvangen, reeds in het geheugen plaatsvindt.

Was dit nuttig?
Hoe kunnen we dit verbeteren?