> Manuales > Taller de PHP

Mostramos como segmentar la entrega de un banner según el país del visitante, en el servidor de banners OpenAds.

Openads es un software creado en PHP que funciona como servidor de banners. Hemos hablado repetidas veces de OpenAds DesarrolloWeb.com, un programa que antes se conocía con el nombre de PhpAdsNew. Ahora vamos a mostrar como poder configurar OpenAds para hacer segmentación por país, de modo que podamos definir el país o países a los que se distribuirán los banners.

De momento, hay que saber segmentar banners en OpenAds, es decir, aprender a definir las limitaciones de entrega de los banners. Esto lo vimos en el artículo Segmentación de una campaña de banners.

Una vez que ya sabemos segmentar una campaña, a través de las limitaciones de entrega de los banners, ahora vamos a aprender a segmentar por país del visitante.

Para ello tenemos que hablar primero de las bases de datos de "Geotargeting", que son bases de datos que hacen corresponder un país a cada usuario a partir de su dirección IP. Existen diversas base de datos para averiguar el país de un usuario dada su IP, pero Openads trabaja con dos distintas: Nosotros hemos probado a utilizar la base de datos MaxMind, que tiene una versión gratuita que da bastante precisión al detectar el país.

Lo primero que tendremos que hacer es entrar en MaxMind y acceder a sus productos "Geolocation Technology". Veremos que hay un producto que se llama Geolite Country. Este es gratuito, pero existen otras versiones de la base datos que tienen más precisión y ofrecen más datos sobre el usuario, incluso hay un producto que distingue incluso la ciudad del usuario.

De momento vamos a quedarnos con el producto gratuito (Open Source / Free), que servirá para nuestras pruebas. En adelante cada uno decidirá si necesita pagar por una base datos más precisa, que por suerte tiene un precio bastante razonable.

Nota: si queremos utilizar esta herramienta de Maxmind para la detección del país del usuario en cualquier aplicación PHP lee el artículo: Detectar país del visitante

La base de datos que descargamos es la que pone "Download the latest GeoLite Country Binary Format", que nos permite descargar un archivo llamado GeoIP.dat.gz. Es un archivo comprimido que podemos descomprimir en nuestro ordenador antes de subirlo al servidor. (Podemos descomprimir archivos .gz con un programa como 7zip)

Una vez descomprimido lo subimos por FTP al directorio del servidor donde nos venga bien.

Configurar Openads para segmentar por IP del visitante

Con el archivo de la base de datos de Geolite Country (GeoIP.dat) cargado en el servidor, viene el paso en el que tenemos que configurar Openads. Para ello tenemos que entrar en openads e ir a la sección "Propiedades - Propiedades Principales".

En esa página tenemos un campo select desplegable, donde tenemos que seleccionar la opción que pone "Host information and Geotargeting". Entonces accederemos al formulario de configuración de la base de datos para el Geotargeting.


En el fomulario tenemos al principio dos campos checkbox, para definir el comportamiento de Openads para obtener la IP del visitante.

Reverse DNS Lookup: Por si queremos que openads haga una búsqueda de DNS reverso para obtener datos del usuario.
Proxy Lookup: Para asegurarnos que la IP que detecta el servidor no corresponde a la IP de un Proxy, en caso que el visitante navegue utilizando un Proxy.

Las dos opciones se encuentran desactivadas por defecto. Esto es porque OpenAds tardaría bastante en hacer estas operaciones y se ralentizaría sensiblemente la distribución de banners. En principio los podemos dejar desactivadas y si tenemos problemas tal vez podemos probar a activarlas.

Luego está el campo para definir la base de datos de geotargeting que vamos a utilizar. El primer campo es un desplegable que pone "Type of geotargeting database". En ese desplegable hemos seleccionado la opción "MaxMind GeoIP Unified Plug-In (supports any database type)".

En el segundo campo, etiquetado con "Geotargeting database location" debemos escribir la ruta absoluta en nuestro servidor donde se encuentra el archivo GeoIP.dat, que habíamos subido por FTP. Será algo como esto:

/home/wwwroot/servidor-de-banners/home/data/GeoIP.dat

O como esto:

C:\Archivos de programa\EasyPHP1-8\www\openads\GeoIP.dat

Nota: Para saber la ruta absoluta de un directorio en PHP podemos consultar la variable $_SERVER["DOCUMENT_ROOT"], que nos dará el directorio físico de la raiz de publicación de nuestro dominio. A partir de esa ruta podremos construir cualquier otra ruta que necesitemos dentro del sistema de directorios del servidor.

Luego damos al botón para guardar los cambios y si todo funciona bien ya tendremos configurado el geotargeting en openads.

Segmentar por país la distribución de un banner con Openads

Ahora veamos como definir que un banner sólo lo vean los usuarios de un país, por ejemplo, España.

Tenemos que ir a la pantalla de opciones de entrega del banner que deseemos segmentar y allí hay un select que tiene las distintas posibilidades para limitar la entrega.


Tenemos que escoger la que pone "Country", que sirve para limitar los países a los que se mostrará el banner.


Entonces podemos seleccionar los países a los que queremos limitar la entrega del banner, es decir, los países en los que se verá el banner.

Sólo nos queda probar si funciona la segmentación configurada.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual