Skip to main content

Ingestão Server Logs / API

Se o seu site não roda atrás de Cloudflare ou Akamai — por exemplo, porque o seu próprio nginx é o edge — você pode enviar visitas de crawlers de IA diretamente para a Finseo. Qualquer sistema capaz de enviar um POST HTTP funciona: uma pipeline de tracking server-side, um access log do nginx filtrado com um cron, ou um script próprio. A conexão fica em Bot Analytics → Sync → Server Logs / API → Connect. O diálogo cria o seu token de ingestão vinculado ao projeto (fslg_…) e mostra o endpoint, um exemplo NDJSON e modelos de nginx e cron prontos para copiar.
Crawlers de IA como GPTBot, ClaudeBot e PerplexityBot não executam JavaScript — um snippet no lado do cliente não consegue vê-los. O Bot Traffic trabalha exclusivamente com dados do lado do servidor, por isso os dados precisam vir dos seus logs de edge ou servidor.

Endpoint

O corpo é NDJSON: um objeto JSON por linha, uma linha por requisição. Texto simples e gzip são ambos aceitos — a Finseo detecta gzip automaticamente pelos magic bytes, sem cabeçalho adicional.

Formato das linhas de log

Os nomes dos campos são intencionalmente idênticos ao feed do Cloudflare: um único formato de exportação funciona para todas as integrações push da Finseo.

Resposta

  • received — linhas no lote
  • botVisits — linhas identificadas como requisições de crawlers de IA/busca verificados
  • saved — linhas gravadas após a deduplicação
Use esta resposta para monitorar o seu cron. O status da integração muda de Awaiting first push para Connected com a primeira entrega bem-sucedida.
Retries são seguros: a Finseo deduplica no servidor por bot + timestamp + IP + caminho. Um lote enviado duas vezes nunca gera contagem dupla. Você também pode enviar logs não filtrados — linhas que não são de crawlers são descartadas e nunca armazenadas — mas o pré-filtro mantém seus payloads pequenos.

Opção A: push do seu tracking server-side

Se você já tem um log central de requisições (tracking server-side, pipeline de logs), filtre-o pelos User-Agents dos crawlers e envie o lote de hora em hora ou diariamente:

Opção B: access log do nginx filtrado + cron

Registro completo não é necessário. Um segundo log filtrado contendo apenas crawlers de IA tem tipicamente poucos milhares de linhas por dia — nenhum serviço de agregação necessário:
Rotacione e envie a cada 10 minutos:
Com servidores em autoscaling, coloque a configuração do nginx e o cron no seu AMI/user data — caso contrário, instâncias novas param de reportar. Se a sua infraestrutura tem um armazenamento central de requisições, prefira a Opção A: um único ponto de integração, sem perda de dados no scale-in.

Limites

  • Máx. 16 MB por corpo de requisição (64 MB descomprimido), máx. 20.000 linhas por push
  • Rate limits por IP e por token — envie lotes, não requisições individuais
  • Apenas requisições de crawlers de IA e busca verificados são armazenadas; todo o resto é descartado

Testar sem alterações no servidor

Quer ver números reais antes de configurar qualquer coisa? Bot Analytics → Upload Server Logs aceita logs de texto brutos do nginx, Apache e Cloudflare de até 1 GB — exporte um dia de logs e faça o upload manualmente.

Desconectar

Clique em Manage → Disconnect no cartão Server Logs / API. O token de ingestão é invalidado imediatamente — pushes seguintes são rejeitados com 403. Lembre-se de remover também o seu cron job.

Solução de problemas

A Finseo verifica a identidade dos crawlers pelos intervalos de IP publicados pelos provedores. Se você enviar o IP do seu load balancer em vez do IP real do cliente (primeira entrada de X-Forwarded-For), a verificação falha e as linhas são descartadas. Verifique também se ClientRequestUserAgent contém a string UA original completa.
401 significa que o cabeçalho Authorization: Bearer está ausente; 403 que o token é inválido ou foi revogado via Disconnect. Copie o token atual do diálogo de conexão.
O status muda no primeiro POST bem-sucedido — verifique a resposta JSON na saída do seu cron. Um 413 significa que o lote excedeu os limites de tamanho; divida-o.
É a deduplicação funcionando: linhas com o mesmo bot, timestamp, IP e caminho — por exemplo, de um lote reenviado — são armazenadas apenas uma vez.