Documentación Google Analytics API PHP Class

Versión 1.1

Requisitos:

  • Servidor con PHP 5
  • Acceso a internet mediante file_get_contents
  • Modulo Simple XML instalado

Por lo general todos los hostings de PHP5 deberían cumplir estas condiciones

Contenido de la clase GAnalytics:

Propiedades Públicas

->accounts

Contendrá, una vez iniciado el objeto, todas las cuentas del usuario que se ha logado al construir el objeto.

->selectedAccount

La cuenta con la que se está trabajando, identificada por un id único a efectos de la clase, pero con información extra como Nombre dado en analytics, codigo de analytics, etc...

Métodos Públicos

->setAccount( {idAccount} )

Nos permite seleccionar con cual de las cuentas de Analytics del usuario logado queremos trabajar. Por defecto la clase se conectará a la primera de estas cuentas con lo que para usuarios con una sola cuenta este método no es necesario.

Puede invocarse usando como id el id Google Analytics que tiene la cuenta (un número que puede encontrarse al editar la cuenta... más info: http://code.google.com/intl/es-ES/apis/analytics/docs/gdata/gdataReference.html )

Podemos invocarla con ->setAccount( 123456789 ) y así asegurar que siempre extraeremos datos de esa cuenta.

También puede invocarse simplemente indicando cual de entre todas las cuentas usar. Las cuentas se cargarán ordenadas desde "0", siendo 0 la primera, 1 la segunda, 2 la tercera, etc... ->setAccount( 2 ) sacaría los datos de la tercera cuenta que tenga nuestro usuario de Analytics.

Este método es arriesgado puesto que en el futuro las cuentas podrían moverse de orden, pero para scripts puntuales es válido.

->setDates ( {fecha-inicio},{fecha-fin} )

Por defecto la clase intenta tomar datos desde 31 días atrás hasta ayer (como en google Analytics). De esta forma podemos forzar sacar datos solo de un periodo concreto. Las fechas tienen que venir en formato americano: AAAA-MM-DD y si se indican deben indicarse ambas.

->requestXML( {dimension}, {metrica}, {orden} [, {filtros}, {empezando-del-resultado-numero}, {cuantos-resultados-sacar}] )

http://code.google.com/intl/es-ES/apis/analytics/docs/gdata/gdataReferenceDimensionsMetrics.html

En la url superior tenemos información sobre las distintas metricas que nos permite usar la API de Google Analytics.

Con esta función podemos lanzar una petición de un valor determinado (metrica) segmentando según distintas dimensiones y ordenados como deseemos.

Podemos declarar si queremos ver a paritr de un resultado concreto (saltandonos los primeros, por ejemplo) y cuantos resultados queremos ver. Por defecto, si no se indica, se desde el primer resultado un total de 10.

El resultado nos será dado como un objeto XML con toda la información que la API de Google da para este tipo de peticiones.

->requestValues( {dimension}, {metrica}, {orden} [, {filtros}, {empezando-del-resultado-numero}, {cuantos-resultados-sacar}] )

Cuando lo unico que nos interesa son los valores devueltos podemos lanzar esta función y así evitar la gran cantidad de información del XML que recibiríamos de usar ->requestXML().

Los datos nos serán devueltos ordenados dentro de un array asociativo con dos valores: "element" contiene el nombre de la dimiension y "value" contiene el valor según la metrica escogida.

->getMostViewedPages( [{empezando-del-resultado-numero}, {cuantos-resultados-sacar}] )
->getLandingPages( [{empezando-del-resultado-numero}, {cuantos-resultados-sacar}])
->getKeywords( [{empezando-del-resultado-numero}, {cuantos-resultados-sacar}])

Son tres funciones que extraen directamente 3 de los informes más comunes de Analytics. Sirven sobretodo de ejemplo que sirva a cualquiera para ampliar la clase marcando informes útiles y evitando así a la larga tener que lidiar con los nombres de dimensiones y métricas de Analytics.

->newFilter()

Genera en una variable un nuevo filtro. Los filtros pueden llegar a ser muy complejos por lo que es mejor dedicarles sus propios metodos. Debemos iniciar un objeto GAnalytics_Filter con este metodo y usar luego sus clases para añadir filtros.

$GAnalytics = new GAnalytics("myemail@gmail.com","mypassword12345");
$newFilter  = $GAnalytics->newFilter()

Metodos de newFilter ( GAnalytics_Filter class )

->addANDFilter ( {dimension-o-metrica} , {operador} , {expresion} )

Crea un AND a la serie de filtros. Debemos indicar una dimension o metrica sobre la que validar si los datos pasan el filtro. Las dimensiones y metricas se pueden ver en:
http://code.google.com/intl/es-ES/apis/analytics/docs/gdata/gdataReference.html

Los operadores vienen definidos por Google y dependen de si se estan lanzando sobre una dimensión o una metrica se pueden consultar todos los operadores disponibles en:
http://code.google.com/intl/es-ES/apis/analytics/docs/gdata/gdataReference.html#filtering

La expresión es la cadena a validar, según el operador puede ser una cifra una cadena o una expresión regular.

->addORFilter ( {dimension-o-metrica} , {operador} , {expresion} )

Funciona exactamente igual que ->addANDFilter pero el filtro que añade lo hace como OR. Así pueden juntarse resultados de varios filtros en una sola consulta.

NOTA: Para primer filtro que se añade no importa la distinción entre AND y OR, simplemente es el primero.

Ejemplos de USO

Ejemplo Básico:

 
<?php
// Incluimos la clase
include("GAnalytics.class.php");
 	
$GAnalytics = new GAnalytics("myemail@gmail.com","mypassword12345");

// Por defecto la clase se conectaría al la primera cuenta de este usuario y extraeria 30 días atrás
	
// Así sacamos los informes más típicos
$pageViews =	  $GAnalytics->getMostViewedPages();
$landingPages =	$GAnalytics->getLandingPages();
$keywords =		  $GAnalytics->getKeywords();
?>

Ejemplo más avanzado

<?php
// Incluimos la clase
include("GAnalytics.class.php");
	
$GAnalytics = new GAnalytics("myemail@gmail.com","mypassword12345");

// Indicamos el Id de la cuenta que queremos mirar
$GAnalytics->setAccount( 123456789 ); 
	
// Indicamos las fechas que queremos observar
$GAnalytics->setDates( "2009-05-27", "2009-05-28" );

// Extraemos los 100 primeros resultados de páginas vistas por buscador ordenados 
// descendentemente por numero de paginas vistas
$pageViews =$GAnalytics->requestValues( "ga:browser", "ga:pageviews", "-ga:pageviews" ,1,100);
?>

Ejemplo Con Filtros

<?php
// Incluimos la clase
include("GAnalytics.class.php");
	
$GAnalytics = new GAnalytics("myemail@gmail.com","mypassword12345");

// Indicamos el Id de la cuenta que queremos mirar
$GAnalytics->setAccount( 123456789 ); 
	
// Indicamos las fechas que queremos observar
$GAnalytics->setDates( "2009-05-27", "2009-05-28" );

// Creamos un filtro	
$filter = $GAnalytics->newFilter();
	
// Filtramos entradas que contengan la keyword "seo"
$filter->addANDFilter( "ga:keyword", "=@", "seo" );
	
// Añadimos un "OR" para ver tambiñen las que tengan la keyword jquery
$filter->addORFilter( "ga:keyword", "=@", "jquery" );
	
// Lanzamos una consulta: Páginas vistas provocadas por las keywords filtradas
// segmentadas por keyword y ordenadas por paginas vistas de forma descendente
// Vemos desde el primer resultado viendo un total de 100 resultados.
$pageViews = $GAnalytics->requestValues( "ga:keyword", "ga:pageviews", "-ga:pageviews" , $filter, 1, 100);

?>

Esto son experimentos, no preguntes ;) prueba metadescription Juego Prueba title Seo