Ad Verification with a Multi-Account Browser: 2026 Workflow Guide
Picture a CPG brand whose "family-friendly" cereal ads run next to gambling content on a German publisher for eleven weeks. This is exactly why ad verification matters more than ever. The DSP's brand safety reports show zero violations. The publisher's ad server logs show zero violations. But load the actual page from a German residential IP with a German-configured browser profile, and there it is. Cartoon mascot. Slot machine banner. Same viewport.
That's what ad verification actually looks like in 2026. Not dashboards. Not reports. Actually loading pages the way real users load them, from real locations, with locale-appropriate browser configurations.
And if you check from your own office browser, you are probably not seeing what your customers see.
What We're Building
By the end of this tutorial, you'll have a repeatable workflow for verifying ad placements across 20+ geographic markets in a single day. You'll be able to catch placement violations, creative mismatches, competitor conquesting, and compliance issues that automated tools miss.
The setup uses JustBrowser profiles paired with geo-targeted residential proxies. Each profile has its own language, timezone, proxy and identity parameters set consistently for the target market, so a page loaded "from Brazil" is served what a Brazilian visitor would be served. See what each profile includes.
Prerequisites
Before we start, you'll need:
- JustBrowser ($9.99/month for unlimited profiles — the 7-day trial, card required, includes everything, so you can run a complete 20-GEO sweep before the first charge)
- Residential proxy access with geo-targeting. Check your provider's published pricing
- A spreadsheet or Notion doc for tracking verification results
- 30-60 minutes to set up profiles the first time, then most of a working day for a full 20-GEO sweep
No coding required. If you want to automate this later, JustBrowser has a local REST API that plays nice with Playwright — but manual verification catches things automation misses because you're actually looking at the page.
Step 1: Create Your GEO Profile Template
Open JustBrowser and create your first verification profile. This will be your template.
Profile settings:
- Name:
AD-VERIFY-[COUNTRY-CODE](e.g.,AD-VERIFY-DEfor Germany) - Browser: leave the default — JustBrowser's engine is patched on every upstream Chromium release, so pages render as they would in your visitors' current Chrome
- OS: Windows 11 for most markets, macOS for US/UK/AU premium audiences
- Language: Match the target country (de-DE, pt-BR, ja-JP, etc.)
- Timezone: Match the target country capital
Identity settings:
- Screen resolution: Common for that market (1920x1080 is a common choice almost everywhere)
- WebGL: Let JustBrowser auto-generate — it picks an OS/GPU combination that agrees
- Canvas: Auto-generate
- Audio: Auto-generate
- Fonts: Auto-generate — the font list follows the platform identity you picked (a Windows set or a macOS set), not the locale
Consistency matters more than you'd think. Verification teams sometimes use VPNs with their regular Chrome install and wonder why German publishers served them English ads. The publisher's ad server saw a US-configured browser on a German IP and reasonably inferred a visitor from abroad, not the local audience the local ads are meant for.
Step 2: Assign Geo-Targeted Residential Proxies for Ad Verification
For each profile, assign a residential proxy from the matching country.
In JustBrowser's proxy settings:
-
Select proxy type: HTTP, HTTPS or SOCKS5 (whatever your provider supports)
-
Enter the proxy address with geo-targeting parameters. Most providers put the country in the username or password, in a shape like
http://USER-country-de:[email protected]:PORT. Check your provider's documentation for its exact format. -
Enable sticky sessions if available — you want the same IP for the duration of your verification session, not a rotating one
Test the proxy before moving on. JustBrowser has a built-in proxy checker. You should see the correct country and a consumer ISP's name (Deutsche Telekom, Vodafone, etc.), not a hosting provider; the checker also flags addresses that belong to hosting ranges.
One thing to know: some publishers geo-target by city, not just country. If you're verifying Berlin-specific placements, make sure your proxy provider supports city-level targeting. It usually costs more, so check your provider's pricing. Worth it for local campaigns.
Step 3: Build Your 20-GEO Profile Set
Now duplicate your template for each target market. For a typical multinational brand, that's usually:
Tier 1 (always verify): US, UK, DE, FR, JP, AU, CA Tier 2 (verify monthly): BR, MX, IT, ES, NL, SE, PL Tier 3 (verify quarterly): IN, ID, TH, PH, ZA, AE
Create a profile for each. Yes, this takes 30-45 minutes the first time. No, there's no shortcut. But you only do it once — the profiles persist.
This step is tedious. But the alternative — rebuilding profiles on the fly during verification sprints — is worse. Much worse.
Pro tip: Name your profiles with a consistent schema. A good schema is AD-VERIFY-[ISO-CODE]-[OS], like AD-VERIFY-DE-WIN. When you have 30 profiles, searchability matters.
Step 4: The Verification Workflow (Per GEO)
Here's a workable workflow. Takes about 15-20 minutes per GEO once you're practiced.
4.1: Launch and Confirm the Locale
Launch the profile for your target GEO. Before hitting any verification targets, confirm it is set up for the market:
- Visit a local news site (bild.de for Germany, globo.com for Brazil, etc.)
- Check that the page language, currency and regional ads match the market
- Confirm the proxy location and timezone are what you configured
This matters because ad servers pick what to show from the visitor's location and locale. If the locale looks wrong, the sweep is checking the wrong thing.
4.2: Check Owned Properties
Load your brand's site from that GEO. Verify:
- Correct language/locale served
- Correct pricing currency
- First-party ads (if any) showing the right regional creative
- No broken elements or CDN failures
Screenshot everything. A Notion database with GEO tags works, and so does a Google Drive folder.
4.3: Check Programmatic Placements
This is where it gets interesting. Navigate to the publisher sites where your programmatic ads are supposed to run. Load the pages, wait for ads, and verify:
- Placement accuracy: Is your ad appearing where the IO says it should?
- Creative accuracy: Is the right creative variant serving? (Regional pricing, local language, correct product?)
- Brand safety: What content surrounds your ad? Any policy violations?
- Competitor presence: Are competitors conquesting the same page/placement?
Take screenshots of everything. The screenshot is your evidence when you need to file a make-good claim.
4.4: Check Competitor Ads
While you're there, check what competitors are running in that market. This isn't strictly "verification" but it's valuable intel and you're already in the GEO.
4.5: Document and Move On
Log your findings in your tracking doc:
- GEO, date, time
- Properties checked
- Placements verified (pass/fail)
- Screenshots captured
- Issues found
Then close the profile (important — don't leave it running and switch GEOs, or you'll cross-contaminate session data) and move to the next market.
Step 5: Handling What You Find
Most sweeps come back clean. But when they don't, here's what to do.
Placement violations (wrong placement, wrong page): Document with screenshots. Send to your DSP or ad network with the exact URL, timestamp, and creative ID. Request a make-good or credit. Dispute windows can be short, so check your network's terms and don't wait.
Creative mismatches (wrong variant serving): This is usually a targeting config issue on your end. Check your DSP's geo-targeting rules. Common causes: overlapping campaigns with different priority settings, or geo-fencing that includes nearby countries by accident.
Brand safety violations: Screenshot immediately. Escalate to your brand safety vendor if you use one. Add the offending domain to your blocklist. File for a make-good.
Competitor conquesting: Not necessarily a "violation," but worth knowing. If a competitor is consistently buying the same placements, you might want to bid more aggressively or find different inventory. It may also be worth finding inventory they haven't discovered yet, since outbidding competitors on commodity placements is a game you can lose slowly for years.
Common Errors and How to Fix Them
"Proxy connection failed" or timeout errors
Cause: The proxy IP is dead or rate-limited. Residential pools rotate IPs and some die.
Fix: Retry the connection. If it fails three times, switch to a different proxy port/session ID to get a fresh IP from the pool. If your provider's whole GEO pool seems down, that's a provider issue — contact support or switch providers.
Ads not loading at all
Cause: Usually an ad blocker extension you forgot was installed, or a locale mismatch that leaves the ad server with nothing targeted to serve.
Fix: Check that JustBrowser's profile has no extensions enabled. Check that the profile's language, timezone and proxy location agree with each other.
Wrong language/locale ads serving despite correct GEO proxy
Cause: Your browser language settings don't match the proxy GEO. The ad server is trusting your Accept-Language header over your IP.
Fix: Edit the profile's language settings to match the target country. Restart the profile after changing.
Page loads but shows CAPTCHA or block page
Cause: The publisher uses bot management that challenged your IP or session.
Fix: Don't try to work around the block. The publisher may restrict proxy ranges, and that is its call to make. Contact the publisher or your ad network for access to the page if you are verifying a campaign you are paying for.
Next Steps
Once you've got the manual workflow down, consider:
Automation: JustBrowser's local REST API lets you script profile launches and page loads with Playwright or Puppeteer. Start manual so you know what "correct" looks like before you automate.
Frequency: Weekly for Tier 1 markets, monthly for Tier 2, quarterly for Tier 3. More frequent if you're running high-spend campaigns or just caught a violation.
Pair with fraud detection: Verification tells you if ads are showing correctly. Fraud detection tells you if the clicks and impressions are real. Tools like ClickzProtect handle the fraud side with bot detection and click fraud prevention — you'll want both for a complete picture.
Track trends over time: Use something like JustAnalytics to track verification results across markets, and if those markets include the EU, read up on EU data-transfer rules for your analytics stack. Some publishers are consistently worse than others. After six months of data, you'll know where to focus.
And if you're doing this for clients as an agency, build the verification process into your reporting. "We verified your placements in 12 markets this month — here's what we found" is a retention-builder that most competitors don't offer.
The dirty secret of ad verification is that plenty of brands don't do it at all. They trust vendor reports and hope for the best.
It's unglamorous work. But actually looking at your ads from the perspective of visitors in real markets is how you catch the eleven-week violations before they become PR problems. Or before someone screenshots your cereal mascot next to online poker ads and posts it on Twitter.
More tutorials on the JustBrowser blog.
Frequently Asked Questions
Why can't I just use a VPN for ad verification?
VPNs change your IP but not your browser's language, timezone or fonts. Ad servers use those to decide what to show, so when you check the same campaign from 'Germany' and 'Brazil' with the same browser settings, the locale signals contradict the IP. A multi-account browser gives each geo its own profile with its own language, timezone and proxy, so each check reflects what a local visitor would be served.
How many GEOs can one person realistically verify in a day?
With pre-configured profiles, around 20 GEOs in a working day is realistic for one operator, at roughly 15-20 minutes per GEO including screenshots and documentation. Without pre-built profiles, setup eats into that time and you'll cover far fewer.
Do I need residential proxies or will datacenter work?
Residential for anything that involves seeing real ad placements. Publishers and ad networks treat datacenter IPs differently — you may see different (often cleaner) ads than real users see. Residential proxies from providers such as Bright Data, Smartproxy or IPRoyal give you the ground truth; check each provider's published pricing. Datacenter is fine for basic page-load checks but useless for actual ad verification.
What's the difference between ad verification and ad fraud detection?
Ad verification confirms your ads appear correctly — right placement, right creative, right geo, compliant context. Ad fraud detection catches fake clicks, bot traffic, and impression fraud draining your budget. Most brand safety teams do both. Tools like ClickzProtect handle the fraud side; a multi-account browser handles the verification side.
Try JustBrowser
A multi-account browser for teams, built on a custom Chromium engine — not extension-based. Native C++ engine patches at the canvas / WebGL / audio / font / screen layer provide 40+ identity parameters, and each profile keeps its own cookies, storage and proxy. Local REST API + CDP for Playwright, Puppeteer, Selenium. $9.99/month or $99.99/year. 7-day free trial, card required — cancel any time in the seven days and you are not charged. Unlimited profiles.
Get started → · How it differs from Multilogin / GoLogin / AdsPower
Ready to manage multiple accounts?
Seven days free, then $9.99/month — one plan, everything included.