Mar 23 2009
Perché non posso avere l’IP dei visitatori?
Domanda ricorrente, risposta breve: perché Google non vuole, considera l’IP un dato personale e poiché è sempre nell’occhio del ciclone per le questioni di privacy, taglia corto e non lo consente.
Risposta articolata: i termini del servizio di Google Analytics, al punto 8.1 escludono questa possibilità tramite la dicitura
Google non assocerà il vostro indirizzo IP a nessun altro dato posseduto da Google
Un’altra conseguenza di questa regola, che con gli IP non c’entra, è che in Google Analytics non si possono tracciare o ripercorrere i path delle singole visite, cosa che invece altri software riescono a fare senza sforzo. Probabilmente avrete letto o avrete sentito dire da me in tempi remoti che con un banale trucco la cosa era ancora fattibile: infatti creando un filtro personalizzato di tipo avanzato il campo “indirizzo IP visitatore” è presente, come testimoniato dallo screenshot qui sotto (e come potete verificare voi stessi guardando il sorgente della pagina di creazione di un filtro come quello)
ecco come FireBug presenta la riga incriminata
<option value="31" style="display: none;">Indirizzo IP visitatore</option>
ma è selezionabile solo tramite tastiera, scorrendo la select tramite freccia su/giu. Io dicevo, ed era vero, che un filtro avanzato poteva prelevare l’intero campo IP e trascriverlo nel campo “Definito dall’utente”; la cosa è stata sanata da tempo da Google e un filtro come quello, al momento, semplicemente non fa nulla.
Allora, quale altra soluzione rimane?
rimane la possibilità di estrarre a mano l’indirizzo IP del visitatore e di scriverlo direttamente nel campo “definito dall’utente”, tramite la funzione _setVar() richiamata subito dopo _trackPageview().
Quindi in ASP
pageTracker._setVar("<%=Request.ServerVariables("REMOTE_ADDR")%>");
in ASP.NET
pageTracker._setVar("<%= Request.UserHostAddress>");
in PHP
pageTracker._setVar("<?php echo $_SERVER['REMOTE_ADDR'];?>");
in SHTML (server side include HTML)
pageTracker._serVar("<!--#echo var="REMOTE_ADDR"-->");
Proprio oggi ho dovuto ricorrere a questa tecnica: una grossa azienda con una infrastruttura di rete molto ampia (con decine di sistemisti sparsi sul territorio) implementa Google Analytics su un sito, ma nonostante due filtri per escludere le visite dei propri proxy, il report “Ubicazione di rete” riporta visite provenienti dal nome di rete dell’azienda. Poiché non se ne viene a capo, sistemo la funzione _setVar per catturare gli IP dei navigatori (in questo caso gli IP di rete interna, poiché i siti visti dall’interno non necessitano di proxy, ma l’immagine trasparente 1×1 di GA invece si), e dopo un paio d’ore sono già in grado di chiedere al sistemista dove siano ubicati e con che proxy escano gli IP del gruppo che “sfuggono” dai due filtri.
Risolta la questione ho eliminato la funzione setVar e sono ritornato nelle grazie di Google Analytics.
Buono a sapersi
Ho dato una occhiata ad altri TOS di GA delle altre nazioni, e per ognuna adotta una clausola sulla privacy personalizzata, anche se simile.
Questo è quello statunitense:
http://www.google.com/analytics/tos.html
nessuna menzione di indirizzo IP … magari loro non hanno questa restrizione(?)
All’idea di usare PHP ci avevo pensato anche io… ma mi domandavo in effetti se violasse le regole, ed ecco che la tua risposta mi chiarisce tutto. Mi asterrò 😉
Mik, nella TOS statunitense va guardata la clausola 7, non la 8. In realtà la menzione italiana è leggermente fuorviante, mea culpa. L’IP viene citato nel paragrafo che google suggerisce di inserire nei siti, per avvisare gli utenti che non verrà fatta nessuna associazione utente-IP. Resta il fatto che per Google l’IP è informazione personale in tutto il mondo, e in nessun paese il filtro funzionerebbe.
cosa che invece altri software riescono a fare senza sforzo
Magari per completezza ci dici quali sono questi softwares?
Grazie
http://en.wikipedia.org/wiki/List_of_web_analytics_software
Dalla lista di Wikipedia manca IBM Digital Analytics
ex Coremetrics, già…