AdsPower Proxy Setup
Give every AdsPower profile its own address, by hand or from a script.
AdsPower runs isolated browser profiles with separate fingerprints, cookies and storage, and is built for teams running many ad and marketplace accounts. The part it does not solve is the address: two profiles behind one IP are linked no matter how different their fingerprints look. Pointing each profile at its own session id fixes that.
Setup guide
Open the proxy section of the profile
Click New Profile, or edit an existing one, and scroll to the proxy section. Choose a custom proxy rather than a saved provider preset.
Fill in the fields
Type: HTTP or SOCKS5
Host: proxy.sotaproxy.com
Port: 10000
Login: YOUR_USERNAME_c_US_s_1001_ttl_1h
Password: YOUR_PASSWORDThe country, session id and lifetime are suffixes on the username. Change the number after _s_ for every profile you create. Leave Change IP URL empty: residential rotation is controlled by the login, not a link.
Check the proxy before launching
Press Check Proxy. It returns the exit address and country, which confirms the suffix parsed. A country you did not ask for means the login string is malformed.
Automate it with the SotaProxy API
Everything above works without opening the dashboard. With an API key, AdsPower can pull fresh proxy credentials, buy new proxies, and renew expiring ones - straight from code.
# Every active proxy on your account (ip, ports, login, password as JSON)
curl -H "Authorization: Bearer $KEY" https://api.sotaproxy.com/api/v1/proxies
# Buy more when you scale (price-check first with POST /quote)
curl -X POST https://api.sotaproxy.com/api/v1/orders \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-H "Idempotency-Key: my-unique-order-id" \
-d '{"product":"ipv4","countryId":565,"periodId":"1m","quantity":5}'What goes into the profile proxy form
AdsPower asks for a type, host, port, login and password. Residential targeting rides inside the login, so you never need a separate endpoint per country:
The Check Proxy button in the form returns the exit address and its country. Run it before you launch the profile for the first time: it is the only way to confirm the suffix parsed rather than silently falling back to rotation.
A fleet of profiles through the Local API
The number after _s_ ties a profile to an address, so every profile gets its own. By hand that turns into mistakes fast; the AdsPower Local API creates profiles from a script, each with its own login string:
Python: one profile per country and session id
import requests, time
API = "http://local.adspower.net:50325/api/v1/user/create"
fleet = [("US", 1), ("US", 2), ("GB", 3), ("DE", 4)]
for country, sid in fleet:
r = requests.post(API, json={
"name": f"{country.lower()}-{sid:03d}",
"group_id": "0",
"user_proxy_config": {
"proxy_soft": "other",
"proxy_type": "http",
"proxy_host": "proxy.sotaproxy.com",
"proxy_port": "10000",
"proxy_user": f"login_c_{country}_s_{sid}_ttl_1h",
"proxy_password": "password",
},
"fingerprint_config": {"automatic_timezone": "1"},
})
print(country, sid, r.json().get("data"))
time.sleep(1) # the Local API takes roughly one call per second- The Local API answers only while the AdsPower client is open on that machine. If you turned on API key verification in the settings, send the key with every call.
- One hour is the longest sticky lifetime we offer, and a residential device can drop earlier. For accounts that must never see an address change, use an ISP address: the host is the IP from your dashboard, port 50100, no suffixes.
- Keep a note of which session id belongs to which profile. The profile name in the script above already carries the country and the number.
What gets accounts linked
Timezone from IP under rotation
By default AdsPower takes the timezone and geolocation from the IP at launch. Without _s_ in the login, the check sees one address while pages load through another, and the timezone can disagree with the exit. A sticky session keeps it one address.
Two profiles on one address
Whether through a shared session id or a shared static address, this is the fastest way to lose a cluster: one flagged account takes the rest with it.
Rotation under a logged-in session
When a sticky hour expires mid-session the platform sees the session teleport. Long-lived accounts belong on ISP addresses.
Bulk import with a single string
The same proxy string on forty profiles is forty profiles on one address. Generate the strings with distinct session ids first, then import them.
Notes & tips
- •Static addresses go in the same form: the host is the IP from your dashboard, the port is 50100, and there are no suffixes.
- •Leave timezone and geolocation on "based on IP" only when the profile uses a sticky session or a static address. With plain rotation the value is read from one address and the traffic leaves through another.
FAQ
Can two AdsPower profiles share one proxy?
They can, and it is the most common way to lose a cluster of accounts. Two profiles on one address are linked regardless of their fingerprints. Give each profile its own session id.
What do I put in the Change IP URL field?
Nothing. That field is for mobile proxies that rotate through a link. With SotaProxy residential you get a new address by changing the number after _s_, or by dropping the session suffix entirely.
Why does my profile show a different country than I asked for?
The login string did not parse, so you got plain rotation instead of targeting. Check that the country code is upper case and that suffixes follow the order country, city, session, lifetime.
Should I use residential or ISP for account work?
ISP if the account must never see an address change: it is static and dedicated for the term. Residential with a one hour sticky session works for lighter work, but a home device can drop earlier than the hour.
Get your proxy credentials
Sign up, top up your balance, and copy your endpoint into AdsPower. Takes under 5 minutes.
Get started