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 Digital Product Designer.

Pracuji ve společnosti LMC.