Содержание
Если вы монетизируете сайт, то наверняка сталкивались с необходимостью геотаргетинга. Геотаргетинг — это технология, которая позволяет показывать разный контент или рекламу в зависимости от физического местоположения пользователя (его страны или города). Например, посетителям из одной страны целесообразно показывать блоки РСЯ, а трафику из Европы — Google AdSense или локальные партнерские программы.
Найти хорошее готовое решение для WordPress под эту задачу оказалось непросто. Популярный плагин Advanced Ads имеет функционал гео-таргетинга только в Pro-версии + нужно подключаться по API к базе. Плагин FlatPM предлагал эту функцию бесплатно, но на данный момент он перестал корректно работать.
Поэтому сделал собственное решение — Geo Ad Manager. Это простой легкий плагин для управления рекламой в WordPress, который определяет страну пользователя по IP и выводит нужные баннеры.
Особенности плагина Geo Ad Manager:
- Без сторонних API: Плагин не делает запросы к внешним сервисам вроде IPinfo. Все вычисления происходят на вашем сервере благодаря встроенной компактной бинарной базе данных SxGeo (весит всего около 3 МБ).
- Обход кэширования: Главная проблема рекламных плагинов в WP — несовместимость с плагинами кэширования (WP Rocket, LiteSpeed и др.). Geo Ad Manager выводится на страницу пустой контейнер, а реклама подгружается асинхронно через кастомный REST API Endpoint с помощью легкого Vanilla JS.
- Поддержка JS-кода: Вы можете вставлять любые скрипты рекламных сетей, плагин корректно инициализирует теги
<script>после AJAX-загрузки.
Как пользоваться плагином
Логика работы разделена на сущности для максимальной гибкости:
- Создайте Зону рекламы: Перейдите в раздел «Geo Реклама» -> «Зоны рекламы». Это место на сайте (например, «Сайдбар» или «Под статьей»). Плагин сгенерирует шорткод (вида
[qfurs_ad_zone id="X"]) и PHP-код для вставки в файлы темы. Выберите режим вывода: показывать все подходящие объявления или ротировать 1 случайный баннер. - Создайте Объявление: Перейдите в раздел «Объявления». Вставьте ваш HTML/JS код рекламы.
- Настройте таргетинг: Привяжите объявление к нужной Зоне и укажите правила:
- Показывать всем (без ограничений).
- Показывать ТОЛЬКО в указанных странах (введите двухбуквенные коды стран, например: RU, BY, UA, KZ).
- ИСКЛЮЧИТЬ показы в указанных странах.
Обслуживание и настройка
По-умолчанию ничего делать не нужно, но может понадобиться обновить БД с IP или добавить новые страны в список, хотя если страны в списке нет, но указать ее код то плагин будет ее определять (это скорей для справки).
Как обновить базу IP-адресов
IP-адреса провайдеров периодически меняются. Чтобы точность определения стран оставалась высокой, базу рекомендуется обновлять раз в полгода:
- Перейдите на официальный сайт разработчиков базы: sypexgeo.net/ru/download/
- В таблице найдите строку SxGeo Country (база стран) и скачайте ZIP-архив.
- Распакуйте архив — вам нужен только файл
SxGeo.dat. - В папке плагина:
wp-content/plugins/geo-ad-manager/data/замените файлSxGeo.datна новый.
Как добавить новые страны в список-справочник
В админке плагина под полем ввода стран есть удобный спойлер со списком доступных кодов (ISO 3166-1 alpha-2). Если нужно добавить туда новую страну (например, Испанию — ES), это делается в пару строк кода:
- Файл плагина
includes/Admin/MetaBoxes.php. - В самом низу функция
get_countries_list(). - Добавьте новую строку в массив по аналогии, например:
'ES' => 'Испания',.
Код плагина написан по стандартам SOLID и WordPress Coding Standards. Вы можете свободно использовать его на своих проектах и дорабатывать под свои нужды.