Google Analytics a PHP

Aplikace Google Analytics dnes analyzuje velké množství webových stránek a aplikací, neboť nabízí kvalitní přehledy pro vyhodnocování návštěvnosti, konverzí a e-commerce.

logo Google Analytics Při práci na svém webu jsem přemýšel nad tím, jak data nasbíraná pomocí Google Analytics využít k obohacení obsahu na svém webu. Napadla mě jednoduchá věc, ač jsem věděl, že nevymýšlím nic převratného - využít data pro indikace čtenosti článků, využití prohlížečů a k dalším interním statistikám.

Protože používám pro programování PHP 5.3, postupy shrnuji pro tento jazyk. Ze začátku jsem přemýšlel o napsání vlastní knihovny, která by export dat z Google Analytics zajišťovala, ale rozhodl jsem se použít hotové řešení v podobě GAPI - Google Analytics PHP interface.

GAPI - Google Analytics PHP interface

Google Analytics Knihovna GAPI je volně stažitelná na Google Code. Umožňuje export dat z vašeho účtu Google Analytics s možnosti jednoduchých i složitých filtrů. Výhodou je, že tato knihovna vrací data jako PHP objekty, takže s výsledky je jednoduchá manipulace.

Knihovna nepodporuje přihlašování pomocí oAuth a proto se hodí pro automatizované úlohy. Pro takové případy je vhodné využít účet Google Analytics bez administrátorských práv.

Proč použít právě GAPI

  • Podporuje cURL a přístup přes metodu fopen HTTP - díky autodetekci tak můžete GAPI využívat i na serveru bez cURL.
  • PHP5 objekty pro výsledky.
  • Jednoduché filtrování.
  • Metody pro získávání výsledků.
  • Dostačující dokumentace pro použití.

Více informací naleznete na stránce knihovny GAPI na Google Code.

Jak načíst data z Google Analytics v PHP

Předpokládám, že máte webový server s funkčním PHP. Pokud chcete načíst data z Google Analytics do vaší PHP aplikace, budete potřebovat:

  • Staženou knihovnu GAPI
  • PHP soubor
  • Přihlašovací údaje pro přístup do GA účtu
  • Metriky a dimenze, které budete z GA načítat
  • A případně filtrovací parametry

Samotná implementace knihovny je velice jednoduchá:

<?php

// načtení knihovny gapi
require('gapi.class.php');

// vytvoření nové instance a přihlášení k účtu
$gapi = new gapi(PRIHLASOVACI JMENO, PRIHLASOVACI HESLO);

// vytvoření požadavku na načtení dat
$gapi->requestReportData(CISLO PROFILU, DIMENZE, METRIKY, RAZENI PODLE, FILTROVACI KRITERIA, DATUM OD, DATUM_DO, VYCHOZI POZICE, POCET VYSLEDKU);

?>

Požadavek na načtení dat bude obsahovat tyto parametry:

  • Číslo profilu - shodné s čílem profilu v Google Analytics, např. 1892302.
  • Dimenze - zadává se jako pole dimenzí, stejné jako v případě dimenzí Google Analytics, např. browser, browserVersion.
  • Metriky - zadává se jako pole metrik, stejné jako v případě metrik Google Analytics, např. visits, pageviews.
  • Řazení - podle které metriky budou výsledky seřazené. V případě sestupného řazení se před metriku přidá “-”, např. -visits, pageviews.
  • Filtrovací kritéria - podle kterých kritérií se výsledky budou filtrovat, je potřeba správně používat operátory, např. “browser == Internet Explorer”.
  • Datum od - od jakého data budou výsledky načteny, zadává se ve tvaru YYYY-MM-DD.
  • Datum do - do jakého data budou výsledky načteny, zadává se ve tvaru YYYY-MM-DD.
  • Výchozí pozice - výchozí pozice výsledků, funguje jako číslo řádku v Google Analytics.
  • Počet výsledků - celkový počet načtených výsledků.

Protože Google Analytics API má svá omezení, je vhodné pro početnější výsledky využívat kombinaci výchozí pozice s počtem výsledků a vytvořit si tzv. stránkování výsledků.

Pro přehled všech dimenzí a metrik se podívejte na stránku dokumentace Dimensions & Metrics Reference.

Příklad - jak načíst data o prohlížeči Internet Explorer

Představme si situaci, kdy chceme do aplikace načíst data o verzích prohlížeče Internet Explorer, které návštěvníci na webu používají. Pro jednotlivé prohlížeče chceme zjistit:

  • Název prohlížeče (pro kontrolu, ale nemusí být),
  • Verzi prohlížeče,
  • Počet uskutečněných návštěv s každou verzí prohlížeče.

Zajímají nás především počty návštěv a proto výsledky seřadíme sestupně podle počtu návštěv. Pro ilustraci chceme vypsat data za poslední dva roky.

Sestavíme tedy jednoduchý dotaz:

<?php

// načtení knihovny gapi
require('gapi.class.php');

// vytvoření nové instance a přihlášení k účtu
$gapi = new gapi(PRIHLASOVACI_JMENO, PRIHLASOVACI_HESLO);

// vytvoření požadavku na načtení dat o prohlížeči
$gapi->requestReportData(CISLO_PROFILU, array('browser', 'browserVersion'), array('visits'), '-visits', 'browser == Internet Explorer', 2010-01-01, 2012-01-01);

?>

Do proměnné $gapi jsme načetli výsledky a nyní je můžeme vypsat pomocí iterace:

<?php

foreach($gapi->getResults as $result){
	echo '

Prohlížeč: '.$result->getBrowser().' '.$result->getBrowserVersion(); echo 'Návštěvy: '.$result->getVisits().'

'; } ?>

Takto jsme na stránku jednoduše vypsali požadované informace o verzích prohlížeče Internet Explorer.

Pro přehled je dobré vědět samotnou podobu výsledku, například vypsanou pomocí funkce var_dump():

array(4) [
   0 => gapiReportEntry(2) {
      "metrics" private => array(2) {
         "pageviews" => 1234
         "visits" => 789
      }
      "dimensions" private => array(2) {
         "browser" => "Internet Explorer" (17)
         "browserVersion" => "8.0" (3)
      }
   }
   1 => gapiReportEntry(2) {
      "metrics" private => array(2) {
         "pageviews" => 246
         "visits" => 101
      }
      "dimensions" private => array(2) {
         "browser" => "Internet Explorer" (17)
         "browserVersion" => "9.0" (3)
      }
   }
]

Implementace i samotné používání GAPI je velice jednoduché. Je potřeba myslet na zmíněná omezení Google Analytics a pro časté dotazování data ukládat do mezipaměti.

Slovo závěrem

V případě využíti napojení Google Analytics s PHP aplikací získáte další možnosti pro váš web v podstatě zadarmo. Můžete si vybudovat vlastní interní statistiky nebo vlastní nadstavbu nad Google Analytics pro lepší přehlednost.

Všechny zdrojové kódy, které jsem v článku uvedl, jsou ukázkové a je to nástin postupu, jak implementace načítání dat funguje.

Používáte Google Analytics? Přemýšleli jste někdy nad spojením této aplikace s vlastním webem?


Sdílejte článek



Michal Maňák

Jmenuji se Michal Maňák, jsem interaction designer a ux specialista.

Pracuji ve společnosti GoodData.