Installazione dello script — guida per il cliente
Astrelia Analytics si installa con una sola riga. Non usa cookie né memorizza nulla sul dispositivo dei visitatori, quindi non richiede il banner del consenso.
1. Il codice da inserire
Copia questa riga in tutte le pagine del sito, prima della chiusura di </head>
(o di </body>: il risultato non cambia). Sostituisci XXXXXXXX con l'ID del
tuo sito, che trovi nella dashboard in Impostazioni → Snippet.
<script defer src="https://analytics.astrelia.it/js/a.js" data-site="XXXXXXXX"></script>
Lo script pesa meno di 2 KB, si carica in differita e non rallenta la pagina. Entro un minuto dal primo accesso la dashboard segnala "script installato".
Piattaforme
| Piattaforma | Dove incollarlo |
|---|---|
| WordPress | Aspetto → Editor del tema → header.php, oppure un plugin come WPCode (Header) |
| PrestaShop | Design → Temi → Modifica tema → head.tpl, oppure il modulo Custom code |
| Shopify | Temi → Modifica codice → theme.liquid, prima di </head> |
| Joomla | Sistema → Template → index.php |
| HTML statico / altro CMS | nel template comune a tutte le pagine |
| Google Tag Manager | tag HTML personalizzato con lo snippet, attivazione All Pages |
2. Opzioni (tutte facoltative)
Si impostano come attributi sullo stesso tag <script>:
| Attributo | Effetto |
|---|---|
data-domain="www.miosito.it" |
forza il dominio registrato quando il sito risponde anche da altri host |
data-hash="1" |
conta come pagine diverse i cambi di # (app a pagina singola con routing hash) |
data-exclude="/admin/*,/anteprima" |
percorsi da ignorare (* = qualsiasi carattere) |
data-outbound="0" |
disattiva il conteggio automatico dei click su link esterni |
data-downloads="0" |
disattiva il conteggio automatico dei download (pdf, zip, doc…) |
data-forms="0" |
disattiva il conteggio automatico degli invii di form |
data-dnt="0" |
ignora Do Not Track e Global Privacy Control (per impostazione predefinita vengono rispettati) |
data-api="https://stats.miosito.it/api/event" |
endpoint alternativo, vedi §4 |
3. Eventi personalizzati e obiettivi
Da JavaScript:
window.aa('iscrizione-newsletter');
window.aa('acquisto', { prodotto: 'Scarpe', importo: '79' });
Se lo script non è ancora caricato la chiamata non genera errori: per non perdere eventi inviati prima del caricamento, aggiungi questa riga prima dello snippet:
<script>window.aa=window.aa||function(){(window.aa.q=window.aa.q||[]).push(arguments)}</script>
Da HTML, senza scrivere JavaScript:
<a href="/contatti" data-aa-event="cta-contatti" data-aa-prop-posizione="header">Contattaci</a>
Ogni evento può portare al massimo 10 proprietà, ciascuna lunga al massimo 100
caratteri. Nella dashboard ogni evento può diventare un obiettivo con tasso di
conversione; anche una pagina (es. /grazie) può essere un obiettivo.
Eventi raccolti automaticamente: outbound (click su link esterno), download,
form (invio di un form).
4. Servire lo script dal proprio dominio (anti ad-blocker)
Alcuni blocker filtrano gli script di analytics di terze parti. Servendo script ed endpoint da un sottodominio del sito, il tracciamento resta di prima parte.
Con Plesk / nginx — crea il sottodominio stats.miosito.it e in Impostazioni
Apache e nginx → Direttive nginx aggiuntive inserisci:
location = /js/a.js {
proxy_pass https://analytics.astrelia.it/js/a.js;
proxy_set_header Host analytics.astrelia.it;
proxy_ssl_server_name on;
expires 1d;
}
location = /api/event {
proxy_pass https://analytics.astrelia.it/api/event;
proxy_set_header Host analytics.astrelia.it;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_ssl_server_name on;
}
Con Apache (.htaccess o vhost, modulo mod_proxy attivo):
SSLProxyEngine On
ProxyPass "/js/a.js" "https://analytics.astrelia.it/js/a.js"
ProxyPass "/api/event" "https://analytics.astrelia.it/api/event"
ProxyPreserveHost Off
RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s"
Senza accesso alla configurazione del server — un file PHP stats.php:
<?php
// Proxy minimo: inoltra il corpo della richiesta e l'IP del visitatore.
$ch = curl_init('https://analytics.astrelia.it/api/event');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => file_get_contents('php://input'),
CURLOPT_HTTPHEADER => [
'Content-Type: text/plain',
'User-Agent: '.($_SERVER['HTTP_USER_AGENT'] ?? ''),
'X-Forwarded-For: '.$_SERVER['REMOTE_ADDR'],
],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 3,
]);
curl_exec($ch);
http_response_code(204);
Poi nello snippet: data-api="https://www.miosito.it/stats.php". Perché l'IP del
visitatore venga inoltrato, comunicaci l'IP del tuo server: lo aggiungiamo ai proxy
fidati. (L'IP serve solo per il paese e per l'hash giornaliero: non viene conservato.)
5. Verifica
- Apri il sito, poi la dashboard: nel giro di un minuto compare la tua visita nel Tempo reale.
- In DevTools → Network la richiesta a
/api/eventrisponde204e non ha intestazioniSet-Cookie; in Application → Storage non compare nulla. - Per escludere le tue visite dal conteggio, nella console del browser esegui
localStorage.setItem('aa_ignore', '1')(è l'unico uso di storage, volontario).
6. Testo per la privacy policy
Il testo pronto, in italiano e in inglese, è nella pagina Privacy e GDPR. Non serve modificare il banner dei cookie: se il sito non usa altri strumenti di tracciamento, il banner può essere rimosso del tutto.