Why GAIO looks human
This chapter explains what the software does to look like a real person, and more importantly where you can accidentally break it. Every number below is a measurement — taken by recording real human behaviour and comparing it with the tool's, not a guess.
1. Consistency matters more than randomness
People assume "randomise everything and you are safe". The opposite is true: on a real machine all the signals agree — operating system, fonts, timezone, resolution, the way the mouse moves. Randomising each signal independently produces a combination that exists on no real machine, which is a stronger signal than simple repetition.
That is why every trait is seeded from one fixed seed per account: the same account keeps the same mouse style, the same scroll rhythm and the same window size across runs, while a different account is genuinely different. This is also why you should not "refresh" or delete the antidetect profile of an account that is running well.
2. The mouse — the easiest thing to give away, and to measure
| Signal | Real humans (measured) | What automation usually does |
|---|---|---|
| Button hold time on a click | Fastest around 70 ms; typically 100–115 ms | 0 ms — press and release in the same instant. That is not "rare for a human", it is impossible, and a few lines of page script can see it. |
| Velocity profile of a move | Accelerates hard at the start then decays, with a long tail near the target | A straight constant line, or a symmetric bell — nobody moves a mouse that way. |
| Overshoot then correct | More than half of all moves (around 53%) | Always lands exactly on target first try — unnaturally precise. |
Coordinates must also be whole numbers: a real mouse at 100% display scaling never reports fractional coordinates. One mistake there leaves two separate traces at once.
The pointer must also travel continuously: each move starts exactly where the previous one ended. If every action first "teleports" to the middle of the screen before drawing its curve, that jump is itself the trace.
3. Scrolling — one step size, not a new one each time
Measured on a real person: across 49 consecutive scroll notches only one step value appears — their mouse wheel has a fixed step. A naive simulation used 45 different values across 78 notches: it looks "more natural" at a glance, but it is something a real wheel cannot produce.
What actually varies in a human is not the step but the rhythm: an interesting page gets few notches and long reading pauses; a dull one gets fast, frequent notches. The software interpolates on how engaging the current page is, and jitters the pointer while scrolling only some of the time — and in the direction of travel. Scrolling with a frozen cursor is one of the crudest behaviours there is.
4. Typing and pasting — why it does not "type" like a machine
There are two ways to get text into a field: simulate the keyboard at the browser layer, or place the text in as a paste. The first one is detected by Google in the sign-in flow, so the software uses the second for every input field. A few special fields (naming an app password, entering a 2FA code) require genuine keystroke signals and use a separate path.
5. Browser window size
Previously every account opened a window at exactly the same size — one shared trait across the whole fleet. Each account now gets its own (see Run configuration). Three things worth knowing:
- A window keeps its size for 5–25 days before changing. Not every run, because real Chrome remembers window bounds and reopens at the same size — constant change is the odd thing.
- Width shrinks more than height. Real users protect vertical space for reading, and drag the right edge more often than the bottom one.
- A small share of accounts still run full-size — because real people do. If no account were full-size, that itself would be a new anomaly.
6. Navigation — step by step, never straight to a deep URL
To reach a security setting, the software does not paste a deep address into the URL bar. It opens the account home page, scrolls to find the entry it needs, and clicks it — exactly as a user would. Pasting deep links is something ordinary people almost never do, and the chain of pages visited is itself readable.
A direct address is only used as a fallback when the click path has already failed — better to arrive by a less natural route than to abandon the step.
7. Timing — skewed distributions, not flat ranges
Every pause (thinking before typing, reading, resting between actions) uses a skewed distribution: mostly short, with a few genuinely long ones. A flat "random 2–5 seconds" produces a rectangular histogram with hard walls at both ends — a shape humans never generate.
For the same reason, watch duration should be configured as a percentage of video length rather than in seconds: "watch 120 seconds" means a 60-second video is watched 100% while a 10-minute one gets 20% — turning the fleet's retention curve into an unnaturally square shape.
8. Seven things you decide, not the software
| Setting | Recommended | Why |
|---|---|---|
| Display scale | Leave at 100% | Below 100% turns the device pixel ratio into an unusual value — few real machines look like that. |
| Threads | Fewer than the number of screen grid slots | More threads than slots means overlapping windows; and the more threads at once, the more accounts active in the same slice of time. |
| Proxy | Residential/ISP, one IP per account | This is the most common failure point — see the Proxy chapter. |
| Window shrink cap | Keep the defaults (20% / 10%) | Enough to stop windows being identical, not enough to make pages reflow. |
| The five publicly-visible actions | Leave OFF | See Using it properly. |
| Seeding duration | Configure as a percentage | See point 7 above. |
| Fresh accounts | Go slowly, split sensitive actions | See Using it properly. |