Contenido

Google Analytics API Class para PHP

30 May

+ 14

Hace unas semanas conocimos la noticia de Google Analytics había publicado su API pública para permitir que usáramos nuestros datos almacenados en sus servidores en nuestras aplicaciones. Si estás interesado en ella y además el lenguaje de programación que quieres usar es PHP esta class hará tu vida más fácil.

<?php
// include the Google Analytics PHP class
include "googleanalytics.class.php";

// create an instance of the GoogleAnalytics class using your own Google {email} and {password}
$ga = new GoogleAnalytics('{email}','{password}');

// set the Google Analytics profile you want to access - format is 'ga:123456';
$ga->setProfile('{GA Profile ID}');

// set the date range we want for the report - format is YYYY-MM-DD
$ga->setDateRange('2009-04-01','2009-04-07');

// get the report for date and country filtered by Australia, showing pageviews and visits
$report = $ga->getReport(
	array('dimensions'=>urlencode('ga:date,ga:country'),
		'metrics'=>urlencode('ga:pageviews,ga:visits'),
		'filters'=>urlencode('ga:country=@Australia'),
		'sort'=>'-ga:pageviews'
		)
	);

//print out the $report array
print_r($report);
?>

Modo de empleo

Como vemos en el código, además de llamar a la class al inicio del fichero declaramos una nueva instancia del objeto GoogleAnalytics, al que le pasamos los parámetros de email y password, los que usamos para hacer login en Google Analytics. Despues indicamos el perfil del que queremos obtener datos. Este perfil lo podemos obtener de la misma página de Google Analytics. Simplemente hace referencia al ID asociado a la página web que vemos en el menú, en la URL podemos encontrarlo fácilmente.

ga-url
(Ver Imagen)

El formato requerido es el siguiente: ga:XXXXXX donde XXXXXX es el id que vemos arriba en la imagen.

Ya solo nos queda indicar un rango de fechas en formato YYYY-MM-DD y lanzar la petición de lo que queremos solicitar.

$report = $ga->getReport(
	array('dimensions'=>urlencode('ga:date,ga:country'),
		'metrics'=>urlencode('ga:pageviews,ga:visits'),
		'filters'=>urlencode('ga:country=@Australia'),
		'sort'=>'-ga:pageviews'
		)
	);

El resultado lo recibimos como un array con los datos solicitados.

Array
(
    [20090406~~Australia] => Array
        (
            [ga:pageviews] => 11
            [ga:visits] => 9
        )

    [20090401~~Australia] => Array
        (
            [ga:pageviews] => 8
            [ga:visits] => 6
        )

    [20090402~~Australia] => Array
        (
            [ga:pageviews] => 8
            [ga:visits] => 4
        )

    [20090405~~Australia] => Array
        (
            [ga:pageviews] => 4
            [ga:visits] => 2
        )

    [20090407~~Australia] => Array
        (
            [ga:pageviews] => 4
            [ga:visits] => 2
        )

    [20090403~~Australia] => Array
        (
            [ga:pageviews] => 2
            [ga:visits] => 2
        )

)

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.