To get a residential proxy in the same country every session, put the seller's country token (country-us, say) in the username of every session you mint, and put it back on the replacement when one dies. Don't fight to keep one address. A residential pool moves you regardless, and Whoer's DNS row and the timezone, language and geolocation checks we ran all compare your exit by country.
We came to this while measuring detectors, not browsers. Our scores kept moving between loads of one unchanged profile, and the cause turned out to be the exit underneath it.
The address moves whatever you do
A residential exit is a home connection: somebody's router or phone, rented through an app or SDK they installed. The gateway maps your session id to one of those devices and keeps you there until the session's lifetime runs out, the owner shuts the laptop, or the device stops answering.
Three launches of one profile, each on a fresh session, gave us three different addresses. Three more on a session we held gave 69.245.49.160, 69.245.49.160 and 69.245.49.160. The hold works, for a while. A session written with -lifetime-60 kept its exit for sixty minutes, then broke without saying "expired": the browser showed ERR_TUNNEL_CONNECTION_FAILED, while our checker reported a healthy proxy in another city. The symptoms are listed in what an expiring sticky session looks like.
Sessions also die before their time. We went looking for a bad exit on purpose, minted forty fresh sessions on one gateway, and found it at number twenty-nine. Session 889053 answered 504 four times in a row. Two of the next three fresh sessions answered 200. Retrying a dead token gets you the same dead device.
Paste one gateway line. Every profile mints its own exitIn Mosaic: Provider minting. One gateway line, a separate exit for every profile. Free holds 3 profiles. Pro is $49 a month for any number.
Mosaic is a desktop app
Email yourself the link and open it on your computer.
How it works: Provider minting
What sites actually compare
Line up what a consistency scanner reads and nearly every row is a country:
- the exit's country against the browser's timezone
- the exit's country against
navigator.language - the exit's country against the coordinates geolocation returns
- the country of the DNS resolver that looked up the site, against the exit's country
The fourth one cost us a measurement run. Whoer graded a single profile, in a single launch, at 100, 100, 100, 100, 35 and 30 over six page loads, and the two drops landed when the residential session rotated. Its biggest single deduction reads "Your DNS server country differs from the IP country". We ran plain curl through the same proxy, no browser at all: the resolver was Google's, first in Germany and then in the Netherlands, and the exit was a Verizon line in the United States. The exit node resolves whatever names the gateway hands it, so the resolver arrives with the session and no browser setting touches it. IPHey's score moved with the address the same way, on an untouched Chrome.
None of those rows reads the last octet. A new address in the same country, on the same kind of network, passes all four. An address in another country can fail every one of them at once.
A random country is a profile drawn for nowhere
For a while one of our profiles ran on a region-random session, and the exit it drew was in Yoshkar-Ola, Russia, for a profile drawn as Mexican. Timezone and geolocation followed the exit, which is what Mosaic does. Language did not: our locale table had no row for Russia, and the matcher would sooner leave es-MX in place than guess. Every request went out in Mexican Spanish from a Russian home connection.
That is the cost of leaving the country open. A profile's language, timezone and working hours were all picked for one place, and an exit that can land anywhere hands each launch a new mismatch to patch up, some of which, like the Spanish in Russia, cannot be patched at launch at all.
How to keep a residential proxy in the same country
Sellers that support targeting take the country in the username, next to the session id: country-de at one, region-de at another, something else again at a third. Use the seller's own spelling. Get it wrong and many gateways will still let you in, quietly ignore the token, and put you wherever they like.
- Put the country token on every session, including the one you mint after a failure. A session minted without it draws from the whole pool, which is how the
region-randomprofile ended up in Russia. - Pick a session lifetime that covers one sitting of work, and expect it to end early now and then, as session 889053 did.
- When a session dies, mint a new one with the same country token instead of retrying the old id.
- Add a state or city only when the profile was drawn for one. A single city has far fewer homes to draw from than a whole country.
- Once the session is up, read the exit's country and the resolver's country. Whoer's drops to 35 and 30 came from the second.
Holding one exact address for months takes a static ISP proxy, which you buy outright. A residential pool does not sell that.
How Mosaic does it
In Mosaic a provider is the seller's gateway line, pasted once. Each profile mints its own session from it, with its own country, state, city and session minutes, offered only where the seller's line format has a word for them. A pick the seller cannot spell is refused by name. Every profile holds its own session, so forty profiles get forty exits, not one.
A session that reaches nothing gets replaced with a fresh one minted from the same pick, which keeps the country. Mosaic does that in three places: launching, checking a provider, and creating profiles from one. It never moves a session you pinned yourself; that launch stops instead, naming the session. Timezone, language and geolocation then follow the exit Mosaic measured, and the proxy check turns amber when the exit's DNS resolver sits in a different country from the exit. Setup is on proxy providers.






