Teams buy rotating pools and bind them to Multilogin profiles — then wonder why Business Manager logs out hourly. The rule is simple: identity profiles need sticky IPs; anonymous jobs can rotate. This guide maps proxy mode to account tier and layer (browser vs cloud phone).

Decision matrix

Use caseProxy modeTypeWhy
Meta BM / Ads logged inStickyResidential, same session IDPlatform ties cookie to IP ASN + geo
TikTok Shop seller webStickyResidential or ISPPayment + KYC history on IP
Multilogin profile warm-upStickyMatch profile geoTimezone + language alignment
Cloud phone TikTok appSticky mobile4G/mobile proxy per deviceSeparate from web profile IP
Public page scrape (no login)Rotate OKDatacenter or backconnectNo session state to break
Burn / test accountsRotate OKCheap poolDisposable identity

Account tier → proxy policy

burn     → rotate datacenter, no Multilogin cookies worth saving
warm     → sticky 24–72h, same profile until trust builds
prod     → sticky 7–30d+, unique endpoint per profile in CMDB
agency   → sticky per client_id namespace, never cross-pool

Never do this

Pre-flight check (Python)

import httpx

def check_proxy(proxy_url: str, expected_cc: str) -> dict:
    with httpx.Client(proxy=proxy_url, timeout=30) as c:
        ip = c.get("https://api.ipify.org?format=json").json()["ip"]
        geo = c.get(f"https://ipapi.co/{ip}/json/").json()
    cc = (geo.get("country_code") or "").upper()
    if cc != expected_cc.upper():
        raise ValueError(f"Geo mismatch: {cc} != {expected_cc}")
    return {"ip": ip, "cc": cc, "asn": geo.get("asn")}

Run before every profile launch in CI — see pre-launch checklist and proxy alignment.

Rotation within a pool (advanced)

Some providers offer sticky sessions on rotate pools via session ID in username (user-session-abc123). That is still sticky for one profile — the rotate gateway picks an exit IP but keeps it for the session TTL. Map session ID 1:1 to Multilogin profile UUID in CMDB.

Related

Disclosure: MLX-MMO affiliated with Multilogin.