Геолокационный маркетинг – важная часть коммерческих интернет-ресурсов, независимо от уровня охвата аудитории. Потенциальному покупателю важно сразу предоставить актуальную информацию о товаре, способах доставки, доступных способах оплаты и т.д. Это значительно повышает вероятность, что пользователь задержится на сайте и совершит покупку.
Без геолокации также сложно организовать работу курьерских служб, различных агрегаторов и информационных каталогов, задача которых – помочь пользователю найти ближайшие объекты. Преимущества также можно увидеть при работе с популярными поисковыми системами – при необходимости они формируют результат поиска с учетом страны и города.

Конечно, можно просто при первом посещении выдать пользователю запрос с просьбой вручную указать текущее местоположение. Однако автоматизация данного процесса делает взаимодействие с ресурсом гораздо удобнее.
Сегодня используется несколько схем определения геолокации. Из готовых инструментов можно использовать функционал интернет-браузера, однако пользователь в этом случае должен явно разрешить передачу данной информации через соответствующий запрос. Также можно использовать для этого IP-адрес устройства, с которого осуществляется просмотр сайта. В этом случае запрашивать разрешение не нужно, а сам IP передается в открытом виде. Однако данный способ будет эффективно работать, только при использовании актуальной базы данных, которая и обеспечивает выдачу информации о конкретном адресе.
Реализовать данный способ лучше через специализированные сервисы, которые предоставляют API геолокации по IP . Основные преимущества:
— простота интеграции. Для популярных CMS есть уже готовые плагины, которые еще больше облегчают данный процесс;
— отпадает необходимость контролировать актуальность базы данных, это контролируется специалистами сервиса, которые используют для этого профессиональное ПО;
— для пользователя процесс определения геолокации проходит незаметно, без раздражающих запросов.
Схема работы довольно проста и в общих чертах выглядит следующим образом:
— фиксируется IP-адрес пользователя;
— при помощи GET-запроса адрес передается соответствующему сервису;
— в ответ отправляется набор данных, обычно используется формат JSON, XML или Newline.
В качестве примера рассмотрим работу с сервисом https://ipwhois.io/ru/
Ключевые преимущества сервиса:
— передаваемые данные надежно защищены при помощи 256-битного шифрование SSL, используется протокол HTTPS;
— поддерживаются стандарты IPv6 и IPv4;
— распределенная сеть серверов обеспечивает стабильную работу и высокую скорость, независимо от того, из какой страны отправляется API-запрос;
— база адресов обновляется в режиме реального времени, для чего используется самообучающаяся нейронная сеть;
— есть возможность выбрать удобный формат ответа;
— для небольших проектов будет достаточно бесплатного лимита – 10 тысяч запросов в месяц.
Для вызова API достаточно использовать GET-запрос следующего формата:
http://free.ipwhois.io/json/{IP}
Если адрес не указывать, сервис вернет информацию о текущем IP-адресе. Полную документацию по IP с примерами реализации на разных языках программирования можно найти в соответствующем разделе сервиса. Содержимое ответа в формате JSON можно посмотреть в примере ниже:
{ "ip":"хх.ххх.ххх.хх", "success":true, "type":"IPv4", "continent":"Europe", "continent_code":"EU", "country":"Russia", "country_code":"RU", "country_flag":"https:\/\/cdn.ipwhois.io\/flags\/ru.svg", "country_capital":"Moscow", "country_phone":"+7", "country_neighbours":"AZ,BY,CN,EE,FI,GE,KP,KZ,LT,LV,MN,NO,PL,UA", "region":"Krasnodar Krai", "city":"Krasnodar", "latitude":45.0392674, "longitude":38.987221, "asn":"AS50466", "org":"Noutek Ltd", "isp":"Noutek Ltd", "timezone":"Europe\/Moscow", "timezone_name":"MSK", "timezone_dstOffset":0, "timezone_gmtOffset":10800, "timezone_gmt":"+03:00", "currency":"Russian Ruble", "currency_code":"RUB", "currency_symbol":"\u20bd", "currency_rates":63.749998, "currency_plural":"Russian rubles" }