Documentation menu

Documentation

AI traffic and crawler logs

Connect your hosting platform's request logs so Ansengine can show which AI crawlers read your pages, verified, and which AI assistants send people back.

Every other surface measures what the engines say. AI traffic measures what they do: the crawlers that fetch your pages and the assistants that send real people back, from your own request logs. No JavaScript tracker, because bots do not run JavaScript.

What you get

NumberWhat it is
Crawler visitsRequests from an AI crawler, split by purpose: AI training (GPTBot, ClaudeBot), AI search (OAI-SearchBot, PerplexityBot, Googlebot) and user triggered assistant fetches (ChatGPT-User, Claude-User, Perplexity-User).
Verified and failed verificationA request claiming to be a crawler is checked against the vendor's published IP ranges. Inside the ranges is verified; outside is reported as spoofed and never counted as a crawler visit. Vendors that publish no ranges get no verdict rather than an invented one.
AI referral sessionsPeople who arrived from chatgpt.com, perplexity.ai, gemini.google.com, copilot.microsoft.com, claude.ai and the rest, attributed from the referrer without GA4.
Read, never citedPages crawlers fetch that no measured answer has ever cited. The engines are reading it and not trusting it: the most specific finding this product makes.
Note

Counts, never estimates. A zero means nothing happened, not that a model guessed low. Only AI classified requests are stored; ordinary visitors and other bots are counted in the delivery receipt and dropped.

Setup in two steps

  1. 1Open AI traffic in the console and create an ingest key. It is an ingest only credential: it can write traffic rows and nothing else. Creating a key revokes every previous one.
  2. 2Pick your hosting platform on the same page. The guide, the URLs and the code already carry your key, so setup is a paste. The Connected sources strip turns green on the first delivery.

Platforms

PlatformHowPlan
VercelA log drain to a custom endpoint, NDJSON, with an Authorization header. No code changes.Vercel Pro or Enterprise
CloudflareA Worker on your zone that forwards after the response, or a Logpush job with the http_requests dataset.Worker on any plan; Logpush on Enterprise
NetlifyAn Edge Function on any plan, or a General HTTP log drain for traffic logs.Edge Function any plan; log drain Enterprise
AWS CloudFrontStandard logging v2 to an Amazon Data Firehose stream with an HTTP endpoint destination, JSON or w3c output.Any distribution
FastlyReal time log streaming to an HTTPS endpoint with the JSON format string we provide.Any service
AkamaiDataStream 2 to a custom HTTPS endpoint, JSON format, X-Ansengine-Key header.DataStream 2 entitled
Google CloudA Cloud Logging sink for load balancer request logs into Pub/Sub, pushed to us with the key on the URL.Any project
WordPress, Kinsta, WP EngineA must use plugin that forwards AI traffic from the origin, non blocking. Full page caches that skip PHP miss some hits.Any host
Next.js, NodeA middleware that forwards only AI traffic, off the request path.Any host
Anything elsePOST batches of up to 500 events to the REST endpoint with the ingest key as a Bearer token.Any

What is collected

Four fields per request: path, user agent, referrer, client IP. Not collected: query strings, cookies, request bodies, other headers, or any other identifier. The path is taken without its query string on purpose. The IP is used in memory for range verification and dropped; what lands in the table is the classified bot, the verification verdict, the path and the referrer host.

Know this

Platform log drains deliver every request, humans included. The api keeps only AI classified lines; the rest are counted and discarded. Over the daily row cap the api answers 429 and drops the batch rather than truncating it silently, and the Connected sources strip shows the cap as an error.

Verification, honestly

A user agent is a claim, not an identity. Published measurements put spoofed AI crawler traffic at about 6 percent of everything bearing an AI crawler user agent, and most sites accept it. Ranges are fetched live from the vendors' own JSON files, cached, and treated as valid when stale, so a vendor's slow republish never turns real bots into spoofs. Anthropic publishes one flat list, so a Claude crawler verifies as Anthropic without separating ClaudeBot from Claude-User; that limit is stated on the page rather than papered over.