Pular para o conteúdo principal
13 min de leitura

Rastreamento de Primeira Parte com Cloudflare Workers

Configure um proxy de primeira parte usando Cloudflare Workers. Este guia é para usuários em hospedagem compartilhada (Hostinger, GoDaddy, Bluehost, etc.) que não conseguem configurar proxies no lado do servidor.

Limitação Importante: Proteção Aprimorada de Rastreamento do Firefox Não é Contornada

Este guia configura um subdomínio personalizado (z.seudominio.com). Embora isso contorne alguns bloqueadores de anúncios e ITP do Safari, NÃO contorna a Proteção Aprimorada de Rastreamento (ETP) do Firefox porque os subdomínios ainda são considerados origens diferentes.

Se você precisar de compatibilidade com Firefox ETP, use uma destas opções de proxy no mesmo domínio:

Estas usam caminhos /api/_z/ que são na mesma origem e realmente contornam toda proteção de rastreamento.

Dificuldade: Fácil - Leva cerca de 10 minutos. Nenhuma experiência em codificação necessária. Apenas copie e cole.

Nomenclatura de Subdomínio

Se você prosseguir com esta abordagem, use z.seudominio.com (não analytics.*, metrics.*, tracking.*, ou stats.* que são bloqueados adicionalmente por filtros heurísticos).


Antes de Começar

Certifique-se de que você tem:

  • Uma conta Cloudflare (o plano gratuito funciona perfeitamente) - Inscreva-se aqui
  • Seu domínio adicionado ao Cloudflare (veja Passo 2)
  • Seu código de rastreamento Zenovay (encontrado em Domínios → seu site → Geral)

Formato do Seu Código de Rastreamento

Seu código de rastreamento se parece com: ZV_XXXXXXXXXX

  • Começa com ZV_
  • Seguido por 10 caracteres (letras e números)
  • SENSÍVEL A MAIÚSCULAS/MINÚSCULAS - copie exatamente

Exemplo: ZV_Q8U0GYD70WR


Por que Cloudflare Workers?

Cloudflare Workers executam na rede de borda global do Cloudflare (300+ data centers). Isto significa:

  • Rápido: Tempos de resposta menores que 50ms em todo mundo
  • Gratuito: 100.000 requisições/dia no plano gratuito (mais que suficiente para a maioria dos sites)
  • Simples: Nenhum servidor para gerenciar
  • Confiável: 99,99% de tempo de atividade

Passo 1: Criar uma Conta Cloudflare

Se você já tem uma conta Cloudflare, pule para o Passo 2.

  1. Vá para cloudflare.com
  2. Clique em Sign Up (canto superior direito)
  3. Digite seu endereço de e-mail
  4. Crie uma senha (pelo menos 8 caracteres)
  5. Clique em Create Account
  6. Verifique seu e-mail e clique no link de verificação

E-mail Não Chegou? Verifique sua pasta de spam. O e-mail vem de [email protected].


Passo 2: Adicione Seu Domínio ao Cloudflare

Este passo é obrigatório. Sem adicionar seu domínio ao Cloudflare, você não consegue criar um subdomínio personalizado como z.seudominio.com.

  1. Faça login no seu painel do Cloudflare
  2. Clique em Add a Site (botão azul grande)
  3. Digite o nome do seu domínio (ex: seudominio.com)
    • Não inclua www. ou https://
    • Apenas o domínio: seudominio.com
  4. Clique em Continue
  5. Selecione o plano Free e clique em Continue
  6. Cloudflare escaneará seus registros DNS existentes - clique em Continue
  7. Cloudflare mostra dois nameservers como:
    • bella.ns.cloudflare.com
    • troy.ns.cloudflare.com
  8. Copie esses nameservers - você vai precisar deles no próximo passo

Atualize os Nameservers do Seu Domínio

Agora você precisa apontar seu domínio para Cloudflare:

  1. Faça login no seu registrador de domínio (onde você comprou seu domínio):
  2. Encontre as configurações de DNS ou Nameserver do seu domínio
  3. Substitua os nameservers existentes pelos nameservers do Cloudflare
  4. Salve as alterações

Mudanças de Nameserver Levam Tempo. Pode levar de 5 minutos a 48 horas para as alterações se propagarem. Geralmente é feito em 30 minutos.

Cloudflare enviará um e-mail quando seu domínio estiver ativo.

Usando hospedagem compartilhada? Você ainda consegue adicionar seu domínio ao Cloudflare. Sua hospedagem existente continuará funcionando - Cloudflare apenas se torna um proxy na sua frente. Seu site continuará funcionando normalmente.


