Come filtrare il traffico Cookiebot ed escluderlo da GA4 per ascoltare i dati reali degli utenti

Come identificare e filtrare il traffico Cookiebot in GA4 per ottenere dati più precisi sul comportamento reale degli utenti online.

 

Data analyst

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 sapere se sto registrando del traffico di Cookiebot?

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.

Grafico acquisizione traffico

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“.

Grafico acquisizione traffico, canale Direct, solo traffico "(not set)", 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.

Come creare un filtro per il traffico Cookiebot su GA4

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.

User gent visite scanner

È 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:

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

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.

Automatizzare il controllo degli indirizzi IP di Cookiebot con Python

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:

  • address”: si tratta dell’indirizzo del mittente della mail. Dev’essere un indirizzo email di Gmail, può andare bene anche quello di un account creato apposta per questo script
  • password“: non si tratta della password utilizzata solitamente per l’accesso all’indirizzo email del mittente, bensì di una password di 16 cifre che è necessaria per il funzionamento di questo tipo di script. Per crearla è necessario andare nelle impostazioni dell’indirizzo email del mittente e attivare la verifica in due passaggi, in seguito a questo link. Va inserito un nome per l’app nell’apposito campo (ad es. “Checker IP Cookiebot”), poi bisogna cliccare su “Crea” e copiare la password di 16 cifre che comparirà
  • receivers“: qui va inserita una lista dei vari indirizzi mail a cui si vuole che venga inviata la mail di notifica. Gli indirizzi vanno separati da una virgola e uno spazio
  • sites_list_link“: in questo campo va inserito un link a un foglio di Google Sheets, preparato da noi, molto utile quando si gestisce più di un sito in quanto nel foglio è possibile inserire per ogni sito il link alla pagina di impostazioni dello stream di dati di GA4, in modo da velocizzare il processo di aggiornamento degli IP. Da tenere a mente che nelle impostazioni di condivisione del foglio Sheet vanno autorizzati gli indirizzi e-mail dei profili che avranno bisogno di vederlo, in modo che possano accedervi e in caso aggiornarlo.

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.

3 aprile 2025 Gabriele Malacasa

Potrebbe interessarti anche:

TAG: digital marketing