Самый надёжный способ увидеть рекламные размещения и локальную поисковую выдачу так, как их видят домашние пользователи в другой стране, — запускать headless-браузер на сервере, исходящий IP которого является настоящим резидентным адресом, зарегистрированным на местного провайдера. Именно это даёт сервер с нативными резидентными IP от IMIDC: сервер с целым блоком /24 из 253 нативных резидентных IPv4 в Тайбэе, Куала-Лумпуре, Токио, Сеуле, Йоханнесбурге или Бангкоке, от $2,188 в месяц, причём каждая проверка может уходить с выбранного вами местного домашнего IP.
Вывод: то, что видит пользователь, сильно зависит от страны, языка и типа сети, поэтому проверять нужно с соединения того же типа.
Поисковики и рекламные платформы агрессивно локализуют выдачу. Один и тот же запрос в Google из Тайбэя, в Yahoo! JAPAN из Токио или в Naver из Сеула даёт другие органические позиции, локальные блоки, товарные объявления и рекламные места, чем из Сингапура или США. Партнёрские сети и интернет-магазины идут дальше: в зависимости от местоположения посетителя они меняют валюту, цены, акции, cookie-баннеры и даже сам показываемый оффер.
Вывод: многие рекламные сети и сайты классифицируют посетителей по типу IP, и дата-центровый адрес часто считается «хостинговым», не человеческим трафиком.
Базы IP-аналитики помечают диапазоны как резидентные, провайдерские/бизнес, мобильные или хостинговые. Рекламные платформы используют эти метки для антифрода, некоторые сайты — для защиты от ботов и выбора контента. При проверках с дата-центровых диапазонов команды обычно сталкиваются с дополнительными CAPTCHA, меньшим числом объявлений или их отсутствием, общим, а не локализованным контентом, скрытыми или перенаправленными партнёрскими офферами. Всё это не универсально и не документировано — именно поэтому точка обзора должна совпадать с реальной аудиторией: местная, домашний ШПД, зарегистрирована на национального провайдера.
Это не означает «невидимость» или «идеальную чистоту»: резидентный IP от IMIDC — реальный адрес с реальной историей, и нет гарантии, что у него нет прошлой репутации или что он никогда не получит проверку. Он лишь даёт вам соединение того же класса, что и у ваших клиентов.
Вывод: VPN подходит для редкой ручной проверки, дата-центровый VPS — для замеров задержки и доступности, а воспроизводимые доказательства «глазами» домашнего пользователя требуют сервера с резидентными IP.
| Способ | Тип IP, который обычно видит сайт | Фиксированный известный исходящий IP | Автоматизация на том же сервере | Точек обзора | Лучше всего для |
|---|---|---|---|---|---|
| Потребительский VPN | В основном дата-центр, общий для многих пользователей | Нет, меняется от сессии к сессии | Ограниченно, обычно на ноутбуке | Зависит от провайдера | Быстрые ручные проверки |
| Дата-центровый VPS (например, IMIDC Japan VPS от $28/мес) | Хостинг / дата-центр | Да | Да | Один или несколько IP | Мониторинг доступности, задержки, CDN и DNS |
| IMIDC Native Residential IP Server | Резидентный, местный провайдер | Да, выбирается для каждой сессии | Да, headless-браузеры работают на сервере | До 253 IP на страну | Воспроизводимая проверка рекламы, SEO и цен с доказательствами |
Вывод: выделите каждой проверке свой исходящий IP, запускайте Playwright на сервере и сохраняйте скриншот и HTML при каждом прогоне.
Chromium сам по себе не умеет привязываться к исходному адресу, поэтому проще всего поднять по одному маленькому локальному SOCKS5-слушателю на каждый IP, с исходящим адресом, привязанным к одному из ваших 253 адресов. В примерах вместо вашего реального блока используется документационный диапазон 203.0.113.0/24.
# 1) Confirm the server holds the /24 and test one source IP
ip -4 addr show dev eth0 | grep 203.0.113.
curl -s --interface 203.0.113.21 https://example.com/ip
# 2) One tiny SOCKS5 listener per vantage IP (microsocks, -b = bind/egress address)
microsocks -i 127.0.0.1 -p 1081 -b 203.0.113.21 & # check A
microsocks -i 127.0.0.1 -p 1082 -b 203.0.113.22 & # check B
Затем направьте каждый контекст браузера Playwright на слушатель нужного IP и задайте локаль и часовой пояс целевого рынка, чтобы страница отрисовывалась так, как её запросил бы местный браузер:
# adcheck.py - Playwright, one browser context per source IP
import asyncio, datetime, pathlib
from playwright.async_api import async_playwright
CHECKS = [
{"name": "tw-google", "port": 1081, "locale": "zh-TW", "tz": "Asia/Taipei",
"url": "https://www.google.com.tw/search?q=example+keyword&hl=zh-TW&gl=tw"},
{"name": "tw-landing", "port": 1082, "locale": "zh-TW", "tz": "Asia/Taipei",
"url": "https://example.com/offer?utm_source=affiliate"},
]
async def run(check, browser):
ctx = await browser.new_context(
proxy={"server": f"socks5://127.0.0.1:{check['port']}"},
locale=check["locale"], timezone_id=check["tz"],
viewport={"width": 1366, "height": 900})
page = await ctx.new_page()
await page.goto(check["url"], wait_until="networkidle", timeout=60000)
ts = datetime.datetime.utcnow().strftime("%Y%m%dT%H%M%SZ")
out = pathlib.Path("/srv/evidence") / check["name"]
out.mkdir(parents=True, exist_ok=True)
await page.screenshot(path=str(out / f"{ts}.png"), full_page=True)
(out / f"{ts}.html").write_text(await page.content(), encoding="utf-8")
await ctx.close()
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
for c in CHECKS: # sequential on purpose: low, polite volume
await run(c, browser)
await browser.close()
asyncio.run(main())
Если нужна более строгая изоляция, поместите каждый IP в отдельное сетевое пространство имён Linux (ip netns add tw01, перенесите туда macvlan-интерфейс с этим адресом и запускайте браузер через ip netns exec tw01). Тогда ни один пакет сессии не уйдёт с другого адреса, а cookies и кеш будут разделены по проверкам.
Вывод: умеренный регулярный график даёт динамику и доказательства для споров, не создавая большого автоматического трафика.
# crontab -e : run every 6 hours, keep a log, prune evidence after 90 days
0 */6 * * * /usr/bin/python3 /opt/adcheck/adcheck.py >> /var/log/adcheck.log 2>&1
30 3 * * * find /srv/evidence -type f -mtime +90 -delete
Объявления ротируются, позиции колеблются, поэтому один скриншот мало что доказывает, а серия снимков с одного местного IP показывает закономерности. Синхронизируйте папку с доказательствами в своё хранилище и, поднимая вопрос с рекламной сетью или партнёром, прикладывайте скриншот, HTML-снимок, а также IP и время съёмки. Порта 100 Мбит/с с запасом хватает для таких загрузок.
Вывод: проверяйте, а не манипулируйте; держите объём низким и соблюдайте условия каждой платформы.
Вывод: покупайте резидентные точки обзора только на тех рынках, которые действительно нужно проверять.
IMIDC предлагает Native Residential IP Server с 253 нативными резидентными IPv4, зарегистрированными на местного провайдера, в Тайбэе, Токио и Сеуле, а также в Куала-Лумпуре, Бангкоке и Йоханнесбурге. Цены начинаются от $2,188/мес в Тайбэе, все тарифы можно заказать онлайн.
Рекламные платформы и сайты часто делят IP-диапазоны на хостинговые и резидентные и могут фильтровать, «делокализовать» или проверять хостинговый трафик. Проверка с резидентного IP в целевой стране ближе к взгляду реального местного пользователя, хотя персонализация и ротация объявлений всё равно влияют на результат.
Поисковики ограничивают автоматические запросы в своих условиях, поэтому отдавайте предпочтение официальным инструментам и API, а браузерные проверки делайте редко и только по своим ключевым словам и страницам. Перед автоматизацией изучите актуальные условия каждой платформы.
Большинству команд для проверок достаточно нескольких IP на рынок — по одному на сценарий или группу кампаний. Остальные адреса блока /24 на том же сервере можно использовать для QA, локализованных сервисов или работы собственных магазинов.
Хотите видеть свои кампании так, как их видят местные пользователи? Закажите сервер с нативными резидентными IP на нужном рынке или свяжитесь с отделом продаж IMIDC для индивидуального числа IP и стран. Действующие клиенты могут открыть тикет для помощи с настройкой проверок по IP.