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.
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
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?