Richiesta di eliminazione dati… ma con l’accetta

Le norme di Google, nel caso specifico Google Analytics, vietano l’invio delle informazioni personali ai propri sistemi. Il colosso afferma infatti che:

[…] i Termini di servizio di Analytics, che devono essere ottemperati da tutti i clienti, vietano l’invio di informazioni personali (PII) alla piattaforma (come nomi, codici fiscali, indirizzi email e informazioni simili) o di dati che permettono di identificare in modo permanente un determinato dispositivo (ad esempio l’identificatore univoco di un telefono cellulare che non può essere reimpostato).

https://support.google.com/analytics/answer/2795983?hl=it

Qualora queste informazioni venissero raccolte si potrebbe incorrere nella chiusura dell’Account Google Analytics, con la perdita totale dei dati.
Per evitare spiacevoli conseguente è fondamentale pertanto che le PII non vengano mai inviate a Google Analytics.

Come proteggersi

La soluzione migliore è quella di prevenire, ovvero strutturare il sito in modo che i dati sensibili che possono circolare all’interno di esso non vengano passati al sistema di tracciamento. Uno dei casi più frequenti è il passaggio delle informazioni in querystring al submit di un form così come l’invio dei dati in dimensioni personalizzate al login dell’utente.
Se lato programmatico non è possibile intervenire è possibile trovare una soluzione tramite Google Tag Manager e i customTask.

Google suggerisce alcune best practice per evitare l’invio di informazioni personali durante la raccolta dei dati di Analytics. Tuttavia non sempre è possibile prevedere tutte le casistiche oppure non è affatto facile prevederle in anticipo, può esserci sempre qualcosa che sfugge al controllo e che involontariamente finisce per essere tracciato.

Cosa fare se ho raccolto PII in Google Analytics

Per proteggere la privacy degli utenti e permettere ai titolari dei dati di essere conformi alla normativa GDPR, Google ha introdotto una funzionalità a livello di Proprietà, Richieste di eliminazione dati, Fig. 1:

Fig. 1 – Richieste di eliminazione dati

Lo strumento consente, in modo decisamente più semplice rispetto al suo precursore, che richiedeva di conoscere il clientId o lo userId per effettuare la cancellazione tramite interfaccia o API, di selezionare un intervallo di date da processare e il campo che deve essere eliminato (URL, titolo pagina, categoria evento, azione evento, etichetta evento, dimensione personalizzata, ID utente o tutti quelli appena citati o combinazioni di essi), Fig. 2:

Fig. 2 – Creazione di una richiesta di eliminazione dei dati

Una volta inviata la richiesta, l’eliminazione non sarà immediata. Infatti, per dare agli amministratori la possibilità di eseguire la revisione, le eliminazioni rimangono in sospeso (periodo di tolleranza) per almeno sette giorni. In questo lasso di tempo è possibile annullare la richiesta di eliminazione dei dati.

Esempio su un caso reale

Ponendo la richiesta di cancellazione dei dati mostrata in Fig. 2, la situazione in Analytics per le URL ed il giorno indicato, prima dell’eliminazione, era la seguente (Fig. 3):

Fig. 3 – URL in Google Analytics prima dell’eliminazione dei dato

A seguito dell’eliminazione del campo selezionato, l’URL, la situazione in Analytics è diventata come quella mostrata in Fig. 4:

Fig. 4 – URL in Google Analytics dopo l’eliminazione dei dati

Laddove vi erano URL, che sia l’home page così come altre sottopagine del sito con o senza PII in querystring, sono state TUTTE eliminate.
Sono rimasti i valori assoluti, ovvero il numero delle visualizzazioni di pagina (il totale nell’esempio era 106 ed è rimasto invariato), del tempo in pagina, della frequenza di rimbalzo, ecc… ma nessuna URL per la data indicata è ora disponibile. Questo perché non si tratta di una cancellazione di un utente bensì di una sorta di anonimizzazione di informazioni al fine di rimuovere l’evidenza in caso di PII raccolte.
Le informazioni associate al campo processato rimangono tuttavia interrogabili, mi riferisco alle dimensione secondarie e alle dimensioni personalizzate.

