Страны, рынки и языки в Bing: mkt, cc и setlang
· bing · регионы
Регион выдачи Bing задаётся тремя параметрами: mkt - рынок, пара «язык-страна»,
cc - страна, setlang - язык интерфейса. Ниже - что делает каждый и полные
списки поддерживаемых значений: 71 рынков, 236 стран и
34 языков.
Рынок задаёт выдачу, страна её уточняет
Регион нужно задавать явно. Если не передать ничего, Bing определит его сам, и какой он получится -
не гарантировано: фактический рынок приходит в ответе полем mkt, и он может не совпасть
с ожидаемым. Предсказуемый результат даёт только явно указанный рынок.
Одного cc для смены страны мало - без рынка он выдачу почти не меняет.
Страна работает в паре с региональным рынком, тем, что покрывает несколько стран сразу:
mkt=ar-XA&cc=QA даёт qatar-tribune.com и
lusailnews.net, а cc=KW при том же рынке -
arabtimesonline.com и alqabas.com.
Внутри странового рынка уточнять нечего, и cc там ничего не меняет:
mkt=en-US с cc=NG и без него отдаёт одну и ту же выдачу.
Отсюда порядок: сначала рынок, затем страна - если рынок региональный. Есть рынок нужной страны -
достаточно одного mkt.
Что с чем сочетается
Когда параметры противоречат друг другу, побеждает не тот, что стоит раньше в запросе. Проверено замерами: каждому параметру давалась своя страна, и по выдаче видно, чью сторону взял Bing. Выдача от запроса к запросу слегка плавает, поэтому каждый случай прогонялся по три раза и сравнивались наборы адресов целиком - иначе шум легко принять за влияние параметра.
| Спор | Кто побеждает | Что видно в выдаче |
|---|---|---|
страновой mkt против cc |
mkt |
fr-FR с cc=DE и с cc=JP даёт одно и то же |
региональный mkt против cc |
cc |
при ar-XA страна выбирает выдачу: QA и KW дают
разные источники |
mkt против координат |
координаты | mkt=ru-RU с координатами Берлина отвечает
region=«Берлин, Берлин», и выдача меняется |
cc против координат |
координаты | то же и с cc=RU: место берётся из точки, а не из страны |
setlang против mkt |
каждый своё | mkt=ja-JP&setlang=de - выдача японская, интерфейс немецкий |
Последняя строка - важная тонкость. setlang задаёт язык интерфейса и переписывает
поле mkt в ответе: на mkt=ja-JP&setlang=de вернётся
mkt=de-DE, хотя ранжирование осталось японским. Судить о стране выдачи по этому полю,
когда передан setlang, нельзя.
Координаты
Координаты (ll) задают место точнее всего остального и перебивают по нему и рынок, и
страну. Город, который Bing из них вычислил, приходит в поле region ответа:
ll=55.7558,37.6173 - «Москва, Москва», ll=43.5855,39.7231 -
«Сочи, Краснодарский край». Проверено на шести городах - от Калининграда до
Владивостока, - и каждый определился со своей областью.
На локальных запросах это меняет и состав выдачи: по запросу «доставка пиццы» две разные точки дают
почти непересекающиеся списки (совпадение около 0.2 при 0.9 у двух запросов с одной и той же точки).
Рынок при этом никуда не девается - он продолжает отвечать за язык и за то, из какой страны Bing
предпочитает источники. Координаты отвечают на вопрос «где», mkt - на вопрос «чья
выдача».
Текстовый адрес (name, city, state) так не работает: эти поля
Bing не читает, и место остаётся тем, что он определил по адресу выхода в интернет. Единственный
рабочий способ указать точку - координаты.
Рынки: 71 пар «язык-страна»
Рынок - основной способ сказать Bing, чью выдачу вы хотите. Формат язык-СТРАНА:
ru-RU, en-US, bn-BD. Первое - язык интерфейса и приоритет для
языка документов, второе - страна ранжирования.
Список рынков у Bing свой и заметно короче списка стран: не у каждой страны он есть. Ниже полный перечень, сгруппированный по языку.
| Язык | Рынки (mkt) |
|---|---|
ar |
ar-AE - Арабский — ОАЭar-EG - Арабский — Египетar-SA - Арабский — Саудовская Аравияar-XA - Арабский — Аравия (Asia) |
be |
be-BY - Белорусский — Беларусь |
bg |
bg-BG - Болгарский — Болгария |
bn |
bn-BD - Бенгальский — Бангладеш |
cs |
cs-CZ - Чешский — Чехия |
da |
da-DK - Датский — Дания |
de |
de-AT - Немецкий — Австрияde-CH - Немецкий — Швейцарияde-DE - Немецкий — Германия |
el |
el-GR - Греческий — Греция |
en |
en-AU - Английский — Австралияen-CA - Английский — Канадаen-GB - Английский — Великобританияen-ID - Английский — Индонезияen-IE - Английский — Ирландияen-IN - Английский — Индияen-MY - Английский — Малайзияen-NZ - Английский — Новая Зеландияen-PH - Английский — Филиппиныen-SG - Английский — Сингапурen-US - Английский — СШАen-XA - Английский — Аравия (Asia)en-ZA - Английский — ЮАР |
es |
es-AR - Испанский — Аргентинаes-CL - Испанский — Чилиes-ES - Испанский — Испанияes-MX - Испанский — Мексикаes-US - Испанский — СШАes-XL - Испанский — Латинская Америка |
et |
et-EE - Эстонский — Эстония |
fa |
fa-IR - Персидский — Иран |
fi |
fi-FI - Финский — Финляндия |
fr |
fr-BE - Французский — Бельгияfr-CA - Французский — Канадаfr-CH - Французский — Швейцарияfr-FR - Французский — Франция |
he |
he-IL - Иврит — Израиль |
hr |
hr-HR - Хорватский — Хорватия |
hu |
hu-HU - Венгерский — Венгрия |
it |
it-IT - Итальянский — Италия |
ja |
ja-JP - Японский — Япония |
kk |
kk-KZ - Казахский — Казахстан |
ko |
ko-KR - Корейский — Корея |
lt |
lt-LT - Литовский — Литва |
lv |
lv-LV - Латышский — Латвия |
nb |
nb-NO - Норвежский — Норвегия |
ne |
ne-NP - Непальский — Непал |
nl |
nl-BE - Голландский — Бельгияnl-NL - Голландский — Нидерланды |
pl |
pl-PL - Польский — Польша |
pt |
pt-BR - Португальский — Бразилияpt-PT - Португальский — Португалия |
ro |
ro-RO - Румынский — Румыния |
ru |
ru-BY - Русский — Беларусьru-RU - Русский — Россия |
si |
si-LK - Сингальский — Шри-Ланка |
sk |
sk-SK - Словацкий — Словакия |
sl |
sl-SI - Словенский — Словенияsl-SL - Словенский — Словения (устаревший код, Bing правит на sl-SI) |
sv |
sv-SE - Шведский — Швеция |
th |
th-TH - Тайский — Таиланд |
tr |
tr-TR - Турецкий — Турция |
uk |
uk-UA - Украинский — Украина |
ur |
ur-PK - Урду — Пакистан |
vi |
vi-VN - Вьетнамский — Вьетнам |
zh |
zh-CN - Китайский — Китай (упрощённый)zh-HK - Китайский — Гонконгzh-TW - Китайский — Тайвань (традиционный) |
Как отличить настоящий рынок от выдуманного
Bing не отвечает ошибкой на несуществующий рынок - он молча подставляет ближайший. Со стороны это выглядит как работающий запрос, хотя выдача пришла не та, о которой просили.
Отличить можно по ответу: Bing возвращает в нём фактический рынок, и мы отдаём его полем
mkt. Попросили bn-BD, в ответе bn-BD - рынок настоящий.
Попросили ar-QA, в ответе ar-XA - такого рынка у Bing нет, запрос увели на
общий арабский.
Проверять это через наш API не нужно: несуществующий рынок он отклоняет ошибкой 422, не доходя до поисковика. В списке выше только те, что Bing принимает.
Страны: 236 кодов
Параметр cc - двухбуквенный код страны по ISO 3166-1 alpha-2. Кроме них в списке есть
два кода самого Bing, странам не принадлежащие: XA - Аравия и XL - Латинская
Америка. Это регионы его рынков, и в cc они оставлены для совместимости.
Страна уточняет выдачу внутри регионального рынка и особенно полезна там, где своего рынка у страны нет.
Катар, Иордания, Оман, Кувейт, Бахрейн, Ирак, Марокко - своих рынков у них нет, но
cc работает: с mkt=ar-XA и нужным cc выдача становится местной.
То же с Нигерией и Кенией через en-XA или en-US.
Полный список - ровно тот, что Bing предлагает в своих настройках в переключателе «Страна или регион».
Код (cc) |
Страна | Код (cc) |
Страна |
|---|---|---|---|
AD |
Андорра | LK |
Шри-Ланка |
AE |
ОАЭ | LR |
Либерия |
AF |
Афганистан | LS |
Лесото |
AG |
Антигуа и Барбуда | LT |
Литва |
AI |
Ангилья | LU |
Люксембург |
AL |
Албания | LV |
Латвия |
AM |
Армения | LY |
Ливия |
AO |
Ангола | MA |
Марокко |
AR |
Аргентина | MC |
Монако |
AS |
Американское Самоа | MD |
Молдова |
AT |
Австрия | ME |
Черногория |
AU |
Австралия | MF |
Сен-Мартен |
AW |
Аруба | MG |
Мадагаскар |
AZ |
Азербайджан | MH |
Маршалловы Острова |
BA |
Босния и Герцеговина | MK |
Северная Македония |
BB |
Барбадос | ML |
Мали |
BD |
Бангладеш | MM |
Myanmar |
BE |
Бельгия | MN |
Монголия |
BF |
Буркина-Фасо | MO |
Макао (САР) |
BG |
Болгария | MP |
Северные Марианские о-ва |
BH |
Бахрейн | MQ |
Мартиника |
BI |
Бурунди | MR |
Мавритания |
BJ |
Бенин | MS |
Монтсеррат |
BL |
Сен-Бартелеми | MT |
Мальта |
BM |
Бермуды | MU |
Маврикий |
BN |
Бруней-Даруссалам | MV |
Мальдивы |
BO |
Боливия | MW |
Малави |
BR |
Бразилия | MX |
Мексика |
BS |
Багамы | MY |
Малайзия |
BT |
Бутан | MZ |
Мозамбик |
BW |
Ботсвана | NA |
Намибия |
BY |
Беларусь | NC |
Новая Каледония |
BZ |
Белиз | NE |
Нигер |
CA |
Канада | NF |
О-в Норфолк |
CC |
Кокосовые о-ва | NG |
Нигерия |
CD |
Конго (ДРК) | NI |
Никарагуа |
CF |
Центрально-Африканская Республика | NL |
Нидерланды |
CG |
Конго | NO |
Норвегия |
CH |
Швейцария | NP |
Непал |
CI |
Кот-д’Ивуар | NR |
Науру |
CK |
Острова Кука | NU |
Ниуэ |
CL |
Чили | NZ |
Новая Зеландия |
CM |
Камерун | OM |
Оман |
CN |
Китай | PA |
Панама |
CO |
Колумбия | PE |
Перу |
CR |
Коста-Рика | PF |
Французская Полинезия |
CV |
Кабо-Верде | PG |
Папуа — Новая Гвинея |
CW |
Кюрасао | PH |
Филиппины |
CX |
О-в Рождества | PK |
Пакистан |
CY |
Кипр | PL |
Польша |
CZ |
Чехия | PM |
Сен-Пьер и Микелон |
DE |
Германия | PN |
Острова Питкэрн |
DJ |
Джибути | PR |
Пуэрто-Рико |
DK |
Дания | PS |
Палестинская Автономия |
DM |
Доминика | PT |
Португалия |
DO |
Доминиканская Республика | PW |
Палау |
DZ |
Алжир | PY |
Парагвай |
EC |
Эквадор | QA |
Катар |
EE |
Эстония | RE |
Реюньон |
EG |
Египет | RO |
Румыния |
ER |
Эритрея | RS |
Сербия |
ES |
Испания | RU |
Россия |
ET |
Эфиопия | RW |
Руанда |
FI |
Финляндия | SA |
Саудовская Аравия |
FJ |
Фиджи | SB |
Соломоновы Острова |
FK |
Фолклендские о-ва | SC |
Сейшельские Острова |
FM |
Федеративные Штаты Микронезии | SD |
Судан |
FO |
Фарерские Острова | SE |
Швеция |
FR |
Франция | SG |
Сингапур |
GA |
Габон | SH |
О-ва Св. Елены, Вознесения и Тристан-да-Кунья |
GB |
Великобритания | SI |
Словения |
GD |
Гренада | SK |
Словакия |
GE |
Грузия | SL |
Сьерра-Леоне |
GF |
Французская Гвиана | SM |
Сан-Марино |
GG |
Гернси | SN |
Сенегал |
GH |
Гана | SO |
Сомали |
GI |
Гибралтар | SR |
Суринам |
GL |
Гренландия | SS |
Южный Судан |
GM |
Гамбия | ST |
Сан-Томе и Принсипи |
GN |
Гвинея | SV |
Эль-Сальвадор |
GP |
Гваделупа | SX |
Cент-Мартен |
GQ |
Экваториальная Гвинея | SY |
Сирия |
GR |
Греция | SZ |
Свазиленд |
GT |
Гватемала | TC |
Острова Теркс и Кайкос |
GU |
Гуам | TD |
Чад |
GW |
Гвинея-Бисау | TG |
Того |
GY |
Гайана | TH |
Таиланд |
HK |
Гонконг | TJ |
Таджикистан |
HN |
Гондурас | TK |
Токелау |
HR |
Хорватия | TM |
Туркменистан |
HT |
Гаити | TN |
Тунис |
HU |
Венгрия | TO |
Тонга |
ID |
Индонезия | TR |
Турция |
IE |
Ирландия | TT |
Республика Тринидад и Тобаго |
IL |
Израиль | TV |
Тувалу |
IN |
Индия | TW |
Тайвань |
IQ |
Ирак | TZ |
Танзания |
IR |
Иран | UA |
Украина |
IS |
Исландия | UG |
Уганда |
IT |
Италия | US |
США |
JE |
Джерси | UY |
Уругвай |
JM |
Ямайка | UZ |
Узбекистан |
JO |
Иордания | VA |
Ватикан |
JP |
Япония | VC |
Сент-Винсент и Гренадины |
KE |
Кения | VE |
Венесуэла |
KG |
Киргизия | VG |
Виргинские о-ва (Британские) |
KH |
Камбоджа | VI |
Виргинские о-ва (США) |
KI |
Кирибати | VN |
Вьетнам |
KM |
Коморы | VU |
Вануату |
KN |
Сент-Китс и Невис | WF |
Уоллис и Футуна |
KR |
Корея | WS |
Самоа |
KW |
Кувейт | XA |
Регион — Аравия |
KY |
Острова Кайман | XL |
Регион — Латинская Америка |
KZ |
Казахстан | YE |
Йемен |
LA |
Лаос | YT |
Майотта |
LB |
Ливан | ZA |
ЮАР |
LC |
Сент-Люсия | ZM |
Замбия |
LI |
Лихтенштейн | ZW |
Зимбабве |
Языки интерфейса: 34
setlang задаёт язык интерфейса и подписей. Регион он не меняет и совместим с любым из
параметров выше - его можно добавлять к чему угодно. Полезен, когда выдача нужна страновая, а читать
служебные надписи удобнее на своём языке.
Код (setlang) |
Язык |
|---|---|
ar |
Арабский |
be |
Белорусский |
bg |
Болгарский |
cs |
Чешский |
da |
Датский |
de |
Немецкий |
el |
Греческий |
en |
Английский |
es |
Испанский |
et |
Эстонский |
fi |
Финский |
fr |
Французский |
he |
Иврит |
hr |
Хорватский |
hu |
Венгерский |
it |
Итальянский |
ja |
Японский |
kk |
Казахский |
ko |
Корейский |
lt |
Литовский |
lv |
Латышский |
nb |
Норвежский |
nl |
Голландский |
pl |
Польский |
pt |
Португальский |
ro |
Румынский |
ru |
Русский |
sk |
Словацкий |
sl |
Словенский |
sv |
Шведский |
th |
Тайский |
tr |
Турецкий |
uk |
Украинский |
zh |
Китайский |
Что выбрать под задачу
- Есть рынок страны - передавайте только
mkt. Напримерmkt=bn-BDдля Бангладеш илиmkt=vi-VNдля Вьетнама. - Рынка нет - берите ближайший общий и уточняйте страной:
mkt=ar-XA&cc=QAдля Катара,mkt=en-XA&cc=NGдля Нигерии. - Язык надписей отдельно от региона -
setlang.
Если передать несколько параметров локации сразу, Bing возьмёт верхний по списку из документации, остальные проигнорирует.
Примеры
curl "https://jsonseo.ru/api/bing?text=local+news&mkt=bn-BD&key=ВАШ_КЛЮЧ"
curl "https://jsonseo.ru/api/bing?text=local+news&mkt=ar-XA&cc=QA&key=ВАШ_КЛЮЧ"
curl "https://jsonseo.ru/api/bing?text=pizza&ll=55.753930,37.620795&key=ВАШ_КЛЮЧ"
Таблицы строятся из того же справочника, по которому
API проверяет параметры mkt, cc и
setlang. Список стран совпадает с переключателем «Страна или регион» в настройках
Bing.