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.
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:dxp="http://schemas.google.com/analytics/2009"> <id>http://www.google.com/analytics/feeds/accounts/YOURID</id> <updated>2009-03-21T07:46:38.000-07:00</updated> <title type="text">Profile list for YOURNAME</title> <link rel="self" type="application/atom+xml" href="http://www.google.com/analytics/feeds/accounts/default"/> <author> <name>Google Analytics</name> </author> <generator version="1.0">Google Analytics</generator> <openSearch:totalResults>14</openSearch:totalResults> <openSearch:startIndex>1</openSearch:startIndex> <openSearch:itemsPerPage>14</openSearch:itemsPerPage> <entry> <id>http://www.google.com/analytics/feeds/accounts/ga:0001</id> <updated>2009-01-30T09:06:56.000-08:00</updated> <title type="text">www.yourdomain.de</title> <link rel="alternate" type="text/html" href="http://www.google.com/analytics"/> <dxp:tableId>ga:0001</dxp:tableId> <dxp:property name="ga:accountId" value="00002" /> <dxp:property name="ga:accountName" value="www.yourdomain.de" /> <dxp:property name="ga:profileId" value="00002" /> <dxp:property name="ga:webPropertyId" value="UA-00001-1" /> </entry> <entry> ... </entry> </feed>
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.
Diskussion
Hallo!
Finde den Artikel sehr interessant und habe ihn gleich getestet! Funzt wunderbar. Nur woltle ich jetzt schon einen Schritt weiter gehen und gezielte Daten abfragen. AUs meiner empfangen XMl habe ich mir die Profilid gefischt und schicke dann ein Paket mit dieser ID und einem Datumbereich an https://www.google.com/analytics/feeds/data. Vorher noch eine Authorisirung mit addHeader(‘Authorization’, ‘GoogleLogin auth=’.$authkey). Leider empfange ich keien XML von google! Kann mir wer helfen!? Vielen Dank!!!
Hallo! Wissen sie denn schon wann sie den 3 Tei lveröffentlichen? Vielen Dank!
Hy
Bin auch schon ganz heiss auf den 3. Teil. Bislang klappt es super.
Danke schonmal
Teil 3 kommt wohl nicht mehr?
[…] dem nächsten Teil der Serie erkläre ich Ihnen, wie Sie Ihre Google-Analytics Kontodaten abfragen […]