Passo 3: Crie o Worker

  1. No painel do Cloudflare, clique em Workers & Pages
  2. Clique no botão azul Create
  3. Clique em Create Worker
  4. Dê um nome para seu worker: zenovay-proxy
    • Use apenas letras minúsculas, números e hífens
    • Sem espaços permitidos
  5. Clique em Deploy

Você verá uma mensagem de sucesso. Agora precisamos adicionar o código do proxy.


Passo 4: Adicione o Código do Proxy

Não pule nenhuma etapa! Copie o código exatamente como mostrado. Um caractere faltando vai quebrar tudo.

  1. Após fazer o deploy, clique em Edit code (ou vá ao seu Worker e clique em "Edit code")
  2. Você verá um editor de código com algum código padrão
  3. Selecione TODO o código existente (Cmd+A no Mac, Ctrl+A no Windows)
  4. Delete-o (pressione Delete ou Backspace)
  5. Copie e cole o código a seguir:
Zenovay Proxy Worker - Copie Este Código InteiroJavaScript
// Zenovay First-Party Proxy Worker
// This proxies tracking requests through your domain to bypass ad blockers

export default {
async fetch(request) {
  const url = new URL(request.url);

  // Get the real visitor IP address (for accurate geolocation)
  const clientIP = request.headers.get('CF-Connecting-IP') || '';

  // Determine the target URL based on the request path
  let targetUrl;
  if (url.pathname === '/script.js' || url.pathname === '/z.js') {
    // Script requests go to the regular endpoint
    targetUrl = `https://api.zenovay.com/z.js${url.search}`;
  } else {
    // All other requests (events, settings) go through first-party endpoint
    targetUrl = `https://api.zenovay.com/fp${url.pathname}${url.search}`;
  }

  // Copy the original request headers
  const headers = new Headers(request.headers);

  // IMPORTANT: Forward the real visitor IP for accurate geolocation
  headers.set('X-Zenovay-Real-IP', clientIP);

  // Remove the Host header (we're proxying to a different domain)
  headers.delete('Host');

  // Handle CORS preflight requests
  if (request.method === 'OPTIONS') {
    return new Response(null, {
      status: 204,
      headers: {
        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
        'Access-Control-Allow-Headers': 'Content-Type',
      },
    });
  }

  try {
    // Forward the request to Zenovay API
    const response = await fetch(targetUrl, {
      method: request.method,
      headers: headers,
      body: request.body,
    });

    // Add CORS headers to the response
    const responseHeaders = new Headers(response.headers);
    responseHeaders.set('Access-Control-Allow-Origin', '*');

    // Return the response to the visitor's browser
    return new Response(response.body, {
      status: response.status,
      headers: responseHeaders,
    });
  } catch (error) {
    // If something goes wrong, return an error
    return new Response(JSON.stringify({ error: 'Proxy error' }), {
      status: 502,
      headers: { 'Content-Type': 'application/json' },
    });
  }
}
}
  1. Clique em Save and Deploy (canto superior direito)
  2. Aguarde a mensagem "Worker deployed successfully"

Código copiado com sucesso? Você deve ver "Worker deployed successfully" no topo. Se você vir erros, certifique-se de que copiou TODO o código incluindo a abertura export default { e fechamento }.


Passo 5: Adicione Seu Domínio Personalizado

CRÍTICO: Você DEVE usar z.seudominio.com

Firefox e Edge automaticamente bloqueiam esses subdomínios:

  • analytics.seudominio.com — BLOQUEADO
  • metrics.seudominio.com — BLOQUEADO
  • tracking.seudominio.com — BLOQUEADO
  • stats.seudominio.com — BLOQUEADO
  • telemetry.seudominio.com — BLOQUEADO
  • pixel.seudominio.com — BLOQUEADO

O ÚNICO subdomínio recomendado é: z.seudominio.com

Este é um subdomínio neutro de uma única letra que navegadores não bloqueiam.

Agora vamos conectar seu Worker ao seu domínio:

  1. Vá ao seu Worker no painel do Cloudflare
  2. Clique na aba Settings (não "Triggers" - se mudou para Settings)
  3. Desça até encontrar a seção Domains & Routes
  4. Clique em AddCustom Domain
  5. Digite seu subdomínio: z.seudominio.com
    • Substitua seudominio.com pelo seu domínio real
    • Mantenha o prefixo z. exatamente como mostrado
  6. Clique em Add Custom Domain
  7. Cloudflare automaticamente:
    • Criará um registro DNS para z.seudominio.com
    • Fornecerá um certificado SSL (HTTPS)
    • Isto leva 1-2 minutos

Aguarde a marca de seleção verde. Seu domínio personalizado mostrará "Initializing" e depois mudará para "Active" com uma marca de seleção verde. Não prossiga até ver a marca de seleção verde.


