В AdSense нет никаких настроек, связанных с геотаргетингом, но, в то же время, цена за клик довольно сильно зависит от того, где живет ваш посетитель. Поэтому, если вы захотите показать гостям из Гондураса «альтернативные объявления», чтобы эти уважаемые люди не портили вам красивую статистику, придется фильтровать их самостоятельно, у себя на сервере.

Самый распространенный вариант определения страны посетителя по IP-адресу — бесплатная база GeoLite Country. С помощью утилиты geo2nginx.pl, которую можно найти в папке contrib дистрибутива nginx, эту базу нужно привести к виду, который будет понятен модулю ngx_http_geo_module. Модуль создаст переменную, значением которой будет двухбуквенный код страны посетителя, например «RU». Полученный в результате конвертации, файл geoip.conf подключается к nginx следующим образом:

geo $geo {
  include conf/geoip.conf;
  default XX;
}

Если определить страну не удастся, переменной будет присвоено значение «XX».

Теперь переменную $geo можно записывать в log, использовать в правилах rewrite или передавать скриптам в качестве параметра. Но нас сейчас интересует AdSense.

Создайте в корне папку adsense, положите туда файлы с названиями вида «scoreboard-RU.html», «scoreboard-XX.html», «250×250-RU.html» и т.д. В файлах, конечно же, должен быть код AdSense или то, что вы хотите показывать вместо него. Всегда создавайте файл «НазваниеБлока-XX.html», он будет использован в случае, если страна не определена или файл с рекламным кодом для страны не найден.

С помощью технологии SSI, вставим рекламу в нужное место страницы:

<!--#include virtual="/adsense-scoreboard.html"-->
<!--#include virtual="/adsense-250x250.html"-->

Чтобы это всё благополучно заработало, добавьте следующие строки в конфигурацию вашего сайта:

server {
  listen xx.xx.xx.xx:80;
  server_name example.com;
  access_log /var/log/httpd/example.com-access_log main;
  ssi on;
  location / {
    root /var/www/example.com;
  }
  location ~ ^/adsense-\w+.html$ {
    root /var/www/example.com;
    if ($uri ~ ^/adsense-(\w+).html$) { set $adtype $1; }
    if (-f /var/www/example.com/adsense/$adtype-$geo.html) {
       rewrite ^(.*)$ /adsense/$adtype-$geo.html break; }
    rewrite ^(.*)$ /adsense/$adtype-XX.html break;
  }
}

Буду рад узнать, если кому-то это помогло заработать лишнюю пару центов. ;)



2 Responses to “AdSense и геотаргетинг”  

  1. 1 tenshi

    открою-ка я страашную тайну: http://www.maxmind.com/app/javascript_city ^_^

  2. 2 Ugnich Anton

    2tenshi: и? :)


Leave a Reply