Proxies for Ad Verification

Ad verification is usually a browser task, not just an HTTP task. You often need to see what a real user in a specific market would see, confirm the landing page path, and repeat the check without contaminating every run with the same route identity.

Guardrail: keep the proxy endpoint copied from the portal and express country targeting or session stickiness through the username. Do not guess hostnames, ports, or undocumented geo parameters.

What ad verification needs from a proxy

  • Browser-compatible proxy auth for Playwright or similar tooling.
  • Country-level route selection so campaign checks line up with the intended market.
  • Residential or mobile identity when ad platforms or publishers are sensitive to datacenter traffic.
  • Short-lived sticky sessions so one verification run can load ads, redirects, and landing pages consistently.

Which NinjaProxy product fits and why

Proxy setupBest forWhy
Rotating residential with country targetingMost ad verification and landing-page checksResidential traffic is a strong default when you need a realistic market-specific browsing path.
Sticky residential sessionSingle-run redirect chains and landing-page validationSticky routing keeps the same identity stable while the ad click path unfolds.
MobileCampaigns where mobile-network presentation materially changes the resultMobile traffic is useful when the campaign, publisher, or fraud checks behave differently on mobile networks.

Working code example

This Playwright example verifies one country-targeted run using the currently documented rotating-gateway pattern: fixed endpoint, structured username controls, and proxy auth in the browser launch config.

import { chromium } from "playwright"

const browser = await chromium.launch({
  proxy: {
    server: "http://<ROTATING_HTTP_ENDPOINT>",
    username: "<USERNAME>--session-ad-check-uk-01--duration-180--provider-res--geo-country-gb",
    password: "<API_KEY>",
  },
})

const page = await browser.newPage()
await page.goto("https://example.com/campaign-preview", { waitUntil: "networkidle" })
console.log(await page.title())
await page.screenshot({ path: "ad-verification-check.png", fullPage: true })
await browser.close()

Common failure modes

FailureLikely causeFix
Wrong market experienceThe route is not constrained to the intended country.Add the appropriate --geo-country-xx control to the username and rerun the check.
Landing page redirects break mid-runThe route changed before the full click path completed.Use a sticky session duration that covers the whole verification run.
No ad loads or instant challengesThe publisher or ad stack distrusts the current route type.Move the workflow to residential or mobile traffic instead of datacenter.
Browser proxy auth errorsThe endpoint or proxy credentials are malformed.Re-copy the portal endpoint and keep the account API key in the proxy password field.

Related docs