Passo 6: Teste Seu Worker

Antes de adicionar o script de rastreamento, vamos nos certificar de que o Worker está funcionando:

  1. Abra uma nova aba do navegador
  2. Vá para: https://z.seudominio.com/script.js
    • Substitua seudominio.com pelo seu domínio real
  3. Você deve ver código JavaScript (uma porção de código minificado)

Vê código JavaScript? Seu Worker está funcionando corretamente. Prossiga para o Passo 7.

Vê um erro ou página em branco?

  • Verifique se seu domínio personalizado mostra "Active" no Cloudflare
  • Aguarde 2-3 minutos e tente novamente
  • Certifique-se de que digitou a URL corretamente

Passo 7: Adicione o Script de Rastreamento ao Seu Website

IMPORTANTE: Você deve usar o método de script inline abaixo.

O método simples <script src="..."> NÃO funciona de forma confiável com Cloudflare Workers porque:

  1. Cloudflare Rocket Loader pode interferir no carregamento do script
  2. A configuração deve ser definida ANTES do script ser carregado

Use o método de script inline mostrado abaixo.

Adicione este código à seção <head> do seu website. Você pode encontrar seu código de rastreamento em Domínios → seu site → Geral no aplicativo Zenovay.

Cartão de script de rastreamento mostrando o trecho de script com abas HTML, React, Next.js e First-Party
Seu código de rastreamento e trecho de script estão na página Geral das configurações do seu domínio.
Adicione isto à seção <head> do seu HTMLHTML
<script data-cfasync="false">
window.ZENOVAY_TRACKER_CONFIG = {
trackingCode: 'YOUR_TRACKING_CODE',
apiUrl: 'https://z.seudominio.com',
settingsEndpoint: '/settings'
};
var script = document.createElement('script');
script.src = 'https://z.seudominio.com/script.js';
script.defer = true;
document.head.appendChild(script);
</script>

O que Substituir:

Espaço ReservadoSubstitua PorExemplo
YOUR_TRACKING_CODESeu código de rastreamento do painel ZenovayZV_Q8U0GYD70WR
z.seudominio.com (aparece 2 vezes)Seu domínio personalizado realz.meusite.com

Substitua AMBAS as ocorrências de z.seudominio.com! Há dois lugares no código onde você precisa colocar seu domínio.

Exemplo com Valores Reais:

Exemplo com valores reais preenchidosHTML
<script data-cfasync="false">
window.ZENOVAY_TRACKER_CONFIG = {
trackingCode: 'ZV_Q8U0GYD70WR',
apiUrl: 'https://z.meusite.com',
settingsEndpoint: '/settings'
};
var script = document.createElement('script');
script.src = 'https://z.meusite.com/script.js';
script.defer = true;
document.head.appendChild(script);
</script>

Onde Adicionar Este Código:

  • WordPress: Use um plugin como "Insert Headers and Footers" ou adicione ao header.php do seu tema
  • Wix: Settings → Custom Code → Head Code
  • Squarespace: Settings → Advanced → Code Injection → Header
  • Shopify: Online Store → Themes → Edit Code → theme.liquid (na seção <head>)
  • Arquivos HTML: Entre as tags <head> e </head>
  • Qualquer CMS: Procure por "Custom Code" ou "Header Scripts" em suas configurações

Passo 8: Verifique se Está Funcionando

Verificação 1: Aba Network (Qualquer Navegador)

  1. Abra seu website em Chrome, Firefox ou Edge
  2. Pressione F12 (ou Cmd+Option+I no Mac) para abrir DevTools
  3. Clique na aba Network
  4. Atualize seu website (Cmd+R ou Ctrl+R)
  5. Na caixa de filtro/busca, digite script.js
  6. Procure por uma requisição para z.seudominio.com/script.js

O que você deve ver:

  • Status: 200 (OK)
  • Domínio: z.seudominio.com (seu domínio, não api.zenovay.com)

Verificação 2: Modo Strict do Firefox (Mais Importante!)

Firefox tem a proteção de rastreamento mais rigorosa. Se funcionar no Firefox, funciona em todo lugar.

  1. Abra o navegador Firefox
  2. Clique no menu (☰) → Settings
  3. Clique em Privacy & Security na barra lateral esquerda
  4. Em "Enhanced Tracking Protection", selecione Strict
  5. Feche Settings e visite seu website
  6. Abra DevTools (F12) → aba Network
  7. Atualize a página
  8. Procure por script.js - deve carregar com status 200

Funciona no modo Strict do Firefox? Parabéns! Seu rastreamento de primeira parte está configurado corretamente e funcionará em TODOS os navegadores.

