Cómo ver la IP de un visitante en Google Analytics

Para registrar la IP de cualquier visitante en Google Analytics, añade el siguiente código PHP en tu página web, antes del código principal de Google Analytics.

 <?php 
 if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
 $ip=$_SERVER['HTTP_CLIENT_IP'];}
 elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
 $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];} else {
 $ip=$_SERVER['REMOTE_ADDR'];}
?>

A continuación, las instrucciones cambian según uses Universal Analytics o Analytics tradicional.

INSTRUCCIONES PARA UNIVERSAL ANALYTICS

Crea una nueva dimensión tal como se explica aquí, configura "IP" como nombre y "Sesión" como alcance. Utiliza este código, cambiando el parámetro UA:

<script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

    ga('create', 'UA-XXXXXXX-X', 'auto');
    ga('send', 'pageview', {
      'dimension1':  '<?=$ip;?>'
    });
</script>

Para ver los datos:
1) Crear un informe en "Informe personalizado".
2) Seleccionar IP como primera dimensión, que aparecerá debajo del menú "Dimensiones Personalizadas".
3) Seleccionar Sesiones como métrica web.

INSTRUCCIONES PARA ANALYTICS TRADICIONAL

Añade este código a tus páginas antes de </body>:

<script type='text/javascript'>
 _gaq.push(['_setCustomVar', 1, 'IP', '<?=$ip;?>', 1]);
</script> 

Para ver los datos:
1) Crear un informe en "Informe personalizado".
2) Seleccionar Variable personalizada (Valor 01) como primera dimensión.
3) Seleccionar las métricas web que necesitemos (visitas, páginas vistas, tiempo en el sitio, etc.)

Cuando el código haya recogido los primeros datos, podremos ver las las direcciones IPs de los visitantes y combinarlas con los demás datos que ofrece Google Analytics.

CÓMO USAR JAVASCRIPT PARA REGISTRAR LA DIRECCIÓN IP

Si no puedes usar PHP, todavía puedes registrar la dirección IP de tus visitantes usando Javascript. Sin embargo, estarás dependiendo de un Javascript externo que, a pesar de funcionar bien ahora, en el futuro podría fallar. Úsalo bajo tu propia responsabilidad. El código es:

<script type="text/javascript" src="http://l2.io/ip.js?var=myip"></script>
<script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

    ga('create', 'UA-XXXXXXX-X', 'auto');
    ga('send', 'pageview', {
      'dimension1':  myip
    });
</script>

INSTRUCCIONES PARA WORDPRESS

¡Gracias a Matt Holovach por esta solución!
1) Deshabilita el plugin de Analytics para Wordpress o elimínalo manualmente, si está incluido en el fichero headers.php.
2) Añade el siguiente código al fichero functions.php. Sugiero que copies el fichero original functions.php y lo guardes en tu escritorio. También, asegúrate de tener acceso FTP a los ficheros en tu servidor en caso de que tengas que ajustar el código de apertura o cierre, basado en lo que actualmente existe en tu fichero functions.php.

