Google Analytics API mit PHP - Teil 2: Account-Daten abrufen

Erfahren Sie, wie Sie Ihre Google Analytics Account Daten mit PHP und der Data Export API abfragen können.

Bevor ich Ihnen erläutere, wie Sie Ihre Google Analytics Konto-Daten abrufen können, lesen Sie bitte den ersten Teil Authentifizierung dieser Serie. Im folgenden Beispiel wird das Auth-Token $auth aus dem ersten Artikel benötigt.

Um auf Ihre Account-Daten zugreifen zu können, müssen Sie sich bei Google authentifizieren. Dies geschieht indem Sie einen angepassten HTTP-Header mit jeder Abfrage mitsenden. Auch hierzu verwenden ich wieder das HTTP_Request-Package von PEAR. Folgendes Beispiel zeigt, wie Sie eine Anfrage an den entsprechenden Service stellen:

// URL des Account-Services
$FEED_URL = 'https://www.google.com/analytics/feeds/accounts/default';

// neues Request-Objekt erstellen
$req = new HTTP_Request($FEED_URL);

// Wichtig: Methode GET nicht POST
$req->setMethod(HTTP_REQUEST_METHOD_GET);

// Authentifizierungs-Header konstruieren
$req->addHeader('Authorization', 'GoogleLogin auth='.$auth);

// Anfrage senden
$response = $req->sendRequest();

Das erfolgreiche Ergebnis dieser Anfrage enthält eine XML-Datei. Die Daten sehen ungefähr so aus. Ich habe IDs und Domainnamen durch Fantasie-Inhalte ersetzt.


  http://www.google.com/analytics/feeds/accounts/YOURID
  2009-03-21T07:46:38.000-07:00
  Profile list for YOURNAME

  
    Google Analytics
  
  Google Analytics
  14
  1
  14
  
    http://www.google.com/analytics/feeds/accounts/ga:0001
    2009-01-30T09:06:56.000-08:00
    www.yourdomain.de

    ga:0001
    
    
    
    
  
  
    ...
  

Sie können die Daten folgendermaßen ermitteln. Bitte beachten Sie die Anmerkungen nach dem Code-Beispiel.

if ($response) {

  // Daten extrahieren
  $content = $req->getResponseBody();

  // als XML-Datei laden
  $xml = simplexml_load_string($content);
}

Um die XML-Daten weiterzuverarbeiten, können Sie z.B. die hier benutzte Funktion simplexml_load_string nutzen. Bitte beachten Sie aber, dass in den XML-Daten Namespaces verwendet werden. Die benutze Funktion kann diese Daten leider nicht auslesen. Ich empfehle Ihnen lieber auf die DOM-Funktionen von PHP zurückzugreifen.

Die hier ermittelten Google Analytics Kontodaten werden benötigt, um die Statistiken der von Ihnen angelegten Websites abzufragen. Im nächsten Teil dieser Serie erfahren Sie, wie Sie Pageviews und Visits einer Ihrer Website abfragen können.

Abonnieren Sie den News-Feed, um weitere Artikel in dieser Serie nicht zu verpassen.

Google Analytics API mit PHP - Teil 1: Authentifizierung

So können Sie die Google Analytics Daten per PHP mit der Data Export API abfragen.

Vor wenigen Tagen hat Google nach langer Zeit endlich eine Schnittstelle für den Web-Analytics-Dienst Google Analytics zur Verfügung gestellt. Mit der Data Export API können Sie die gespeicherten Daten abfragen.

Google stellt dafür bereits vorgefertigte Clients für Java und JavaScript zur Verfügung. Bisher gibt es jedoch keine Bibliothek für Abfragen mit PHP.

Im ersten Teil der Serie möchte ich die Authentifizierung bei Google vorstellen. Diese ist notwendig um die Account-Daten und Statistiken abzufragen.

Für die Authentifizierung ist es notwendig die Daten an Google per HTTP-Post zu übertragen. Es gibt unterschiedliche Möglichkeiten dies umzusetzen. Ich habe mich für das PEAR-Paket HTTP_Request entschieden. Sie sollten es Ihrer PEAR-Installation hinzufügen. Im Anschluss können Sie es folgendermaßen in Ihrem Script nutzen.

require_once('HTTP/Request.php');

Um sich nun bei Google zu authentifizieren, müssen Sie den Nutzernamen und Ihr Google Analytics Passwort wissen. Zusammen mit einem festgelegten Service- und Account-Typ müssen Sie alle Parameter per POST an Google senden. Folgender Code übernimmt dies:

$AUTH_URL 	= 'https://www.google.com/accounts/ClientLogin';

$email 		= 'ihremail@domain.com';
$password 	= 'ihrpasswort'

// neues Request-Objekt erstellen
$req = new HTTP_Request($AUTH_URL);
$req->setMethod(HTTP_REQUEST_METHOD_POST);

// Parameter hinzufügen
$req->addPostData('Email',        $email);
$req->addPostData('Passwd',       $password);

$req->addPostData('accountType',  'GOOGLE');
$req->addPostData('service',      'analytics');
$req->addPostData('source',       'meshed.de-test-0.1');

// Request senden
$response = $req->sendRequest();

Wenn Sie nun der Request absendet haben und Sie sich erfolgreich authentifizieren konnten, erhalten Sie als Response eine Nachricht die aus drei Zeilen besteht. Darin ist auch das sogenannte Auth-Token enthalten. Sie benötigen dies um alle weiteren Abfragen an den Account durchzuführen.

Der folgende Code zeigt, wie Sie das Auth-Token aus dem Response-Body auslesen können.

$authArray = array();

// Zeilen des Responses in Array speichern
$lines = explode("\n",$req->getResponseBody());

// Zeilen durchgehen
foreach ($lines as $line) {

  // Schlüssel vom Wert trennen
  $keyValue = explode("=", $line);

  $key = $keyValue[0];
  $value = $keyValue[1];

  // Daten in Array schreiben
  $authArray[$key] = $value;   

}

// Auth-Token ermitteln
$auth = $authArray['Auth'];

In der Variable $auth ist nun der Auth-Token gespeichert.

In dem nächsten Teil der Serie erkläre ich Ihnen, wie Sie Ihre Google-Analytics Kontodaten abfragen können.

Abonnieren Sie meinen News-Feed, um die folgenden Artikel zur Google Analytics API nicht zu verpassen.

Redaxo 4.2.0 veröffentlicht

Seit heute steht die neue Version des Content-Management-Systems Redaxo zur Verfügung.

redaxo-4-2-0

Das Redaxo-Entwickler-Team hat heute die aktuelle Version von Redaxo freigegeben. Sie haben viele interessante Neuerungen umgesetzt. Hier ein Auszug aus der Presseinformation:

  • Neues Backenddesign
  • Eigene Designs leicht im Backend integrierbar
  • Den Spalten kann man unterschiedliche Module zuweisen -> mehr Einfluss auf den Redakteur
  • Eigenes Backendprofil verfügbar, Sprachwechsel ist erlaubt
  • Benutzerverwaltung: Startseite ist definierbar, unnötige Rechte entfernt
  • Kleinere Bugfixes eingebaut

Wie auf dem Screenshot zu erkennen, sieht das neue Backend wirklich frischer und übersichtlicher aus. Alle Informationen zur neuen Redaxo-Version gibt es auf der Website.

Abonnieren Sie den meshed News-Feed für weitere interessante Artikel zum Thema Redaxo.