Default proxy is now RESIDENTIAL (was datacenter). This was the cause of a ~95% failure rate (58 FAILED / 61 runs over the preceding 30 days). useApifyProxy: true with no explicit group resolves to Apify's shared datacenter pool, which Meta blocks on the Ad Library: every bootstrap attempt came back "Meta rate-limit", the run burned all 6 IP rotations and then died on ERR_TUNNEL_CONNECTION_FAILED.
Verified head-to-head on 2026-08-21 with an identical query, changing only the proxy:
| Proxy | Result |
|---|
RESIDENTIAL (explicit) | SUCCEEDED — 5/5 ads in 104 s |
| default (datacenter) | FAILED — 0 ads after 375 s |
When the user picks no proxy group we now select RESIDENTIAL (and US, as before). Explicit apifyProxyGroups / apifyProxyCountry are always respected.
Graceful fallback when residential is unavailable. Residential access is plan-gated; if we injected RESIDENTIAL ourselves and the account can't use it, the run falls back to the user's original proxy config with an explanatory warning instead of hard-failing at startup.
Input schema default and README updated so the Console pre-selects residential US, and the no-proxy warning now states plainly that datacenter runs will likely return no ads.
Proxy defaulting extracted into src/proxy.ts as a pure function with 7 unit tests (70 tests total).