code-laboratory.com jest blogiem poświęconym w całości programowaniu oraz technologiom internetowym. Znajdziesz tutaj kod, gotowy do wykorzystania w twoich projektach.

Google Analytics Api z Zend_Gdata_Analytics

Napisane: Marzec 3rd, 2011 | Kategoria: php | Tagi: , , , | 1 Comment »

Życie zmusiło mnie do zainteresowania się pobieraniem danych z Google Analytics do zewnętrznej aplikacji. Zend Framework ma wbudowane klasy do serwisów Google, jednak nie było tam Analytics. Szybko okazało się, że jest biblioteka, którą ktoś napisał – Zend_Gdata_Analytics. Jest to zbiór kilku małych klas, które trzeba dograć do biblioteki Zenda. Z początku miałem mały problem na localhoscie. Wystarczyło nadać odpowiednie prawa plikom przez chmod -R 777 ~/localhost/zendframework/library/Zend i klasy już zaczęły być widoczne.

Autoryzacja

Na początek trzeba się przedstawić:

$login = ‚xxxxx@gmail.com’;
$pass = ‚*******’;
$profile_id = ’12345678′;

$client = Zend_Gdata_ClientLogin::getHttpClient(
$login, $pass, Zend_Gdata_Analytics::AUTH_SERVICE_NAME
);
$service = new Zend_Gdata_Analytics($client);

Login i hasło to poprostu dane dostępowe do konta Google. Id profilu to NIE jest UA-123… – trzeba wejść do analytics i w linku „Wyświetl raport” jest parametr id. To jest właśnie id profilu, który trzeba podać. Dane powyżej najlepiej przechowywać w konfiguracji – najczęściej w pliku ini.

Zapytanie

Żeby dostać dane ze statystyk analytics to najpierw trzeba napisać zapytanie.

$query = $service->newDataQuery()
->setProfileId($profile_id)
->addDimension(Zend_Gdata_Analytics_DataQuery::DIMENSION_PAGE_PATH)
->addMetric(Zend_Gdata_Analytics_DataQuery::METRIC_VISITS)
->addMetric(Zend_Gdata_Analytics_DataQuery::METRIC_PAGEVIEWS)
->setStartDate( date(‚Y-m-d’, strtotime(’2011-02-01′)) )
->setEndDate( date(‚Y-m-d’, strtotime(’2011-03-01′)) )
->setSort(Zend_Gdata_Analytics_DataQuery::METRIC_VISITS, true)
->setMaxResults(20)
->setParam(‚filters’,'ga:pagePath=~.*ciasta.*’);

$result = $service->getDataFeed($query);

Zapytanie jest proste i chyba nie trzeba wiele tłumaczyć ;) Warto odnotować, że zapytanie jest konwertowane na url. Lista wszystkich parametrów „Dimensions & Metrics” jest w dokumentacji. W bibliotece nie znalazłem nic na temat filtrowania. Obiekt Zend_Gdata_Analytics_DataQuery ($query) dziedziczy z Zend_Gdata_Query i dzięki temu można było wywołać metodę setParam(‚filters’,'ga:pagePath=~.*ciasta.*’) która wyrażeniem regularnym wyfiltrowała wszystkie urle zawierające słowo „ciasta”. Więcej na temat filtrów w dokumenatcji

Przedstawienie wyniku

Z wynikiem można zrobić wiele rzeczy. Można użyć go w CMS’ie np. cache’ować i przedstawiać w formie ładnych wykresów ;) Tutaj wypisałem url — liczba wizyt — liczba odsłon. W pliku Zend/Gdata/Analytics/DataQuery.php jest lista co odrazu można użyć w zapytaniach. Czego nie ma to trzeba posiłkować się metodą setParam(..) i ręcznie kombinować ;)

foreach($result as $row){
echo $row->title . ‚ — ‚;
echo $row->getMetric(Zend_Gdata_Analytics_DataQuery::METRIC_VISITS) . ‚ — ‚;
echo $row->getMetric(Zend_Gdata_Analytics_DataQuery::METRIC_PAGEVIEWS);
echo ‚<br/>’;
}


1 komentarz na “Google Analytics Api z Zend_Gdata_Analytics”

  1. 1 Web development Moldova napisał(a) 5:38, Lipiec 12th, 2011:

    Thanks for the interesting information. Subscribe to rss

Zostaw komentarz

  • Anti-Spam Quiz: