Inicio

Obtener el número de visualizaciones de una página con Google Analytics y PHP

Viernes, 13 de febrero de 2015

0
+3500

Esta entrada está dedicada a la interfaz PHP para Google Analytics (GAPI), que nos permite extraer toda la información que necesitemos de este popular servicio de analítica web. Veámos cómo obtener el número de visualizaciones de una página determinada.

Publicidad

Obtener el número de visualizaciones de una página con Google Analytics y PHP

Google Analytics es una herramienta de analítica web que ofrece información agrupada del tráfico de sitios web según la audiencia, la adquisición, el comportamiento y las conversiones que se llevan a cabo. Permite obtener informes como el seguimiento de usuarios exclusivos, el rendimiento de un segmento de usuarios, los resultados de las diferentes campañas de marketing online, las sesiones por fuentes de tráfico, tasas de rebote, duración de las sesiones, contenidos visitados, etc.

En esta entrada vamos a explicar cómo obtener el número de visualizaciones de una determinada página web, extrayendo esta información del servicio Google Analytics y utilizando para ello la Interfaz PHP de Google Analytics (GAPI). Aunque con nuestro código vamos a obtener únicamente el número de visualizaciones, puede ser modificado fácilmente para obtener cualquier estadística o dato de Google Analytics.

En primer lugar y antes de implementar ningún código, es necesario realizar un cambio en la configuración de tu cuenta de Google para permitir dispositivos y aplicaciones que utilizan una tecnología de inicio de sesión menos segura. Para ello, accedemos a la página Aplicaciones menos seguras de Google y marcamos la opción Activar.

Aplicaciones menos seguras (Google)

Una vez hecho esto, descargamos la Google Analytics PHP Interface y extraemos el fichero gapi.class.php al directorio correspondiente de nuestro sitio web.

Para obtener el número de visualizaciones podemos utilizar el siguiente script PHP:

require("gapi.class.php");

/*****************************/
/*       Parámetros GA       */
/*****************************/

$ruta = "/informatica/activar-soporte-trim-en-mac-os-x-10-10-yosemite";   // Ruta de la página

define("GA_USER", "usuario@gmail.com");       // Tu usuario de Google
define("GA_PASSWORD", "contraseña");          // Tu contraseña de Google
define("GA_PROFILE_ID", "01234567");          // El ID del perfil de Google Analytics

$dimensions = array("pagePath");              // Dimensión
$metrics = array("uniquePageviews");          // Métrica
$sort = "-uniquePageviews";                   // Orden
$fromDate = "2014-10-01";                     // Fecha de inicio
$toDate = date("Y-m-d", strtotime("now"));    // Fecha de fin (hoy)
$limit = 100;                                 // Resultados máximo
$filter = "pagePath=@" . $ruta;                // Filtro: expresión regular que incluye la ruta de acceso al recurso

/*******************************/
/*       Crear objeto GA       */
/*******************************/

try {
	$ga = new gapi(GA_USER, GA_PASSWORD);
	$res = $ga->requestReportData(GA_PROFILE_ID, $dimensions, $metrics, $sort, $filter, $fromDate, $toDate, 1, $limit);
	$uniquePageviews = 0;

	// Bucle para sumar las visualizaciones de todos los resultados
	for ($i = 0; $i < count($res); $i++) {
		$m = $res[$i]->getMetrics();
		$uniquePageviews += intval($m["uniquePageviews"]);
	}


	// Mostrar resultados
	echo $ruta . "<br />";
	echo $uniquePageviews . " visualizaciones";
}
catch (Exception $e) {
	echo "Se ha producido un error.\n";
}

Obviamente, el código anterior no funcionará a menos que definamos los siguientes parámetros:

Las variables $fromDate y $toDate se utilizan para indicar las fechas de inicio y finalización que se emplearán para la obtención de los resultados. En el ejemplo se está contabilizando desde el 1 de octubre de 2014 hasta el día actual, pero se pueden modificar de acuerdo con las necesidades del usuario.

Si nos fijamos en el código anterior, la consulta que se está realizando permite obtener el número de páginas vistas únicas (métrica uniquePageviews), es decir, el número de visitas durante las cuales se han consultado las páginas especificadas al menos una vez. Para nosotros, este valor puede ser interpretado como el número de visualizaciones de la página.

Asimismo, la variable $filter se utiliza para especificar un subconjunto de los datos que serán obtenidos de Google Analytics. En nuestro caso, hemos creado un filtro para obtener todos los resultados que contengan la subcadena correspondiente a la ruta de la página especificada. Para ello, hemos utilizado el operador @ (más información en la Referencia de la API de Google Analytics).

El motivo de utilizar el operador de subcadenas en el filtro y un bucle para ir sumando el número de visualizaciones de las páginas es debido a que podemos encontrarnos accesos a traves de proxy, páginas traducidas automáticamente o direcciones web que no están escritas completamente en minúsculas. En la siguiente imagen se pueden ver algunos ejemplos:

Google Analytics

Para finalizar, vamos a presentar una herramienta que permite construir y ejecutar consultas sobre nuestras vistas de Google Analytics: Query Explorer. Una de las ventajas de esta utilidad es que incorpora un excelente sistema de ayuda, que muestra detalladamente el significado y formato de todos los campos que se encuentran disponibles. La única pega es que se encuentra en inglés.

Gracias a Query Explorer, podemos construir nuestras consultas de un modo sencillo y amigable, para después utilizarlas en nuestros scripts PHP mediante la interfaz GAPI. La consulta utilizada en nuestro código de ejemplo es la siguiente:

Google Analytics Query Explorer

Para cualquier duda o aporte, por favor, déjanos tu comentario.

Publicidad

Deja tu comentario

Puedes utilizar el siguiente formulario para aportar tu opinión o contestar a otros usuarios. Por favor, sé educado y respetuoso con los demás y no olvides revisar la ortografía. Si tu comentario es muy extenso, separa el texto en varios párrafos.

  • Introduce tu nombre. No temas, Michu no tiene un Death Note.
  • Debes introducir tu dirección de correo electrónico.

Acepto el aviso legal y la política de privacidad de este sitio web.