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

  1. Apri il sito, poi la dashboard: nel giro di un minuto compare la tua visita nel Tempo reale.
  2. In DevTools → Network la richiesta a /api/event risponde 204 e non ha intestazioni Set-Cookie; in Application → Storage non compare nulla.
  3. 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.