Saltar para o conteúdo

Servir o script a partir do seu próprio domínio

Atualizado em 18 de outubro de 2026

Alguns bloqueadores de anúncios e de rastreio bloqueiam pedidos para domínios de análise, incluindo statsdot.com. Se servir o script e os seus pedidos a partir do seu próprio domínio, essas listas deixam de corresponder. Isto é opcional: a maioria dos sites funciona corretamente sem esta configuração.

A ideia: um caminho no seu site, por exemplo /sd/, reencaminha tudo para https://statsdot.com/. O script é então carregado a partir de https://example.com/sd/js/script.js e envia as visitas para https://example.com/sd/api/collect, que o seu servidor transmite.

O seu snippet torna-se:

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

Mantenha data-domain como o site que adicionou no Statsdot. Escolha um nome de caminho neutro: /sd/, /s/ ou qualquer palavra que não seja "analytics" ou "stats".

O endereço do visitante

O Statsdot necessita do endereço IP do visitante (apenas em memória, nunca armazenado) para contar visitantes únicos. Atrás de um proxy, o Statsdot vê o endereço do seu servidor, pelo que o proxy deve reencaminhar o endereço do visitante no cabeçalho X-Forwarded-For. Sem isto, cada visita conta como o mesmo visitante.

Nginx

location /sd/ {
    proxy_pass https://statsdot.com/;
    proxy_set_header Host statsdot.com;
    proxy_ssl_server_name on;
    # Atrás do Cloudflare, utilize $http_cf_connecting_ip em vez de $remote_addr.
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Cookie "";
}

A barra final em proxy_pass remove /sd do caminho.

Cloudflare Workers

Crie um Worker com uma rota 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

Em next.config.js:

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

Netlify

Em _redirects:

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

Verifique se funciona

Abra o seu site e, em seguida, o seu painel de controlo: a visita aparece em segundos. Após um dia com tráfego real, verifique se os visitantes parecem plausíveis. Se cada visita for contada como um visitante, o seu servidor não está a reencaminhar o X-Forwarded-For: configure-o como nos exemplos do Nginx ou do Worker. Se o seu site envia uma Content Security Policy, o script provém agora do seu próprio domínio, pelo que 'self' é suficiente.