Contatore Visitatori e Blocco Statistiche per PrestaShop - Visitatori Online, Grafici per Paese e Statistiche nel Footer
Mostra ai tuoi visitatori quanto è frequentato il negozio. Un blocco compatto nel footer o in una colonna laterale mostra chi è online adesso, ieri, oggi e i totali progressivi, con grafici ad anello per Paese e continente. I dati dei grafici sono pre-aggregati e i contatori sono in cache, così il blocco resta veloce anche su un negozio grande, e il modulo non memorizza alcun indirizzo IP dei visitatori. La geolocalizzazione funziona offline, da un database incluso. Otto lingue. PrestaShop dalla 1.7 alla 9.
La riprova sociale che già possiedi
Un negozio che sembra frequentato converte meglio di uno che sembra deserto. I dati li hai già — PrestaShop registra ogni visita dal giorno in cui l'hai installato — ma restano nel back office, dove nessun cliente li vedrà mai.
Questo modulo li porta in vetrina: un piccolo blocco con i numeri che contano e due grafici che mostrano da dove arrivano i tuoi clienti.
Cinque numeri, nel footer o in una colonna
Il blocco mostra chi è online adesso, ieri, oggi, visitatori totali e visite totali.
"Online" significa visite iniziate negli ultimi 30 minuti — è il modo standard di misurare questo dato, e vale la pena saperlo perché il numero non ti sorprenda. "Visitatori totali" conta gli indirizzi IP distinti; "visite totali" conta ogni singola visita. I due numeri sono diversi di proposito, e mostrarli entrambi racconta una storia migliore di quanto farebbe uno solo dei due.
Un offset storico ti permette di precaricare i due totali con il traffico che avevi prima dell'installazione, così un negozio con cinque anni di storia alle spalle non riparte da zero.
Dove va il blocco lo decidi tu
Tre interruttori nella pagina di configurazione: footer, colonna sinistra, colonna destra. Di default è attivo solo il footer.
Non sono filtri di visualizzazione. Attivare un interruttore registra l'hook, disattivarlo ne annulla la registrazione: così il blocco viene disegnato esattamente dove l'hai chiesto e in nessun'altra posizione. Il layout per il footer e quello per la colonna sono due template separati, ciascuno pensato per lo spazio in cui vive.
Una cosa da sapere prima di spostarlo: i due grafici stanno insieme al blocco del footer. Se disattivi il footer e usi solo una colonna, i contatori funzionano esattamente come descritto, ma i pulsanti Paesi e Continenti non hanno nulla da aprire. Lascia attivo il footer se vuoi i grafici, e usa le colonne insieme a lui, non al suo posto.
Si comporta bene sui temi moderni, non solo su Classic
La maggior parte dei blocchi da footer è stata scritta per il tema Classic e si sfascia su qualunque altro. Questo è stato corretto su temi reali nell'arco di quattro release.
Su Hummingbird e sugli altri temi PrestaShop 8 e 9 il blocco individua le colonne del footer del tema — PRODUCTS, COMPANY, ACCOUNT, STORE — e si affianca a quella riga come colonna di pari larghezza, invece di andare a capo sotto di essa. Eredita il colore del testo del footer invece di imporre un inchiostro scuro, quindi resta leggibile anche su un footer scuro. Le classi responsive funzionano sotto Bootstrap 5 oltre che sotto Bootstrap 4: il titolo non viene stampato due volte e la fisarmonica mobile si apre e si chiude correttamente con entrambi. E Classic, il tema per cui quasi tutti questi blocchi sono stati scritti, da tutto ciò resta volutamente intatto.
Una ruvidità che è meglio dirti subito, invece di lasciartela scoprire: le piccole icone del blocco arrivano dalle Material Icons, un font che Classic carica e Hummingbird no. Su un negozio con Hummingbird i due pulsanti dei grafici mostrano come testo il nome della propria icona, la freccetta su o giù accanto al dato di oggi fa lo stesso e i simboli di apertura e chiusura della fisarmonica mobile non vengono disegnati affatto. I numeri, i grafici e il layout non ne risentono. Aggiungere il font al tuo tema, o sostituire quelle icone con quelle del tema, risolve la cosa.
Due grafici, e da dove arrivano i dati
Dei pulsanti aprono i grafici ad anello per Paese e per continente — i primi 20 Paesi più una voce aggregata "Altro", e i continenti in un unico grafico. Una fetta è la somma dei conteggi giornalieri di visitatori unici per quel luogo, quindi va letta come quota relativa e non come un singolo conteggio deduplicato.
La libreria dei grafici viene caricata solo quando qualcuno apre davvero un grafico. In tutte le altre visualizzazioni di pagina non viene proprio richiesta. Da notare: non è inclusa nel pacchetto ma prelevata da una CDN pubblica, cosa che conta se applichi una content security policy restrittiva.
Veloce perché il lavoro pesante non si ripete a ogni visitatore
Il modo ingenuo di costruire una cosa così è contare tutto a ogni caricamento di pagina. Su un negozio con una tabella delle connessioni ormai grande, è una query lenta proprio sulle pagine più visitate.
Qui a impedirlo ci sono due cose. I grafici sono pre-aggregati: un watermark tiene traccia di fin dove il modulo ha letto il log delle connessioni, ogni esecuzione riparte da dove si era fermata la precedente e le righe nuove confluiscono in totali giornalieri per Paese e per continente. Disegnare un grafico legge quelle piccole righe giornaliere, mai il log.
I cinque KPI, invece, vengono contati dal log delle connessioni, perché un totale progressivo di visitatori distinti non si può costruire dai riepiloghi giornalieri senza accumulare scarti. A renderlo poco costoso è il fatto che il risultato viene scritto in una tabella di cache e ricalcolato al massimo una volta al minuto, per quante persone ci siano sul sito. Quel conteggio lo paghi una volta al minuto, non a ogni visualizzazione di pagina.
Un endpoint cron, e un negozio che se la cava anche senza
La pagina di configurazione ti fornisce un URL cron protetto da un token di 32 caratteri. Pianificalo ogni ora e l'aggregazione avviene interamente in background, fino a 20.000 connessioni per esecuzione.
Se non lo configuri mai, il blocco funziona lo stesso: una richiesta dalla vetrina elabora un lotto di massimo 1.000 connessioni ogni volta che la cache dei KPI scade, così un negozio con traffico costante si mantiene più o meno aggiornato da sé. Il motivo per pianificare il cron è dove avviene il lavoro — in background, invece che dentro il caricamento di pagina di un cliente — e il fatto che non dipende dal passaggio di qualcuno. Un negozio poco trafficato con un grosso arretrato lo smaltisce molto più in fretta con il cron che senza.
Geolocalizzazione che gira sul tuo server
Le ricerche per Paese avvengono interamente sul tuo server, su un database di intervalli IP incluso nel modulo con 188.686 intervalli, importato in una tabella indicizzata.
Risolvere un IP è una singola query indicizzata, non una scansione: il modulo usa il classico schema di ricerca per intervallo, con la chiave primaria sull'estremo finale dell'intervallo. Non c'è nessuna API di geolocalizzazione, nessuna quota per ricerca, nessun servizio di terze parti che possa cadere o iniziare a farsi pagare, e nessun IP di visitatore inviato da qualche parte per arricchire i dati.
Un limite da conoscere fin da subito: il database degli intervalli è IPv4. I visitatori che arrivano via IPv6 vengono conteggiati in tutti i KPI, ma non possono essere attribuiti a un Paese e compaiono nei grafici come "Unknown".
La posizione sulla privacy, detta chiaramente
Le tabelle del modulo non registrano alcun indirizzo IP dei visitatori. Non in forma hash, non troncati — proprio assenti. Le quattro tabelle che crea per le statistiche non hanno nemmeno una colonna in cui metterli.
Gli IP dei visitatori vengono letti dalla tabella delle connessioni già presente in PrestaShop, tenuti in memoria solo il tempo necessario a ricavare un conteggio di valori distinti e un Paese, poi scartati. Quello che viene scritto è un conteggio per Paese e per giorno. L'unica tabella che contiene numeri IP è il database di riferimento degli intervalli di indirizzi importato: sono dati pubblici che descrivono internet, non qualcosa che riguarda chi ti ha visitato. Mostrare al visitatore il suo indirizzo IP nel blocco è un'impostazione, ed è disattivata di default.
Due cose da sapere adesso, invece di scoprirle dopo. L'impostazione di conservazione dei dati è un numero documentato, non una cancellazione automatica: nulla viene eliminato al posto tuo, e la tabella delle connessioni la devi ripulire con gli strumenti di PrestaShop.
E la bandiera del Paese accanto alla posizione del visitatore è un'immagine prelevata da una CDN pubblica di bandiere. PrestaShop include in locale i file bandiera solo per le lingue che hai installato, quindi per la maggior parte dei Paesi il browser ricade davvero su quella CDN, e lo fa che tu abbia attivato o meno la visualizzazione dell'IP. È una piccola richiesta di immagine verso terze parti, non un flusso di dati, ma se stai scrivendo un'informativa su cookie e privacy conviene elencarla, invece di darla per rara.
Impostazioni che sono davvero impostazioni
L'offset storico, la durata della cache dei grafici, l'intervallo di aggiornamento dei KPI, il valore di conservazione dei dati, l'interruttore dell'IP visitatore e i tre interruttori di posizionamento stanno tutti in un'unica pagina, con default sensati: i dati dei grafici restano un'ora nel browser del visitatore, i contatori vengono ricalcolati al massimo una volta al minuto.
Nella stessa pagina c'è uno strumento IP di test: incolli un indirizzo e vedi esattamente a cosa lo risolve il modulo, invece di tirare a indovinare sul perché un grafico sembri sbagliato.
Multistore
Ogni aggregato, ogni riga di cache dei KPI e ogni watermark di aggregazione è associato al negozio e al gruppo di negozi, così ogni negozio di un'installazione multistore conta il proprio traffico e disegna i propri grafici. La tabella importata degli intervalli IP è condivisa, perché non c'è motivo di tenere tre copie degli stessi dati di riferimento.
Compatibilità
PrestaShop dalla 1.7 alla 9, in otto lingue: francese, inglese, italiano, olandese, polacco, spagnolo, tedesco e turco.
Due hook sono sempre registrati — uno per caricare gli asset del blocco e uno per passargli le sue impostazioni — più quelli che attivi tra i tre hook di posizionamento. Nessun override e nessuna modifica al tema. Al primo avvio servono due passaggi nella pagina di configurazione: importare gli intervalli IP, poi aggiornare le statistiche. Dopodiché il modulo si gestisce da solo.
Domande frequenti
Che cosa significa esattamente "online"?
Visite iniziate negli ultimi 30 minuti. Il dato viene letto dal log delle connessioni di PrestaShop, quindi non serve alcun tracciamento aggiuntivo né un cookie proprio del modulo. Un visitatore che legge la stessa pagina da 45 minuti non è più contato come online: per un contatore di questo tipo è normale.
Rallenta il mio negozio?
La performance è il tema attorno a cui è costruita la versione attuale, e la risposta onesta ha due metà. I dati dei grafici vengono aggregati in background in piccole tabelle di riepilogo giornaliero, quindi disegnare un grafico non tocca mai il log delle connessioni. Le cinque cifre dei contatori sono invece calcolate da quel log, ma il risultato viene messo in cache e ricalcolato al massimo una volta al minuto per impostazione predefinita, per quanto traffico tu abbia. Una normale visualizzazione di pagina carica un piccolo foglio di stile e un piccolo script, più una piccola immagine di bandiera; la libreria dei grafici viene scaricata solo quando qualcuno apre un grafico. L'unico caso da conoscere è quello di un negozio senza cron pianificato, dove un caricamento di pagina può anche elaborare un lotto di massimo 1.000 connessioni quando la cache scade — che è esattamente il lavoro che il cron esiste per spostare in background.
Dove compare il blocco?
Nel footer, nella colonna sinistra, nella colonna destra o in qualsiasi combinazione: tre interruttori nella pagina di configurazione, di default solo il footer. Attivare un interruttore registra l'hook, quindi il blocco compare anche in Design → Posizioni, dove puoi ordinarlo rispetto agli altri moduli. Tieni attivo il footer se vuoi i grafici, perché le finestre dei grafici fanno parte del blocco del footer; le colonne conviene usarle insieme a lui, non al suo posto.
Verrà bene sul mio tema?
Su Classic ha sempre funzionato. Il lavoro delle ultime quattro release è servito a farlo comportare bene su tutto il resto: su Hummingbird e sugli altri temi PrestaShop 8 e 9 adesso rileva le colonne del footer del tema e si allinea a esse come colonna di pari larghezza, ed eredita il colore del testo del footer, quindi resta leggibile anche su un footer scuro. Emette sia attributi Bootstrap 4 sia attributi Bootstrap 5, così gli interruttori e la fisarmonica mobile funzionano su entrambi. L'unica lacuna nota è il font delle icone: il blocco usa le Material Icons, che Classic carica e Hummingbird no, quindi su Hummingbird i pulsanti dei grafici e la freccetta di tendenza del dato di oggi mostrano come testo il nome della propria icona e i simboli della fisarmonica non vengono disegnati. Tutto il resto — le cifre, i grafici, il layout — non ne risente, e aggiungere il font al tuo tema risolve la cosa.
Memorizza gli indirizzi IP dei miei visitatori?
No. Le quattro tabelle che il modulo crea per le statistiche non hanno alcuna colonna IP. Gli IP vengono letti dalla tabella delle connessioni già presente in PrestaShop, usati in memoria per ricavare un conteggio di valori distinti e un Paese, poi scartati. Quello che viene conservato è un conteggio per Paese e per giorno. Il modulo crea in effetti un'ulteriore tabella che contiene gli intervalli di riferimento importati: sono dati pubblici che descrivono internet, non informazioni sui tuoi visitatori.
L'impostazione di conservazione cancella i dati vecchi?
No, ed è importante non dare per scontato il contrario. È una cifra documentata che imposti per allinearti alla tua informativa sulla privacy; nulla viene rimosso automaticamente. Usa gli strumenti di PrestaShop per ripulire la tabella delle connessioni con la frequenza che hai deciso.
Devo per forza configurare un cron job?
Non per farlo funzionare. Senza cron, una richiesta dalla vetrina elabora un lotto di massimo 1.000 connessioni ogni volta che la cache dei KPI scade, così un negozio con traffico costante si mantiene ragionevolmente aggiornato. Configuralo lo stesso: sposta quel lavoro fuori dai caricamenti di pagina dei tuoi clienti e continua a girare anche quando non passa nessuno, che è poi ciò che conta davvero su un negozio poco trafficato con un arretrato da smaltire. La pagina di configurazione ti fornisce l'URL con il suo token.
Chiama un servizio di geolocalizzazione esterno?
No. Le ricerche per Paese avvengono su un database di 188.686 intervalli IP distribuito insieme al modulo e importato nel tuo database alla prima configurazione. Nessuna API, nessuna quota, nessun IP di visitatore inviato da qualche parte per arricchire i dati. Due richieste esterne però esistono, ed è giusto conoscerle. La libreria dei grafici arriva da una CDN pubblica, ma solo quando qualcuno apre un grafico. L'immagine della bandiera del Paese arriva da una CDN pubblica di bandiere, e quella è la norma più che l'eccezione: PrestaShop include in locale i file bandiera solo per le lingue che hai installato, quindi la maggior parte dei Paesi ricade su quella CDN, e succede che tu abbia attivato o meno la visualizzazione dell'IP. Elencala nella tua informativa sulla privacy.
I grafici sono vuoti.
Esegui nell'ordine i due passaggi di avvio nella pagina di configurazione: importa gli intervalli IP, poi aggiorna le statistiche finché non riporta 100%. Finché le tabelle di aggregazione non contengono nulla, i grafici mostrano un'unica fetta "No data". I numeri dei KPI funzionano anche prima e non dipendono da questo.
Ogni visitatore risulta "Unknown".
L'importazione degli intervalli IP non è stata completata. Rilanciala dalla pagina di configurazione, poi usa lo strumento IP di test nella stessa pagina per verificare un indirizzo specifico: ti dirà esattamente a cosa lo ha risolto il modulo. I visitatori che arrivano via IPv6 vengono conteggiati, ma non possono essere attribuiti a un Paese.
I miei totali sembrano troppo bassi per un negozio così vecchio.
Imposta una volta l'offset delle visite storiche. Viene sommato ai visitatori totali e alle visite totali, così il contatore riflette anche il traffico che avevi prima di installare il modulo. Di proposito non tocca invece i numeri di online, oggi e ieri, che sono sempre in tempo reale.
Posso mostrare ai visitatori il loro indirizzo IP?
Sì, c'è un interruttore apposta ed è disattivato di default, perché per la maggior parte dei negozi è meglio lasciarlo così. Attivandolo, al blocco si aggiunge una riga che mostra al visitatore il suo indirizzo accanto alla bandiera del suo Paese.
Qual è la differenza tra visitatori totali e visite totali?
Le visite totali contano ogni visita. I visitatori totali contano gli indirizzi IP distinti. Più persone dietro un'unica connessione aziendale sembrano un solo visitatore, e una sola persona con un IP mobile che cambia può sembrarne diverse: è insito in questo modo di contare, ed è il motivo per cui il modulo mostra entrambi i numeri invece di spacciare uno dei due per la verità.
Funziona su un'installazione multistore?
Sì. Ogni aggregato, ogni cifra in cache e ogni watermark è memorizzato per negozio e per gruppo di negozi, così ogni negozio conta il proprio traffico e disegna i propri grafici. La tabella di riferimento degli intervalli IP importati è condivisa fra loro.
-
CompatibilitàPrestashop 1.5
Prestashop 1.6
Prestashop 1.7
Prestashop 8
Prestashop 9 -
Traduzioni del Modulo DisponibiliFrancese
Inglese
Italiano
Olandese
Polacco
Spagnolo
Tedesco
Turco
MEG Venture
4 altri prodotti nella stessa categoria
| Versione | 2.1.16 |
|---|---|
| Ultimo aggiornamento | 2026-07-30 |
| Registro delle modifiche | - [2026-07-24] Add Polish and Turkish translations for visitor statistics module - [2026-07-23] Translate visitor stats module strings to Turkish for better localization and user experience. - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Add translation files for FR, DE, PL, NL, TR, IT, ES (7 languages) - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-22] Align mobile compact title toggle arrow flush right (2.1.16) - [2026-07-22] Match mobile accordion title on Bootstrap 5 themes (2.1.15) - [2026-07-22] Fix Visitor Stats footer typography + duplicated heading on BS5 themes (2.1.14) - [2026-07-22] Fix footer placement under Hummingbird / non-Classic themes (2.1.13) - [2026-07-16] feat(blocksayac): Remove deprecated exception file and update template paths for footer and column displays - [2026-07-16] feat(blocksayac): Remove deprecated files and add new footer and column templates for visitor stats - [2026-07-16] feat(blocksayac): Update to version 2.1.12 with flag image support and various enhancements - [2026-07-16] feat(blocksayac): Update to version 2.1.11 with footer layout adjustments and third-party module handling - [2026-07-16] feat(blocksayac): Update to version 2.1.9 with selectable footer, left, and right column visibility options - [2026-07-16] feat(blocksayac): Update to version 2.1.8 with geo lookup fixes and improved import handling - [2026-07-16] feat(blocksayac): Update to version 2.1.6 with footer layout adjustments and geo lookup enhancements - [2026-07-16] feat(blocksayac): Update to version 2.1.4 with geo lookup enhancements and footer adjustments - [2026-07-16] feat(blocksayac): Update to version 2.1.2 with geo rebuild enhancements and UI improvements - [2026-07-16] feat(blocksayac): Add visitor stats module with admin configuration and front-end display - [2024-05-01] Performance upgrade. v1.4.2 - [2023-09-06] v1.4.1 - [2023-09-06] Initial commit |
• [2026-07-16] feat(blocksayac): Remove deprecated files and add new footer and column templates for visitor stats
• [2026-07-16] feat(blocksayac): Update to version 2.1.12 with flag image support and various enhancements
• [2026-07-16] feat(blocksayac): Update to version 2.1.11 with footer layout adjustments and third-party module handling
• [2026-07-16] feat(blocksayac): Update to version 2.1.9 with selectable footer, left, and right column visibility options
• [2026-07-16] feat(blocksayac): Update to version 2.1.8 with geo lookup fixes and improved import handling
• [2026-07-16] feat(blocksayac): Update to version 2.1.6 with footer layout adjustments and geo lookup enhancements
• [2026-07-16] feat(blocksayac): Update to version 2.1.4 with geo lookup enhancements and footer adjustments
• [2026-07-16] feat(blocksayac): Update to version 2.1.2 with geo rebuild enhancements and UI improvements
• [2026-07-16] feat(blocksayac): Add visitor stats module with admin configuration and front-end display
• [2024-05-01] Performance upgrade. v1.4.2
• [2023-09-06] v1.4.1
• [2023-09-06] Initial commit
• [2026-07-16] feat(blocksayac): Update to version 2.1.9 with selectable footer, left, and right column visibility options
• [2026-07-16] feat(blocksayac): Update to version 2.1.8 with geo lookup fixes and improved import handling
• [2026-07-16] feat(blocksayac): Update to version 2.1.6 with footer layout adjustments and geo lookup enhancements
• [2026-07-16] feat(blocksayac): Update to version 2.1.4 with geo lookup enhancements and footer adjustments
• [2026-07-16] feat(blocksayac): Update to version 2.1.2 with geo rebuild enhancements and UI improvements
• [2026-07-16] feat(blocksayac): Add visitor stats module with admin configuration and front-end display
• [2024-05-01] Performance upgrade. v1.4.2
• [2023-09-06] v1.4.1
• [2023-09-06] Initial commit
Commenti (3)
Non è stato possibile inviare il tuo giudizio sulla recensione
Segnala commento
Segnalazione inviata
Non è stato possibile inviare la tua segnalazione