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 služby 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?

Komentáře

  1. Článek hezký, přesně co jsem hledal ale když už jsem vše rozchodil bez chyb tak mam teď prázdnou stránku (gapi nevypisuje žádný výstup zdá se, protože foreach neproběhne), neví někdo čím by to mohlo být?

  2. Michal Maňák: Velice děkuji za ochotu, krátce po přečtení komentáře mne řešení napadlo. Netušil jsem, že účet pro GA byl založen krátce před napsáním mého kódu a vzhledem k tomu že to nevypisuje žádnou hlavičku mi nic nenapsalo kvůli špatné volbě rozmezí datumů.

  3. Super knihovna, nicmene dlouhodobe bez podpory a nyni vraci nerealna a tak nepouzitelna data. Svepomoci jsem si na ni opravil drobne chyby (nove adresy pro posilani requestu diky novemu googleapis 2.4 a nejake drobne chybky ve filtrovani) ktere postupem casu nastali nicmene na tohle asi uz nestacim.
    Proto bych se rad zeptal jestli nekdo vi nebo nevyvyji nejakou knihovnu podobneho typu kde neni treba vymyslet a nastavovat zbytecne slozite google ucet pro prihlasovano pres oauth.

  4. Sit: návod přestal fungovat? Pokusím se to co nejdříve ověřit a případně návod upravit.

    Co si představujete pod podrobnějším návodem? Klidně by se pak něco podrobnějšího dalo napsat :).

  5. Děkuji za přehledný návod, statistiky jsem si napojil na grafy a vše funguje jak má. Chvíli jsem akorát vkládal nesprávné ID (číslo profilu), nakonec jsem správné našel zde: Správce / Zobrazení / Nastavení zobrazení

Napsat komentář