Script JavaScript y PHP. Rota banners según país (GeoIP)
Publicado: 29 Ene 2015, 15:52
El siguiente código permite rotar banners según la IP del visitante, puede ser útil para optimizar campañas publicitarias o simplemente mostrar contenidos diferentes según el país.
Es 100% JavaScript por lo cual se puede utilizar en blogs como los de Blogger o cualquier página HTML. Más abajo también dejo el código para el rotador en PHP.
Se basa en una API desarrollada por Frederic Cambus (www.telize.com), es open source y se puede descargar para instalar en un servidor propio y así tener mayor control o mantenerlo en funcionamiento por si el sitio anterior es dado de baja.
Código JavaScript para rotar banners según el país:
En el ejemplo se mostraría en el mismo espacio un contenido para España (ES), otro para Brasil (BR) y un tercero para el resto de los países. Los códigos de dos letras para todos los países se encuentran aquí
Este script simplemente hay que pegarlo en el lugar donde se desean mostrar los banners, para que funcione es necesario cargar jquery, si no se utiliza entonces hay que agregar la siguiente línea dentro del head:
Es todo JavaScript por lo cual se ejecuta directamente en el navegador del usuario, en el lugar donde se quieran rotar los banners se puede colocar el script completo del rotador o sólo el DIV con id=banner, el JavaScript también se puede cargar en el head, en el footer o de forma asíncrona para optimizar la carga del sitio.
Código PHP para rotar banners según país:
Con la misma api se puede hacer el rotador con PHP, el código quedaría así.
Es 100% JavaScript por lo cual se puede utilizar en blogs como los de Blogger o cualquier página HTML. Más abajo también dejo el código para el rotador en PHP.
Se basa en una API desarrollada por Frederic Cambus (www.telize.com), es open source y se puede descargar para instalar en un servidor propio y así tener mayor control o mantenerlo en funcionamiento por si el sitio anterior es dado de baja.
Código JavaScript para rotar banners según el país:
Código: Seleccionar todo
<script type="application/javascript">
$(document).ready(function() {
$.getJSON("http://www.telize.com/geoip?callback=?",
function(json) {
// si la IP es de España
if (json.country_code === 'ES') {
// muestra banner para España
document.getElementById("banner").innerHTML='<a href="http://www.spamloco.net"><img src="imagen.jpg" /></a>';
}
// si la IP es de Brasil
else if (json.country_code === 'BR') {
document.getElementById("banner").innerHTML='<a href="http://www.spamloco.net"><img src="imagen.jpg" /></a>';
}
// para el resto del mundo
else {
document.getElementById("banner").innerHTML='<a href="http://www.spamloco.net"><img src="imagen.jpg" /></a>';
}
}
);
});
// ]]>
</script>
<div id="banner"></div>
Este script simplemente hay que pegarlo en el lugar donde se desean mostrar los banners, para que funcione es necesario cargar jquery, si no se utiliza entonces hay que agregar la siguiente línea dentro del head:
Código: Seleccionar todo
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript"></script>
Código PHP para rotar banners según país:
Con la misma api se puede hacer el rotador con PHP, el código quedaría así.
Código: Seleccionar todo
<?php
$var = file_get_contents('http://www.telize.com/geoip/'.$_SERVER['REMOTE_ADDR']);
$api = json_decode($var);
if($api->country_code == 'ES'){
?>
<a href="http://www.spamloco.net"><img src="imagen.jpg" /></a>
<?
}else if($api->country_code == 'BR'){
?>
<a href="http://www.spamloco.net"><img src="imagen.jpg" /></a>
<?
}else {
?>
<a href="http://www.spamloco.net"><img src="imagen.jpg" /></a>
<?
}
?>