Verificação 3: Painel Zenovay

  1. Vá para app.zenovay.com e faça login
  2. Clique no seu website
  3. Visite seu website em outra aba
  4. Em 1-2 minutos, você deve ver a visita aparecer no seu painel

Lista de Verificação Final

Antes de terminar, verifique TODOS estes itens:

  • Worker implementado em z.seudominio.com (respondendo com código JavaScript)
  • Domínio personalizado usa prefixo z. (NÃO analytics., metrics., etc.)
  • Tag de script inclui atributo data-cfasync="false"
  • window.ZENOVAY_TRACKER_CONFIG está definido com trackingCode correto
  • Ambas as URLs no script usam seu domínio personalizado z.seudominio.com
  • Testado no Firefox com Proteção Aprimorada de Rastreamento definida para Strict
  • Visitas aparecendo no painel Zenovay

Solução de Problemas

Worker Retorna Erro 522 ou 524

Causa: Timeout ao conectar à API Zenovay.

Solução:

  1. Verifique se api.zenovay.com é acessível (visite no seu navegador)
  2. Verifique se não há erros de digitação no código do proxy
  3. Tente reimplementar o worker (Edit code → Save and Deploy)

Domínio Personalizado Mostra Erro SSL

Causa: Certificado SSL ainda não foi provisionado.

Solução: Aguarde 1-5 minutos. Cloudflare automaticamente provisiona certificados SSL. Se levar mais que 10 minutos, verifique se os nameservers do seu domínio estão apontando corretamente para Cloudflare.

Script Carrega Mas Nenhum Dado no Painel

Causa: Geralmente uma incompatibilidade de código de rastreamento.

Solução:

  1. Abra o Console DevTools do seu navegador (F12 → aba Console)
  2. Procure por mensagens de erro em vermelho
  3. Verifique se seu trackingCode corresponde exatamente ao que está no seu painel Zenovay (sensível a maiúsculas/minúsculas!)
  4. Certifique-se de que o domínio do website está registrado no Zenovay

"Script executando" Mas Nada Acontece

Causa: A apiUrl na sua configuração está errada.

Solução: Certifique-se de que sua window.ZENOVAY_TRACKER_CONFIG tem a apiUrl correta:

apiUrl: 'https://z.seudominio.com',  // Seu domínio personalizado real

Geolocalização Mostra Local Errado

Causa: IP real não está sendo encaminhado para Zenovay.

Solução: Certifique-se de que o código do seu worker inclui esta linha:

headers.set('X-Zenovay-Real-IP', clientIP);

Firefox/Edge Ainda Bloqueando

Causa: Você está usando um subdomínio bloqueado como analytics.* ou metrics.*.

Solução: Mude seu domínio personalizado para z.seudominio.com. Você precisará:

  1. Vá para Workers & Pages → Seu Worker → Settings
  2. Delete o domínio personalizado antigo
  3. Adicione novo domínio personalizado: z.seudominio.com
  4. Atualize ambas as URLs no seu script de rastreamento

Avançado: Múltiplos Websites

Se você tem múltiplos websites, você pode usar um worker para todos eles:

  1. Adicione múltiplos domínios personalizados ao mesmo worker:

    • z.website1.com
    • z.website2.com
    • z.website3.com
  2. Cada website usa seu próprio código de rastreamento:

Website 1HTML
<script data-cfasync="false">
window.ZENOVAY_TRACKER_CONFIG = {
  trackingCode: 'ZV_SITE1CODE',
  apiUrl: 'https://z.website1.com',
  settingsEndpoint: '/settings'
};
var s = document.createElement('script');
s.src = 'https://z.website1.com/script.js';
s.defer = true;
document.head.appendChild(s);
</script>
Website 2HTML
<script data-cfasync="false">
window.ZENOVAY_TRACKER_CONFIG = {
  trackingCode: 'ZV_SITE2CODE',
  apiUrl: 'https://z.website2.com',
  settingsEndpoint: '/settings'
};
var s = document.createElement('script');
s.src = 'https://z.website2.com/script.js';
s.defer = true;
document.head.appendChild(s);
</script>

Próximas Etapas


Precisa de Ajuda?

Se você está preso:

  1. Verifique novamente cada passo acima
  2. Certifique-se de que está usando z.seudominio.com (não analytics.* ou metrics.*)
  3. Teste no modo Strict do Firefox
  4. Verifique o console do navegador em busca de erros (F12 → aba Console)

Ainda preso? Contate o suporte em [email protected] com:

  • Nome do seu domínio
  • Screenshot da aba Network
  • Qualquer mensagem de erro da aba Console
Esta página foi útil?