Referral Program
HomeUse CasesAd Verification
Ad Verification

See your ads exactly as your audience sees them.

Ad networks serve different creatives by location, device, and time of day. Check from any market without flying there.

Why proxies solve this

Ad verification requires viewing content from specific geographic locations. Residential proxies with city-level targeting route your traffic through real ISP IPs in that location, so ad networks serve the exact creative your target audience sees.

The problems you hit without proxies

Ads not showing in target markets

Geo-targeted ads only appear to IPs in the target region. Use local residential proxies to confirm delivery and creative accuracy.

Ad fraud and brand safety

Monitor where your ads actually appear and what appears alongside them. Catch unauthorized placements before they damage brand reputation.

Competitor ad monitoring

Track what competitors advertise in specific markets and at what frequency. Residential IPs avoid detection as monitoring tools.

Landing page consistency

Verify the full funnel: ad click → landing page → checkout works correctly in each target market, including local currency and language.

How SotaProxy handles it

Residential proxies in 220+ countries with city-level targeting. View ads from any market without travel. Mobile proxies available for verifying mobile-specific ad placements on carrier networks.

Setup in 4 steps

1

Choose target locations

List all markets where you run ads. Map each market to a proxy location (country or city).

2

Configure browser proxy

Set the proxy in Chrome or Firefox. Use sticky sessions to maintain location consistency across page loads.

3

Verify ad delivery

Visit the pages where your ads should appear. Check creative, copy, and landing page destination.

4

Document findings

Screenshot ads with timestamp and location metadata for compliance records.

What geo coverage costs per month

Ad verification is a small-traffic, wide-geography job, which flips the usual arithmetic. Blocking heavy assets keeps a checked page near 500 KB:

30 countries, 20 checks a day, 30 days
18,000 page loads
At 500 KB per check with assets blocked
9 GB
Residential at $1.00 per GB
$9 per month
The same coverage on static addresses, one per country
30 ISP addresses from $57 per month

Residential wins here and it is not close. You need a real provider address inside each market, you need it only for seconds at a time, and 220+ countries come from one login instead of thirty separate purchases.

One session per market, held long enough to load the page

Give every country its own session id so a check runs start to finish through a single address. Fifteen minutes covers a page load plus screenshots:

Python: one session per market

COUNTRIES = ["US", "GB", "DE", "FR", "BR"]

def proxy_for(country, session_id):
    login = f"login_c_{country}_s_{session_id}_ttl_15m"
    return f"http://{login}:password@proxy.sotaproxy.com:10000"

for i, country in enumerate(COUNTRIES, start=1):
    proxy = proxy_for(country, i)
    r = requests.get("https://publisher.example/article",
                     proxies={"http": proxy, "https": proxy},
                     headers={"Accept-Language": LOCALES[country]},
                     timeout=30)
  • Match Accept-Language to the country. A US address asking for pages in Russian tells the ad server you are not who you claim to be, and you will see the wrong creative.
  • City targeting matters for local campaigns. Add _city_New-York when the buy is city-scoped, and drop back to country level if the pool returns a 400.
  • Screenshot through the same session that loaded the page. A rotation between load and capture gives you a screenshot from another city.
  • Run checks at the hours the campaign runs. Dayparting means the creative at 03:00 is not the creative at 19:00.

What quietly invalidates the whole report

Checking from datacenter addresses

Ad servers segment on IP reputation. A hosting range often gets house ads or nothing, so you end up auditing a campaign that was never served to real users.

One session id for every country

Sessions collide and you get the previous country address on the next check. Number them per market.

Ignoring the language header

Geo alone does not decide the creative. Locale headers do half the work.

Treating a 400 as an outage

It means that city has no addresses online at that moment. Fall back to country level and note it in the report instead of retrying in a loop.

Frequently asked questions

Can I verify mobile ads from desktop?

Use mobile proxies (4G/LTE) combined with a mobile user agent. Ad networks target by carrier network, not just IP, so mobile proxies give more accurate results for mobile-specific campaigns.

Do proxies work with Google Ads and Meta Ads?

Yes. Residential proxies with local IPs show you the same ads the local audience sees, including personalized and retargeting campaigns.

Can I automate ad verification?

Yes. Use Playwright or Puppeteer with proxy configuration, screenshot the viewport, and log the page URL and timestamp. Run on a schedule.

Ready to start?

Create an account, top up, and get proxy credentials in minutes. No sales call. No monthly minimum.

Create account