Приведи друга: тебе 15% с каждого заказа, ему скидка 10%
ГлавнаяДокументацияТаргетинг по стране и городу

Таргетинг по стране и городу

Таргетинг это суффикс логина. Страна работает надёжно, город зависит от того, какие устройства онлайн в эту минуту.

Синтаксис

Коды стран это ISO 3166-1 alpha-2 заглавными буквами. В названиях городов вместо пробелов дефисы, регистр обычный.

Суффиксы складываются в фиксированном порядке: страна, потом город, потом сессия, потом время жизни. Город без страны недопустим.

Страна и город

login_c_DE                       Germany
login_c_DE_city_Berlin           Berlin
login_c_US_city_New-York         New York
login_c_ES_city_Madrid_s_4_ttl_15m

Покрытие

Резидентка покрывает 220+ стран. Таргетинг по городу работает в крупных рынках, и среди городов, через которые клиенты работают сегодня, есть Нью-Йорк, Бруклин, Лос-Анджелес, Сан-Франциско, Майами, Сиэтл, Филадельфия, Шарлотт, Лондон, Париж, Мадрид, Берлин, Дортмунд, Цюрих, Дубай и Сингапур.

Статические продукты уже, потому что запас физический: 41 страна у датацентрового IPv4, 24 у ISP, 17 у IPv6 и 26 у мобильных с выбором оператора внутри каждой.

Когда локация ничего не возвращает

Ответ 400 с сообщением о неизвестной стране или городе означает, что пул по этой локации сейчас пуст, а не что локация не поддерживается. Наличие ходит вместе с устройствами онлайн.

Правильная реакция это спуститься до уровня страны, отметить, что вы так сделали, и повторить город позже. Крутить один и тот же запрос в цикле значит тратить трафик и ничего не менять.

Откат на практике

try:
    r = fetch(url, proxy=proxy(country="US", city="New-York"))
except GeoUnavailable:
    r = fetch(url, proxy=proxy(country="US"))
    mark_sample_as_country_level()

Как сделать географию правдоподобной

Адрес это один сигнал локации и редко единственный, который читает сайт. Языковые заголовки, часовой пояс и история аккаунта тоже участвуют, а противоречие между ними заметнее, чем любое отдельно неверное значение.

Для скрапинга обычно достаточно совпадающего Accept-Language. Для всего, что работает в профиле браузера, часовой пояс и локаль профиля тоже должны сходиться со страной прокси.

Сигналы, которые должны совпадать

Proxy      login_c_ES
Header     Accept-Language: es-ES,es;q=0.9
Locale     es-ES
Timezone   Europe/Madrid

# A Spanish address asking for pages in English returns a blend
# that represents neither market.