Cosa succede in pratica

Quello che Google Analytics effettua è rinominare le stringhe del campo selezionato in fase di richiesta di eliminazione dati in un trattino “-“.
Di conseguenza nei report quei valori risultano tutti aggregati in un’unica riga.

A cosa bisogna stare attenti

Sicuramente è bene avere chiaro che (almeno ad oggi…) Google di mestiere non fa il chirurgo, per cui tutti i dati dei campi indicati per l’intervallo di date definito vengono eliminati indistintamente dal fatto che contengano o meno PII.
Questo su un breve periodo può non avere un impatto evidente ma, su lunghi intervalli temporali, si possono perdere dati utili ai fini di analisi sui quali non poter più orientare le proprie strategie di business.

Oltre a questo c’è un altro aspetto da tenere in considerazione, ovvero che le richieste di cancellazione dei dati sono sempre espresse in Tempo Coordinato Universale (UTC), in Italia si usa il CET (tempo dell’Europa centrale), pari all’UTC+1 o se è in vigore l’ora legale pari a UTC+2.
Questo si traduce in un inconveniente di non poco conto. Considerando che l’intervallo di date prevede la cancellazione dei dati per tutto l’arco di tempo dei giorni selezionati, la data di inizio partirà alle ore 00:00 e quella di fine terminerà alle ore 23:59. Quell’ora di differenza in UTC+1 comporta che viene sballato dal sistema il conteggio delle giornate. Infatti, aggiungendo 1 ora alle 23:59 dell’ultimo giorno indicato, si sta involontariamente definendo le ore 00:59 del giorno successivo. Il sistema rileva pertanto come data di fine, per l’esempio in questione, non più il giorno 15/10/2019 bensì il giorno 16/10/2019 e ne rimuove i dati fino alle ore 23:59.

Per mostrare quanto appena dichiarato con un esempio, prendendo come riferimento la richiesta di cancellazione dei dati mostrata in Fig. 2, la data di inizio e di fine cancellazione corrisponde al giorno 15/10/2019, tuttavia quello che ritrovo in Analytics è la seguente situazione, Fig. 5:

Fig. 5 – URL eliminate per il giorno indicato ma anche per quello successivo

Oltre al giorno definito Google ha cancellato i dati anche del giorno successivo. Nell’immagine di cui sopra ho isolato con una regex le URL che contengono il trattino “-“, ovvero quelle che sono state processate dal sistema di eliminazione dei dati. Non sono più le 106 che mi aspettavo di vedere bensì me ne ritrovo 404.

Da segnalare anche un altro comportamento non prevedibile. Ovvero, in base a come sono stati salvati i dati nei sistemi di Google Analytics, la cancellazione può coinvolgere più giorni del previsto, indipendentemente dalla questione del timezone.
A dirlo è la documentazione ufficiale, ma attenzione, questa dicitura è presente (quantomeno alla data di questo articolo) solo nella versione in lingua inglese:

Due to the way Analytics aggregates data, you may see data deleted up to 3 days before and/or after the beginning and end dates you select.

https://support.google.com/analytics/answer/9450800?hl=en

Questo significa che, in modo del tutto arbitrario (o quantomeno ignoto al momento della richiesta di cancellazione), richiedendo la cancellazione di 1 giorno possono essere eliminati i dati a partire da 3 giorni prima fino a 3 giorni dopo pertanto fino a 7 giorni di dati rimossi in totale.

Conclusione

Prevenire è meglio che curare. Il consiglio è quello di monitorare e farsi supportare da uno specialista, in questo modo si ridurrà il rischio di perdita di dati dovuti alla loro successiva eliminazione per adeguarsi ai termini di servizio di Google Analytics ed alla GDPR.

Ad ogni modo è sempre preferibile la cancellazione di un dato per giorno in più che la chiusura irreversibile di un intero Account.