Vai al contenuto

Servire lo script dal proprio dominio

Aggiornato il 18 ottobre 2026

Alcuni blocchi per pubblicità e tracciamento impediscono le richieste verso domini di analisi, incluso statsdot.com. Se servi lo script e le relative richieste dal tuo dominio, tali elenchi non corrisponderanno più. Questa operazione è facoltativa: la maggior parte dei siti funziona correttamente senza.

L'idea: un percorso sul tuo sito, ad esempio /sd/, inoltra tutto a https://statsdot.com/. Lo script viene quindi caricato da https://example.com/sd/js/script.js e invia le visite a https://example.com/sd/api/collect, che il tuo server inoltrerà.

Il tuo snippet diventa:

<script defer data-domain="example.com" src="/sd/js/script.js"></script>

Mantieni data-domain come il sito che hai aggiunto in Statsdot. Scegli un nome di percorso neutro: /sd/, /s/ o qualsiasi parola che non sia "analytics" o "stats".

L'indirizzo del visitatore

Statsdot necessita dell'indirizzo IP del visitatore (solo in memoria, mai memorizzato) per contare i visitatori unici. Dietro un proxy, Statsdot vede l'indirizzo del tuo server, quindi il proxy deve inoltrare l'indirizzo del visitatore nell'intestazione X-Forwarded-For. Senza di esso, ogni visita viene conteggiata come lo stesso visitatore.

Nginx

location /sd/ {
    proxy_pass https://statsdot.com/;
    proxy_set_header Host statsdot.com;
    proxy_ssl_server_name on;
    # Dietro Cloudflare, usa $http_cf_connecting_ip invece di $remote_addr.
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Cookie "";
}

Lo slash finale in proxy_pass rimuove /sd dal percorso.

Cloudflare Workers

Crea un Worker con una rotta example.com/sd/*:

export default {
  async fetch(request) {
    const url = new URL(request.url);
    const headers = new Headers(request.headers);
    headers.set('X-Forwarded-For', request.headers.get('CF-Connecting-IP') ?? '');
    headers.delete('Cookie');

    return fetch('https://statsdot.com' + url.pathname.replace(/^\/sd/, '') + url.search, {
      method: request.method,
      headers,
      body: request.method === 'POST' ? request.body : undefined,
    });
  },
};

Next.js e Vercel

In next.config.js:

module.exports = {
  async rewrites() {
    return [{ source: '/sd/:path*', destination: 'https://statsdot.com/:path*' }];
  },
};

Netlify

In _redirects:

/sd/*  https://statsdot.com/:splat  200

Verifica il funzionamento

Apri il tuo sito, quindi la tua dashboard: la visita apparirà in pochi secondi. Dopo un giorno di traffico reale, controlla che i visitatori sembrino plausibili. Se ogni visita viene conteggiata come un unico visitatore, il tuo host non sta inoltrando X-Forwarded-For: impostalo come negli esempi per Nginx o Worker. Se il tuo sito invia una Content Security Policy, lo script ora proviene dal tuo dominio, quindi 'self' è sufficiente.