Loading...
20 of May 2024, Monday

Geo-Targeted-ADS

Geo-Targeted Banner Ads. Live Demo

Posted on 17 of October 2021
Updated on 2023-11-17 17:19:05 UTC

Geo-Targeted-ADS

Прежде всего - о том, что же означает фраза Geo-Targeted Banner ADS...

Автор неоднократно замечал интерес аудитории различных форумов - к скриптам, позволяющим показывать таргетированную рекламу исходя из местоположения посетителя, определяемого по ip-адресу. Да, именно тот случай; центральная картинка на каждой страничке этого сайта кликабельна, выбирается случайным образом из нескольких, распределенных по нескольким каталогам.

Излишне говорить, что четыре двухбуквенных ISO-кода в качестве названий директорий на скриншоте (для всех иных визитеров показываются картинки из каталога other) - совершенно не предел, хоть сотню папок поместите в каталог images. Логика при этом сохранится: все, кто не распознан как представитель одного из георасположений - получат баннер из папки other

Target users in different countries

На данный момент определение геотаргетинга посетителя решено посредством использования сервиса iplocate.io:

url = 'https://www.iplocate.io/api/lookup/' + remote_ip(ip) # + '?apikey=your_api_key'
response = Net::HTTP.get(URI.parse(url))

Но, разумеется, ничто не мешает использовать любой другой.

UPD. Заменил iplocate.io на GeoCoder, по умолчанию используемый аналитикой Ahoy. Соответственно, получаем страну пользователя еще проще:

 def country
 current_visit.country
 end

Учтите, переключение между проксями с целью тестирования функционала теперь не столь просто, как раньше: сайт запоминает и группирует ваши посещения подробнее см. в Статистике. Как вариант решения для тестеров - чистить cookies.

activeadmin (6) админка (6) geo-targeted (2)

Add a comment:

Aleksei posted it over 2 years ago.

Примечание. Клик по центральному баннеру открывает указанный в application.yml один-единственный веб-ресурс сейчас, и этим данный функционал пока что исчерпывается. На этот счет у каждого сайтовладельца свои собственные пожелания, и они очень несложно реализуемы. Но, пожалуй, не имеет смысла искать универсальное базовое решение "из коробки".