Come identificare e filtrare il traffico Cookiebot in GA4 per ottenere dati più precisi sul comportamento reale degli utenti online.
La gestione dei consensi e la protezione della privacy sono oggi priorità fondamentali per chi opera online. E non si tratta solo di conformità alle normative come GDPR e CCPA, ma di rispettare e tutelare le persone che navigano sul web, con i loro diritti e le loro legittime aspettative di trasparenza. In questo contesto, le Consent Management Platform (CMP) come Cookiebot sono alleate preziose in questo percorso verso un’esperienza di navigazione più trasparente e rispettosa.
Tuttavia, l’attività di scansione mensile di Cookiebot, pur essenziale per monitorare e categorizzare i cookie, può generare un traffico significativo che rischia di alterare la nostra comprensione di come le persone realmente interagiscono con il sito.
Per questo è fondamentale implementare strategie di filtraggio che ci permettano di distinguere il traffico automatizzato da quello umano. Solo così potremo davvero ascoltare e comprendere i comportamenti autentici dei visitatori, le loro scelte e i loro percorsi di navigazione, ottenendo attraverso Google Analytics 4 una visione genuina e significativa di come le persone vivono l’esperienza del nostro sito web.
Come nel caso di diversi altri bot, anche il traffico generato da Cookiebot si manifesta tipicamente attraverso improvvisi aumenti di sessioni nel canale Direct. Una prima analisi può essere effettuata semplicemente consultando il report “Acquisizione di traffico” in Google Analytics.
Per una verifica più accurata, è possibile applicare dei filtri specifici. In particolare, dopo aver selezionato il canale Direct, si può filtrare ulteriormente per visualizzare solo il traffico con valore “(not set)” nella dimensione “Paese“.
È importante notare che queste caratteristiche potrebbero variare nel tempo. Nel 2023, per esempio, il traffico di Cookiebot veniva registrato come proveniente da Dublino, Irlanda. Questo sottolinea l’importanza di un monitoraggio costante e di un approccio flessibile nell’identificazione di questo tipo di traffico.
Per poter filtrare il traffico di queste scansioni periodiche è necessario prima di tutto individuarlo.
In questo articolo del supporto di Cookiebot vengono offerte due opzioni per identificare le visite dello scanner: una tramite gli indirizzi IP, e l’altra tramite lo User Agent.
Riguardo quest’ultima opzione, effettuando dei test, abbiamo provato a registrare questa variabile su GA4 e, diversamente da quanto scritto nell’articolo, all’interno dello User Agent di questo traffico bot non è effettivamente presente la dicitura “Cookiebot”, pertanto ad oggi non è utilizzabile come discriminante del filtro.
È possibile però sfruttare la lista degli IP da cui partono tutte le scansioni: nelle impostazioni di GA4 è possibile, infatti, contrassegnare il traffico di uno o più indirizzi IP assegnandogli un parametro chiamato “traffic_type”, seguendo i passaggi riportati di seguito:
1 – Una volta effettuato l’accesso a Google Analytics, cliccare sull’icona dell’ingranaggio in basso a sinistra per accedere all’amministrazione
2 – Cliccare sulla voce “Raccolta e modifica dei dati” del menù a sinistra, nel menù secondario che si aprirà cliccare su “Stream di dati”
3 – Cliccare sullo stream di dati da cui viene registrato il traffico Cookiebot
4 – Nella sezione “Tag Google” dei dettagli dello stream, cliccare “Configura le impostazioni del tag”
5 – Nella finestra che si aprirà, cliccare su “Mostra altro” in fondo e poi su “Definisci traffico interno”
6 – Cliccare sul pulsante “Crea” in alto a destra, poi inserire un nome per la regola (ad es. “Traffico Cookiebot”) e il valore di “traffic_type” (ad es. “cookiebot_traffic”).
In “Indirizzi IP” si può invece scegliere come corrispondenza “L’indirizzo IP è uguale a” e nel campo a destra incollare uno degli indirizzi IP dell’articolo del supporto di Cookiebot, ripetendo la stessa operazione per tutti gli IP cliccando su “Aggiungi condizione”, ma questa operazione risulterebbe piuttosto lunga, specialmente se ripetuta per diverse proprietà GA4.
È più comodo invece selezionare “L’indirizzo IP corrisponde all’espressione regolare” e nel campo del valore inserire una regex che raccolga tutti gli indirizzi IP, facendo attenzione a inserire prima di ogni punto il simbolo “\”, che fa in modo che il punto venga riconosciuto come segno di punteggiatura e non come carattere speciale.
Ad esempio, per una lista di IP come la seguente:
20.223.9.138
35.198.160.49
34.159.168.195
35.246.191.14
34.107.102.47
34.141.10.24
35.246.143.2
34.159.247.222
35.198.137.6
34.159.86.126
35.198.78.207
È possibile utilizzare la seguente regex:
In questo modo, basterà solo copiare un’unica riga di testo in ogni proprietà in cui ci sia bisogno di filtrare il traffico Cookiebot.
Così facendo, il traffico registrato dalle scansioni di Cookiebot verrà contrassegnato dal valore “traffic_type” inserito nelle impostazioni e, grazie a questo valore, sarà possibile utilizzare un filtro per evitare che venga registrato, in questo modo:
1 – Sempre all’interno di Google Analytics, cliccare sull’icona dell’ingranaggio in basso a sinistra per accedere all’amministrazione
2 – Cliccare sulla voce “Raccolta e modifica dei dati” del menù a sinistra, nel menù secondario che si aprirà cliccare su “Filtri dati”, poi cliccare su “Crea filtro” in alto a destra
3 – Selezionare “Traffico interno” come tipo di filtro, poi inserire un nome per il filtro dati (ad es. “Traffico Cookiebot”), lasciare “Escludi” come valore per “Operazione filtro” e come nome del parametro “traffic_type” inserire il valore che è stato impostato nei passaggi precedenti per la definizione del traffico interno (nel nostro caso di esempio era “cookiebot_traffic”)
4 – Impostare lo stato del filtro come “Attivo” e cliccare su “Crea” in alto a destra, confermando una seconda volta nella finestra che comparirà
A partire da questo momento il traffico di Cookiebot non verrà più registrato nella proprietà (questa operazione, infatti, non è retroattiva, e i dati storici non verranno ripuliti se è stato registrato traffico di questo tipo in precedenza).
Un possibile difetto di questa soluzione è che, come scritto nell’articolo, la lista degli IP sia soggetta a cambiamenti e aggiornamenti nel corso del tempo, e di rimando dovrà essere aggiornata anche nelle impostazioni di ogni proprietà GA4 per cui vogliamo che il filtro sia attivo.
Una possibile soluzione viene offerta dalla possibilità di poter “seguire” l’articolo cliccando sul pulsante “Follow” in cima, dopo aver creato un account nel sito del supporto di Cookiebot. In questo modo verrà inviata una mail all’indirizzo utilizzato per l’iscrizione ogniqualvolta l’articolo verrà aggiornato, ma bisognerà comunque creare una nuova regex che tenga conto dei nuovi indirizzi IP.
Per fare in modo di automatizzare al massimo tutto questo processo, viene fornito uno script Python per controllare periodicamente l’articolo e, se vengono individuati dei cambiamenti rispetto all’ultimo controllo, produrre una regex che includa tutti i nuovi indirizzi IP da copiare e incollare nelle impostazioni di GA4 per poi inviarla ad un indirizzo e-mail di nostra scelta, come se fosse una notifica.
Per iniziare, è necessario installare Python sul proprio computer. Successivamente, è consigliabile creare un ambiente virtuale: questo permetterà di avere un’installazione isolata di Python che includerà solo le librerie necessarie per il funzionamento dello script desiderato.
In alternativa, è possibile utilizzare Anaconda, una distribuzione open source che include Python e R. Anaconda offre una gestione più intuitiva e semplice dei pacchetti e degli ambienti virtuali. Per creare un ambiente con Anaconda, occorre aprire Anaconda Navigator, cliccare su “Environments”, selezionare “Create”, assegnare un nome all’ambiente e infine cliccare sull’ambiente appena creato per attivarlo.
L’ultimo step preliminare consiste nell’installazione di due librerie fondamentali: Selenium, che permette di automatizzare le interazioni con il browser, e BeautifulSoup, che consente di estrarre specifiche informazioni dalle pagine web. Per installare queste librerie, è sufficiente utilizzare i seguenti comandi nel prompt dei comandi o nel terminale.
Su Windows:
py -m pip install selenium beautifulsoup4
Su macOS/Linux:
python3 -m pip install selenium beautifulsoup4
Di seguito lo script di Python:
from selenium import webdriver from bs4 import BeautifulSoup import smtplib, json from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart def send_email(subject, body): # Configura le informazioni del server SMTP smtp_server = 'smtp.gmail.com' smtp_port = 465 with open('secrets.json', 'r') as file: secrets = json.load(file) from_email = secrets["address"] password = secrets["password"] if ", " in secrets["receivers"]: to_email = secrets["receivers"].split(", ") else: to_email = secrets["receivers"] # Crea il messaggio email msg = MIMEMultipart() msg['From'] = from_email if ", " in secrets["receivers"]: msg['To'] = ", ".join(to_email) else: msg['To'] = to_email msg['Subject'] = subject # Aggiungi il corpo del messaggio msg.attach(MIMEText(body, 'html')) try: # Connetti al server SMTP e invia l'email with smtplib.SMTP_SSL(smtp_server, smtp_port) as server: server.login(from_email, password) server.sendmail(from_email, to_email, msg.as_string()) except Exception as e: print(f"Errore durante l'invio dell'email: {e}") #apre della pagina del sito di Cookiebot per lo scraping url = "https://support.cookiebot.com/hc/en-us/articles/360003824153-Whitelisting-the-Cookiebot-scanner" driver = webdriver.Chrome() driver.get(url) soup = BeautifulSoup(driver.page_source, 'html.parser') driver.close() article_body = soup.find("div", class_='article-body') ul = article_body.findChild("ul", recursive=False) li_items = ul.find_all('li') #crea la regex che comprende gli indirizzi ip trovati nella pagina ip_regex_list = "" for li in li_items: ip_regex = li.text.replace(".", "\.") + "|" ip_regex_list = ip_regex_list + ip_regex ip_regex_list = ip_regex_list[:-1] # corpo del messaggio with open('secrets.json', 'r') as file: secrets = json.load(file) sites_list_link = secrets["sites_list_link"] subject = 'La lista di indirizzi IP di Cookiebot è cambiata' body = """ Ciao, <br><br> ho eseguito uno scan della lista degli IP di Cookiebot e ho trovato dei nuovi indirizzi IP! Di seguito puoi trovare la regex che comprende tutti gli attuali indirizzi IP di CookieBot: <br><br> """ + ip_regex_list + """ <br><br> Clicca <a href=" """ + sites_list_link + """ ">QUI</a> per vedere la lista dei tuoi siti che utilizzano Cookiebot. <br><br> Al prossimo aggiornamento!""" try: f = open("last_ip_regex.txt", "r+") if f.read() != ip_regex_list: f.seek(0) f.write(ip_regex_list) f.truncate() f.close() send_email(subject, body) else: pass except FileNotFoundError: f = open("last_ip_regex.txt", "w") f.write(ip_regex_list) f.close() send_email(subject, body)
Questo script andrà accompagnato da un file in formato JSON che andrà chiamato “secrets.json” e posizionato nella stessa cartella in cui è presente lo script Python. Questo file deve essere strutturato nel seguente modo:
{ "address": "sender.address@gmail.com", "password": "xxxx xxxx xxxx xxxx", "receivers": "receiver.address.1@example.it, receiver.address.2@example.it", "sites_list_link": "https://docs.google.com/spreadsheets/d/xxxxxxxxx" }
Di seguito una spiegazione dei quattro valori presenti nel file:
Per fare in modo che lo script venga attivato regolarmente, è possibile utilizzare un servizio come Utilità di pianificazione di Windows, che permette di attivare processi in base a regole personalizzabili, mentre il corrispettivo utilizzabile su Mac è Automator. Per esempio, se volessimo attivare lo script ogni volta che si esegue l’accesso al profilo di un PC Windows, si possono seguire queste indicazioni:
1 – Cercare il programma “Utilità di Pianificazione”, aprirlo e nel menù in alto selezionare “Azione” e “Crea attività”
2 – Nella tab “Generale” inserire un nome (ad es. “Checker IP Cookiebiot”) e selezionare “Esegui solo se l’utente è connesso”
3 – Nella tab “Attivazione” cliccare su “Nuovo” e nel menù a tendina in alto selezionare ”All’accesso”, selezionando anche l’opzione “Ritarda l’attività per 1 minuto”
4 – Nella tab “Azioni” cliccare su “Nuova” e nel campo “Programma o script” è necessario inserire il percorso del file .exe di Python. È possibile trovarlo inserendo il comando “where python” all’interno del Prompt di Comandi di Windows, e solitamente è un percorso del tipo “C:\Users\user_name\AppData\Local\Microsoft\WindowsApps\python.exe”. Se è stato creato un ambiente virtuale, bisognerà utilizzare il file python.exe all’interno della cartella dell’ambiente (se è stato utilizzato Anaconda si tratta di un percorso simile al seguente: “C:\Users\user_name\Anaconda3\envs\il_mio_ambiente\python.exe”)
Sempre nella stessa tab, nel campo a destra di “Aggiungi argomenti” va inserito il nome dello script comprensivo dell’estensione (ad es. “il_mio_script.py”) e nel campo di “Inizio” va inserito il percorso della cartella in cui è contenuto lo script (ad es. “C:\Users\user_name\cartella_dello_script”)
5 – Terminare cliccando su “Ok”
In questo modo verrà effettuato un controllo dell’articolo del supporto di Cookiebiot ogni qualvolta si accederà al profilo del PC, alla ricerca di aggiornamenti nella lista degli indirizzi IP. Se la lista è cambiata, arriverà una mail di notifica che conterrà la regex da utilizzare per aggiornare il filtro su GA4.