IP anonimiseren (of IP maskeren) in Google Analytics

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

In het kort

Als een klant van Analytics verzoekt om anonimisering van IP-adressen, maakt Analytics de adressen anoniem zodra dit technisch gezien mogelijk is. 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 ze naar Google Analytics zijn verstuurd. Het volledige IP-adres wordt in dit geval nooit op de harde schijf opgeslagen.

Als u een property maakt, wordt anonimisering van IP-adressen als volgt geïmplementeerd:

Opmerking: Voor Google Analytics 4-property's is IP-anonimisering standaard ingeschakeld. Hieronder wordt het proces voor IP-anonimisering beschreven voor verouderde Google Analytics-tags.

Uitgebreide uitleg

Analytics biedt de functie anonimize_ip (gtag('config', '<GA_MEASUREMENT_ID>', { 'anonymize_ip': true }) in de gtag.js-bibliotheek, waardoor 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 Google Analytics gegevens ontvangt, nog voordat deze worden opgeslagen of verwerkt.

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

De JavaScript-tag van Analytics

Als een webbrowser met JavaScript een pagina met de Analytics-tag laadt, worden 2 handelingen asynchroon uitgevoerd: de Analytics-functiewachtrij wordt geladen en verwerkt, en Analytics JavaScript wordt aangevraagd. De functiewachtrij is een JavaScript-matrix waarnaar de verschillende instellings- en collectiefuncties van Analytics worden gepusht. De eigenaar van de site stelt deze functies in tijdens de implementatie van Analytics. De functies omvatten onder meer de specificatie van het Analytics-accountnummer en de daadwerkelijke verzending van paginaweergavegegevens naar Google Analytics voor verwerking.

Als Analytics JavaScript een functie uitvoert vanuit de functiewachtrij waardoor gegevens worden verstuurd naar Google Analytics (deze functie is meestal gtag('config', '<GA_MEASUREMENT_ID>' in de gtag.js-bibliotheek), worden de gegevens als URL-parameters gekoppeld aan een HTTP-verzoek voor http://www.google-analytics.com/collect. Als de functie voor anonimisering wordt aangeroepen vóór de functie voor paginatracking, wordt een aanvullende parameter aan het pixelverzoek toegevoegd. De parameter voor IP-anonimisering ziet er als volgt uit:

&aip=1

Het Analytics-collectienetwerk

Het Analytics-collectienetwerk is een verzameling servers die 2 belangrijke services biedt: de levering van gtag.js (Analytics JavaScript) en de verzameling van gegevens die worden verstuurd via verzoeken voor /collect.

Als er een verzoek voor gtag.js binnenkomt, bevat dit aanvullende informatie in de HTTP-verzoekheader (zoals het type browser dat wordt gebruikt) en de TCP/IP-header (zoals het IP-adres van de aanvrager).

Wanneer er een verzoek binnenkomt, wordt dit in het geheugen bewaard voor anonimisering. Als de parameter &aip=1 is gevonden in de verzoek-URL, 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?