Verwenden der Google Analytics API

Die Google Analytics API erlaubt es Client-Anwendungen Daten aus Google Analytics Konten abzufragen.

Siehe » http://code.google.com/apis/analytics/docs/gdata/v2/gdataOverview.html für weitere Informationen über die Google Analytics API.

Account-Daten abfragen

Der Account-Feed gibt eine Übersicht über alle Konten und deren Properties.

  1. $service = Zend_Gdata_Analytics::AUTH_SERVICE_NAME;
  2. $client = Zend_Gdata_ClientLogin::getHttpClient($email, $password, $service);
  3. $analytics = new Zend_Gdata_Analytics($client)
  4. $accounts = $analytics->getAccountFeed();
  5.  
  6. foreach ($accounts as $account) { 
  7.   echo "\n{$account->title}\n";
  8. }

Die Rückgabe der Method $analytics->getAccountFeed(), ein Objekt der Klasse Zend_Gdata_Analytics_AccountFeed, beinhaltet eine Liste von Zend_Gdata_Analytics_AccountEntry Objekten. Diese Objekte bilden die jeweiligen Properties innerhalb des Accounts ab.

Statistische Daten abfragen

Neben dem Account-Feed besteht auch die Möglichkeit, die statistischen Daten der einzelnen Accounts abzufragen. Hierfür steht eine vereinfacht Abfrage-Syntax zur Verfügung, welche das Erstellen der URL-Abfragen vereinfacht. Hierbei stehen die von Google bereitgestellten » Metriken bzw. Dimensionen zur Verfügung. Mit diesen und einer Anzahl an » Filtern können neben » gewöhnlichen Werten auch komplexre Resultate abgefrage werden.

  1. $query = $service->newDataQuery()->setProfileId($profileId) 
  2.   ->addMetric(Zend_Gdata_Analytics_DataQuery::METRIC_BOUNCES)   
  3.   ->addMetric(Zend_Gdata_Analytics_DataQuery::METRIC_VISITS)
  4.   ->addDimension(Zend_Gdata_Analytics_DataQuery::DIMENSION_MEDIUM) 
  5.   ->addDimension(Zend_Gdata_Analytics_DataQuery::DIMENSION_SOURCE) 
  6.   ->addFilter("ga:browser==Firefox") 
  7.   ->setStartDate('2011-05-01')   
  8.   ->setEndDate('2011-05-31')   
  9.   ->addSort(Zend_Gdata_Analytics_DataQuery::METRIC_VISITS, true) 
  10.   ->addSort(Zend_Gdata_Analytics_DataQuery::METRIC_BOUNCES, false) 
  11.   ->setMaxResults(50);
  12.  
  13. $result = $analytics->getDataFeed($query);
  14. foreach($result as $row){ 
  15.   echo $row->getMetric('ga:visits')."\t"
  16.   echo $row->getValue('ga:bounces')."\n"
  17. }