Appearance
Key concepts
The vocabulary used in every report, in the API and in the MCP server.
Actor types and families
Every event is attributed to an actor. There are eight actor types, grouped into three families.
| Family | Actor type | Who |
|---|---|---|
| Humans | human | A person using the browser directly |
| Action agents | ai_agent | An AI agent driving a real browser for a user: Claude in Chrome, ChatGPT Agent / Atlas agent mode, Perplexity Comet, Project Mariner, Operator, browser-use… It runs JavaScript, clicks, fills forms and may buy. |
automation | A scripted browser without an identified AI vendor: Selenium, Puppeteer, Playwright, headless Chrome. Scrapers, QA scripts, fraud, unknown agents. | |
| Indexing bots | ai_fetcher | An AI assistant fetching a page because a user asked a question: ChatGPT-User, Claude-User, Perplexity-User. Usually no JavaScript. |
crawler_ai | Crawlers collecting content for model training or AI search: GPTBot, ClaudeBot, OAI-SearchBot, Claude-SearchBot, PerplexityBot, CCBot, Bytespider, Meta-ExternalAgent… | |
crawler_search | Search engine crawlers: Googlebot, Bingbot, Applebot, YandexBot, Baiduspider, DuckDuckBot, Qwantbot… | |
monitoring | Uptime monitors, Lighthouse/PageSpeed, SEO audit tools, link previewers (Slackbot, facebookexternalhit, Twitterbot) | |
unknown_bot | Non-human traffic without a better classification, including spoofed crawlers |
When Eureka recognizes the vendor, the actor also gets a name, for example claude-in-chrome, chatgpt-agent, googlebot or gptbot.
The two non-human families answer different questions. Action agents act on your site, so they are measured like visitors (funnels, conversions, revenue). Indexing bots read your site, so they are measured by coverage and frequency (which pages, how often, by whom).
Navigation modes
Each session gets a navigation mode, computed from the actors found in it:
| Mode | Meaning |
|---|---|
agent | Only action-agent events |
human | Only human events |
mixed | At least one human part and one agent part: for example, a customer delegating checkout to Claude in Chrome |
bot | Only indexing bots |
Actor segments
An agent like Claude in Chrome drives the user's own browser: same cookies, same session. Eureka therefore separates actors event by event, and groups consecutive events of the same actor into actor segments:
session s1 (navigation mode = mixed)
├─ segment 0 · human 10:00 → 10:00 home page, clicks "Shoes"
├─ segment 1 · ai_agent 10:01 → 10:02 product page, add to cart, shipping form, purchase €120.50
│ (claude-in-chrome, score 0.95)
└─ segment 2 · human 10:03 → … account page (the human takes back control)That is how reports can say what the human did and what the agent did within the same visit. Each switch creates an actor_switch event.
Actor score and signals
For visitors running JavaScript, the tag computes a rolling actor score: the probability (0 to 1) that the current activity is not human. It combines:
- declared identity: user agent, Web Bot Auth signature (
Signature-Agent), published IP ranges; - automation traces:
navigator.webdriver, Selenium or Playwright globals, headless browser traits, known agent overlays in the page; - behaviour: clicks without mouse movement, clicks exactly in the centre of a button, text typed without key presses, robotic typing rhythm, long pauses followed by instant actions, scrolling without wheel or touch.
The visitor switches to non-human above 0.8 and back to human below 0.35 for two actions in a row, so one odd click never flips a session. Reports show the score and the signals behind each classification rather than a plain yes/no. Full list: Detection signals.
Visitors, sessions, users
- Visitor: a browser. In full consent mode it is identified by the first-party cookie
_ah_id, which lasts at most 13 months and is never extended. In cookieless mode, the visitor ID is a hash that changes every day, so the same person is a new visitor the next day. - Session: a visit. A new session starts after 30 minutes of inactivity, at midnight (local time) or when the visitor arrives from a new campaign. A session is engaged if it lasts at least 10 seconds, has at least 2 page views, or includes a key event such as a purchase. A bounce is a session that is not engaged.
- User: a logged-in person, when your site calls
eureka('identify', id). The ID is hashed in the browser. Users let you follow one person across devices.
There is one visitor cookie, not two: the agent and the human share the browser, and they are told apart per event.
Billable and free events
Your plan's monthly quota counts agent and human events only (actor families action_agent and human). Indexing bot events are measured but never billed, so heavy crawling never inflates your bill. See Plans and billing.
Data freshness
Events reach the reports within a few seconds: the tag sends batches every second, the collector answers immediately, and the processing pipeline writes to the database in batches of about a second. Realtime shows the last 30 minutes, minute by minute. Reports on past days are cached; today's figures are always recomputed.