<? function get_the_user_ip() {
if ( ! empty( $_SERVER['HTTP_CLIENT_IP'] ) ) {
//check ip from share internet
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif ( ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
//to check ip is pass from proxy
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return apply_filters( 'wpb_get_ip', $ip );
}
add_shortcode('show_ip', 'get_the_user_ip');

add_action('wp_head', 'add_google_analytics');
function add_google_analytics() { ?>

<script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

    ga('create', 'UA-XXXXXXXX-1', 'auto');
    ga('send', 'pageview', {
      'dimension1':  '<?php echo get_the_user_ip();?>'
    });
</script>
<?php } ?>

¿ESTE CÓDIGO PARA VER LA DIRECCIÓN IP FUNCIONA NORMALMENTE EN WORDPRESS, BLOGSPOT O SHOPIFY?

Lo normal es que este código no funcione en los plugins de Analytics para Wordpress, Blogspot o Shopify, ya que sus plugins no ejecutan código PHP.

Escribe tu comentario comment45 Comentarios
  1. 2018-03-06 Cristian Veloso

    Daniel, tengo identificar el pais o ciudad de un visitante a mi sitio de manera online, para mostrarle publicidad dirigida, entiendo que esto se puede hacer a traves de su direccion IP, pero desconozco bien como ¿tu me puedes dar una mano con eso? saludos!

    • 2018-03-20 Daniel Piñero

      Hola Cristian. Esto suele configurarse directamente desde tu gestor de publicidad.

    2018-02-10 David Furniet

    Buenas Daniel! Para WP podemos utilizar la opción de introducir el código php que dejas al inicio seguido de universal analytics en mi caso? Es que al intentar usar el que dejas para WP no me reconoce el código de analytics el tag manager. Gracias por tu aporte!

    • 2018-02-10 Daniel Piñero

      Hola David. WP no permite introducir código PHP. Hay una solución en este mismo post específica para Wordpress.

    2018-02-01 Lola

    Hola. Pregunta: ¿para WP sólo es necesario añadir el código de la descripción cambiando el UA? ¿O también es necesario crear la dimensión? Excelente tutorial. Muchas gracias

    • 2018-02-01 Daniel Piñero

      Hola Lola. También tienes que crear la dimensión.

    2017-10-24 Ferney

    Excelente tutorial! A la fecha, funciona correctamente!

    2017-08-01 David

    Ante todo, gracias por el manual. Hay algo que no hago bien. He usado el script usando un javascript externo ya que con PHP tampoco me iba. He modificado mi UA, he creado la dimensión como decías pero nada. https://www.dropbox.com/s/havw9zn1m3axrcw/foto01.png?dl=0 https://www.dropbox.com/s/5qz8s8khuv8c1kt/foto02.png?dl=0 No se como pasarte la dirección de la web por privado, no puedo hacerla publica. Gracias de antemano

    • 2017-08-01 Daniel Piñero

      Hola. Si te ha funcionado por Javascript y no por PHP, el problema está en el código PHP. Me puedes escribir a dpinero86@gmail.com.

    2017-07-16 javier

    no logro hacer que me salga en analytycs en el menu de dimensiones la opcion IP Esto aun funciona?

    • 2017-07-16 Daniel Piñero

      Hola. Sí funciona. En el caso de Google Analytics, debes crear una \"custom dimmension\" o \"dimensión personalizada\", como indico en el post. Te tiene que aparecer cuando creas los reportes personalizados, con el mismo nombre que le has asignado.

    2017-05-23 Miguel

    Hola Daniel, ¿Deberia mostrarme las IPs en tiempo real o cuanto tiempo es necesario esperar para conseguir datos? No consigo ver nada. Mi URL es be-studio.es. Muchas gracias.

    • 2017-05-25 Daniel Piñero

      Se debe ver en pocos minutos mediante un reporte personalizado. He visto tu sitio web. El código está bien, por lo cual probablemente no has creado la dimensión dentro de Google Analytics.

    2017-01-03 Luis Vásquez

    Hola Daniel, Me pregunto ¿cómo detecta Analytics la ubicación del visitante? ¿acaso no lo hace por la IP? Si coloco en la variable $ip solo ip's de españa (por ejemplo), analytics me dirá que todos mis visitantes vienen de España? Saludos

    • 2017-01-03 Daniel Piñero

      Hola Luis. No. Si colocas en la variable IP sólo IPs de España, el país que muestra Analytics se mantiene intacto. La variable que estamos creando es una variable personalizada (como puede ser precio de un producto o un número aleatorio) que no tiene influencia sobre otras variables propias de Google Analytics.

    2016-06-13 yo

    que tengo que poner ahi UA-XXXXXXX-X'

    • 2016-06-13 Daniel Piñero

      El número de tu propiedad en Google Analytics. Suele comenzar con UA.

    2015-10-21 Franz

    Ok, ahora funciona. Mi culpa no puse en el informe la métrica sesiones. Sorry Muchas gracias excelente post

    • 2015-10-21 Daniel Piñero

      Hola. Me alegro de que te haya funcionado. Un saludo.

    2015-10-20 Franz

    Buenas Daniel, así quedo después de eliminar las lineas y modificar la dimension de 1 a 2 : pero analytics sigue sin recibir los datos IP. Bueno si sabes como podría solucionarlo me vendría genial. Si no se puede gracias de todas formas

    • 2015-10-20 Daniel Piñero

      El código, tal como está, debería funcionar. ¿Has creado la dimensión dentro de Google Analytics? ¿Lo tienes ya actualizado a Google Analytics Universal?

    2015-10-20 franz

    Hola Daniel esta es la URL: http://tufotocarcasa.es y esto es el directorio: /httpdocs/wp-content/themes/tufotocarcasa-maya/footer.php no se si te vale de esta manera. Dime tu si tengo que añadir algo. Gracias

    • 2015-10-20 Daniel Piñero

      Hola Franz. Las líneas con "var dimensionValue" y "ga('set'...", las puedes eliminar. Por otra parte, estás utilizando dimension1 para almacenar la dirección IP. Confirma que es ésa y no dimension2. Depende de lo que hayas creado dentro de tu Analytics.

    2015-10-14 Franz

    Hola Daniel, antes de todo darte la enhorabuena por tu articulo, y las gracias, porque la verdad que es muy interesante y util. te comento segui tus pasos pero tengo un problema con pegar el código de la dimension personalizada de google. La verdad que añadí la segunda linea: ga('set', 'dimension2', dimensionValue); al código de analytics, tal cual, y nada mas y claro no funciona. Me parece que falta algo. Gracias franco

    • 2015-10-14 Daniel Piñero

      Hola Franco. ¿Me podrías indicar la URL donde estás poniendo el código? Un saludo.

    2015-10-09 Fernando Jimenez

    Hola Daniel. El codigo javascript se pone solo en el index.html o en todos los htmls que tenga mi sitio web ??

    • 2015-10-09 Daniel Piñero

      Hola Fernando. Tienes que ponerlo en todos los HTMLs. Un saludo.

    2015-09-13 Eddy J.C.

    Hola Daniel, esto lo podría aplicar para un sistema web hecho en V.S. 2012 ASP.NET

    • 2015-09-13 Daniel Piñero

      Hola Eddy. No conozco los códigos para detectar direcciones IP con ASP, pero la solución de Javascript presente en este mismo post te puede servir.

    2015-08-28 Erickson Vasquez

    Hola Daniel Piñero, muy buen tutorial te felicito. Sin embargo antes de hacerlo me gustaría que me aclararas las siguiente duda. ¿Esto no infringe las políticas de Google Analytics? Gracias de antemano.

    • 2015-08-28 Daniel Piñero

      Hola Erickson. Yo lo he usado y no ha habido problemas. Puede ser contrario a políticas europeas, pero Google Analytics no suele poner obstáculos a esto.

    2015-06-05 Veronica Olvera

    Hola subi esto a mi pagina web pero no he obtenido ninguna IP. Podrias apoyarme

    • 2015-06-05 Daniel Piñero

      Por favor indícame cuál es tu página web. Un saludo, Daniel.

    2015-03-20 Daniel

    Hola, eh seguido los pasos pero nome registra ninguna IP dentro de mi reporte, espero poder contar con tu apoyo. Estoy usando Analytics tradicional y mi página web es www.amasi.com.mx Muchas gracias.

    • 2015-03-21 Daniel Piñero

      Hola Daniel. ¿En qué plataforma está programado este sitio web? Me puedes escribir directamente a mi correo electrónico. Un saludo, Daniel.

    2015-03-17 Alberto

    Muy interesante el artículo, he intentado seguir los pasos, pero no me registra ninguna ip. El código que dice google analytics que tengo que añadir var metricValue = '123'; ga('set', 'dimension1', metricValue); ¿Lo tengo que poner tal cual? Gracias!

    • 2015-03-17 Daniel Piñero

      Hola Alberto. Por favor, indícame el sitio web donde estas subiendo el código para poder ayudarte. Un saludo, Daniel.

    2015-01-18 Francisco Javier

    Hola Daniel. No he visto ningún botón de responder. Respondo aquí jeje. He probado ha hacerlo con Blogger, pero el código... ga('send', 'pageview', { 'dimension1': '' }); ... produce un error. Luego lo inserté asi: ga('send', 'pageview', {'dimension1':'<?=$ip;?>'}); Blogger hace esto con algunos caracteres. Pero de de todas formas donde debería aparecer la IP en Google Analytics, aparece algo así:

    2015-01-18 Francisco Javier

    Hola Daniel, Donde pone "dimension1" en el código ga('send', 'pageview', { 'dimension1': '' }); El nombre "dimension1", ¿debo haberlo creado en Google analytics? Parece un nombre personalizado. Gracias.

    • 2015-01-18 Daniel Piñero

      Hola Francisco. Sí, debes crearlo dentro de Analytics. He colocado el enlace de cómo hacerlo dentro del post. Un saludo, Daniel.

    2013-07-19 javier

    holame aparece en la web:_gaq.push([\'_setCustomVar\', 1, \'IP\', \'\

    2013-07-19 javier

    holame aparece en la web:_gaq.push([\'_setCustomVar\', 1, \'IP\', \'\

    • 2013-07-19 Daniel Piñero

      Hola Javier. Necesitas incluir este código en un fichero PHP ejecutable. ¿Me pasas la URL para ver la causa del problema?

    2013-07-11 Jorge

    Hola,muchas gracias por tu información ¿es posible esto en un blog de blogger?.Ya que blogger no soporta php.Muchas gracias de antemano.Saludos.

    • 2013-07-19 Daniel Piñero

      Hola Jorge. Efectivamente, parece que Blogger no permite correr PHP. Te recomiendo que utilices un iframe que llame a un alojamiento externo donde tengas tu código guardado

mode_editEscribe tu comentario

menu
menu