Ingesta Server Logs / API
Si tu sitio no funciona detrás de Cloudflare o Akamai — por ejemplo, porque tu propio nginx es el edge — puedes enviar las visitas de crawlers de IA directamente a Finseo. Funciona cualquier sistema capaz de enviar un POST HTTP: una pipeline de tracking server-side, un access log de nginx filtrado con un cron, o un script propio. La conexión está en Bot Analytics → Sync → Server Logs / API → Connect. El diálogo crea tu token de ingesta vinculado al proyecto (fslg_…) y muestra el endpoint, un ejemplo NDJSON y plantillas de nginx y cron listas para copiar.
Los crawlers de IA como GPTBot, ClaudeBot y PerplexityBot no ejecutan JavaScript — un snippet del lado del cliente no puede verlos. Bot Traffic trabaja exclusivamente con datos del lado del servidor, por eso los datos deben venir de tus logs de edge o servidor.
Endpoint
Formato de las líneas de log
Los nombres de campo son intencionadamente idénticos al feed de Cloudflare: un único formato de exportación sirve para todas las integraciones push de Finseo.
Respuesta
received— líneas en el lotebotVisits— líneas identificadas como peticiones de crawlers de IA/búsqueda verificadossaved— filas escritas tras la deduplicación
Los reintentos son seguros: Finseo deduplica en el servidor por bot + marca de tiempo + IP + ruta. Un lote enviado dos veces nunca produce conteos dobles. También puedes enviar logs sin filtrar — las líneas que no son de crawlers se descartan y nunca se almacenan — pero el prefiltrado mantiene tus payloads pequeños.
Opción A: push desde tu tracking server-side
Si ya tienes un log central de peticiones (tracking server-side, pipeline de logs), fíltralo por los User-Agents de los crawlers y envía el lote cada hora o cada día:Opción B: access log de nginx filtrado + cron
No se necesita registro completo. Un segundo log filtrado que solo contenga crawlers de IA suele ser de unos pocos miles de líneas al día — sin servicio de agregación:Límites
- Máx.
16 MBpor cuerpo de petición (64 MBdescomprimido), máx.20.000líneas por push - Rate limits por IP y por token — envía lotes, no peticiones individuales
- Solo se almacenan las peticiones de crawlers de IA y búsqueda verificados; todo lo demás se descarta
Probar sin cambios en el servidor
¿Quieres ver números reales antes de configurar nada? Bot Analytics → Upload Server Logs acepta logs de texto sin procesar de nginx, Apache y Cloudflare de hasta 1 GB — exporta un día de logs y súbelos manualmente.Desconexión
Haz clic en Manage → Disconnect en la tarjeta Server Logs / API. El token de ingesta se invalida inmediatamente — los pushes posteriores se rechazan con403. Recuerda eliminar también tu cron job.
Solución de problemas
La respuesta muestra botVisits: 0 aunque envié líneas de crawlers
La respuesta muestra botVisits: 0 aunque envié líneas de crawlers
Finseo verifica la identidad de los crawlers mediante los rangos de IP publicados por los proveedores. Si envías la IP de tu load balancer en lugar de la IP real del cliente (primera entrada de
X-Forwarded-For), la verificación falla y las líneas se descartan. Comprueba también que ClientRequestUserAgent contenga la cadena UA original completa.Errores 401 o 403
Errores 401 o 403
401 significa que falta la cabecera Authorization: Bearer; 403 que el token no es válido o fue revocado mediante Disconnect. Copia el token actual desde el diálogo de conexión.El estado se queda en 'Awaiting first push'
El estado se queda en 'Awaiting first push'
El estado cambia con el primer POST exitoso — revisa la respuesta JSON en la salida de tu cron. Un
413 significa que el lote superó los límites de tamaño; divídelo.saved es menor que botVisits
saved es menor que botVisits
Es la deduplicación funcionando: las líneas con el mismo bot, marca de tiempo, IP y ruta — por ejemplo, de un lote reenviado — solo se almacenan una vez.