Google Analytics API – Teil 2
Google Analytics hat eine spezielle Hierarchie in der man einzalne Webseiten einordnen kann. In diesem Artikel geht es um das Auslesen dieser Hierarchie über die API. Nachdem wir bereits über das Login gekommen sind haben wir im ersten Teil der Artikelreihe auch bereits ein AnalyticsService Objekt erstellt. Damit können wir nun gezielt Daten abfragen.
Google Analytics Hierarchie
Bevor wir nun tatsächlich statistisch relevante Daten abfragen müssen wir und noch mit der Hierarchie eines Analytic Kontos vertraut machen.
Ein Konto ist in 3 Ebenen gegliedert:
- Account
ein Account wird über eine eindeutige Analytics ID repräsentiert. Dieses Ebene gibt es deshalb, da man mehrere Analytics Konten zu einem zusammenfügen kann. Normalerweise hat man nur ein Account mit der selben Analytics ID die man schon beim Login angegeben hat. - Webproperty
- Profil
das Profil ist die unterste Ebene der Hierarchie und beinhaltet nun die tatsächlichen Daten.
Diese Bezeichnungen beziehungsweise Analytics Hierarchie Stufen kennen die meisten von euch. Man definiert diese bereits übder das Google Tool. Für eine einfache Webseite ist das meist zu komplex und der Benutzer fragt sich vermutlich warum das so kompliziert aufgebaut ist. Für eine SEO Agentur die hunderte Seiten verwaltet macht diese Hierarchie aber Sinn. Abrufen können wir diese Hierarchieebenen folgendermaßen:
//get Accounts $accounts = $analytics->management_accounts->listManagementAccounts(); $a_items = $accounts->getItems(); echo count($a_items)." Accounts<br>"; if(count($a_items)!=0) { foreach($a_items as $account) { echo 'Account ID: '.$account->getID().'<br>'; echo 'Account Name: '.$account->getName().'<br>'; //get web properties $webProperties = $analytics->management_webproperties->listManagementWebproperties($account->getID()); $w_items = $webProperties->getItems(); echo count($w_items)." Webproperties<br>"; if(count($w_items)!=0) { foreach($w_items as $webproperty) { echo '*Webproperty ID: '.$webproperty->getId().'<br>'; echo '*Webproperty Name: '.$webproperty->getName().'<br>'; //get profiles $profiles = $analytics->management_profiles->listManagementProfiles($account->getID(), $webproperty->getId()); $p_items = $profiles->getItems(); //get analytics data } } } }
Wie man im PHP Code sehr gut sehen kann holt man sich immer ein Element und geht danach in einer Schleife die darunter liegende Hierarchie Ebene Element für Element durch. Hat man schließlich das Profil erreicht, so kann man dessen Daten abrufen. Wie das geht zeige ich im nächsten Teil.
Funktioniert leider bei mir nicht. Auch wenn ich die „visits“ in den neuen Messwert sessions umwandel, bekomme ich diesen Fehler im Brwoser
Warning: Missing argument 1 for Google_Client::authenticate(), called in /data/kunden/cylab/BH/produktion/web/htdocs_final/start.php on line 21 and defined in /data/kunden/cylab/BH/produktion/web/htdocs_final/GoogleClientApi/src/Google/Client.php on line 125
Fatal error: Uncaught exception ‚Google_Auth_Exception‘ with message ‚Invalid code‘ in /data/kunden/cylab/BH/produktion/web/htdocs_final/GoogleClientApi/src/Google/Auth/OAuth2.php:88 Stack trace: #0 /data/kunden/cylab/BH/produktion/web/htdocs_final/GoogleClientApi/src/Google/Client.php(128): Google_Auth_OAuth2->authenticate(NULL, false) #1 /data/kunden/cylab/BH/produktion/web/htdocs_final/start.php(21): Google_Client->authenticate() #2 {main} thrown in /data/kunden/cylab/BH/produktion/web/htdocs_final/GoogleClientApi/src/Google/Auth/OAuth2.php on line 88
Google ändert die API laufend, mein Artikel ist leider schon etwas älter. Offenbar muss man der authenticate Funktion einen Parameter übergeben. Bitte in der Doku nachlesen, sollte dort stehen.