← back to blog

When a site detects automation but not the browser

Two different checks, one confusing result

I’ve watched this happen enough times to stop being surprised by it: a profile with a clean, internally consistent fingerprint, a residential IP that matches the timezone and language settings, a browser that looks completely ordinary to every fingerprinting test site you throw at it, still gets flagged. Not banned for “suspicious device,” but flagged specifically for automation. That distinction matters, and most people running multi-accounting setups don’t separate the two problems in their head, which means they spend hours tuning canvas noise and WebGL renderer strings when the actual signal being tripped has nothing to do with any of that.

Fingerprinting and automation detection are two separate layers built to answer two separate questions. Fingerprinting asks “is this a real, unique device with a plausible hardware and software profile.” Automation detection asks “is a human operating this browser, or is something else driving it.” An anti-detect browser like Multilogin, GoLogin, Kameleo, AdsPower, or Dolphin Anty is built almost entirely to answer the first question well. It does very little, by design, to answer the second one, because the second question isn’t about the browser at all. It’s about how the browser is being controlled.

What “the browser” means to a fingerprint check

A fingerprinting script collects a pile of attributes: canvas rendering output, WebGL vendor and renderer strings, installed fonts, screen resolution, hardware concurrency, audio context output, timezone, language headers, plugin list, and dozens of smaller values. It builds a hash or a similarity score from all of that and compares it against what it’s seen before, or against known patterns of spoofed or automated environments.

Anti-detect browsers exist to make this profile look coherent and stable. Instead of running a stock Chromium binary with default values, they patch the browser at a lower level so canvas output, WebGL strings, fonts, and the rest all line up the way they would on a real device, and stay consistent across sessions for that specific profile. That’s the entire value proposition. It’s a real, useful piece of engineering, and it’s why these tools are worth using instead of just spinning up plain Chrome with a different proxy. But it only addresses the “is this a plausible device” question. It does nothing to address whether the actions happening inside that browser look human.

What “automation” means to a detection system

Automation detection looks at a completely different set of signals, most of which live in how the page is being interacted with, not in what the browser reports about itself.

The most direct one is navigator.webdriver. When a browser is launched under Selenium, Puppeteer, or Playwright, this property gets set to true by default, and it’s one of the oldest, most trivial checks a site can run. Anti-detect browsers and most modern automation frameworks patch this away now, so on its own it’s not the whole story anymore, but it’s still checked because plenty of scraping and account-creation setups still leak it.

Beyond that flag, sites look at how the browser is being remote-controlled. Tools driven through the Chrome DevTools Protocol (CDP) leave traces that don’t exist in normal human browsing: specific timing patterns in how commands arrive, the absence of certain runtime objects that only get created through normal user interaction, and inconsistencies between how permissions, notifications, or the chrome runtime object behave compared to a real user-launched session. None of these require reading a fingerprint at all. They’re behavioral or protocol-level signals sitting on top of the browser, not inside it.

Then there’s genuinely behavioral detection: mouse movement (or the total absence of it), scroll events, the timing between keystrokes when filling in a form, whether a click lands on a plausible pixel inside a button versus dead center every single time, and how long a page stays open before an action fires. A script that fills a form and submits it in 40 milliseconds is not something a fingerprint-spoofing browser fixes, because the fingerprint was never the problem. The behavior was.

Why a clean fingerprint doesn’t fix this

This is the part that trips people up. You can run an anti-detect browser with a perfectly matched proxy, a fingerprint profile that’s internally consistent and looks exactly like a real device in that geography, and still get flagged, because the automation layer sitting on top of that browser (whatever framework or script is driving clicks and form fills) is leaving its own separate trail. The site’s detection system doesn’t care that the canvas hash looks legitimate if the mouse never moved and every action fired at machine-precision intervals.

I’ve seen this described as the anti-detect browser “not working,” but that’s the wrong framing. The browser did its job. It presented a plausible device fingerprint. What got caught was the layer above it, the automation driving the session, which is a separate problem that a fingerprint tool was never built to solve. Some vendors have started adding features aimed at this gap, humanized mouse movement helpers or built-in delays for instance, but the honest answer is that automation behavior detection and fingerprint spoofing are solving different problems, and no tool that primarily does one automatically does the other well.

What this looks like when you’re actually testing

If you’re running profiles across Multilogin, GoLogin, Kameleo, AdsPower, or Dolphin Anty and something gets flagged, the first useful diagnostic question isn’t “is my fingerprint good enough.” It’s “was this session driven by a script, or was a person actually clicking through it.” If the flag happens on manually operated profiles too, that points back to the fingerprint or the proxy quality. If it only happens on scripted or bulk-automated sessions, the fingerprint almost certainly wasn’t the issue.

It’s also worth remembering that these two detection layers often feed the same risk score on the platform’s side. A site doesn’t necessarily show you which check failed. It might just show “account restricted” or “unusual activity,” and it’s up to you to reason backward about which layer actually tripped it. Consistency across sessions, IP-to-timezone-to-language alignment, and account age and history all factor into that score too, on top of both the fingerprint and behavior checks. There’s no single knob that fixes a flagged account, and no anti-detect browser makes an account unbannable or a session undetectable. What these tools genuinely do is remove one variable, an inconsistent or obviously spoofed device fingerprint, from a risk calculation that has several other variables in it, including some that live entirely outside the browser itself.

The honest takeaway

If you’re evaluating anti-detect browsers for multi-accounting, judge them on what they actually control: fingerprint consistency, proxy handling, profile isolation, and how well they hold a device identity stable across sessions. Don’t judge them on whether a flag showed up that had nothing to do with any of that. Automation detection and fingerprint detection are different systems built by different teams, often on the same platform, and conflating them is how people end up chasing the wrong fix.

We test these tools the way an operator running real proxy and device farms actually uses them, against real multi-accounting workflows, not marketing claims. If you want the breakdowns on how each of these browsers actually holds up, check out the rest of the site.

Get new guides and videos first — join the Telegram channel.

need infra for this today?