Google Analytics API: report lekérdezés

Nagyjából mindenki ismeri a Google Analytics-et. Nagyon hasznos és tényleg sok energia lehet benne, mint fejlesztés. Szinte minden weboldallal rendelkező használja, mert nagyon hasznos információkat tud adni. Mennyien nézték az oldalt, honnan, mikor, mennyi ideig voltak ott és még sok, nagyon sok más információt.

Ez a cikk most arról fog szólni, hogy miként lehet ezeket az adatokat magunknak lekérdezni. Milyen hasznos lenne, ha nem kellene megírni egy “legtöbbet nézett” oldal listához, hogy mennyien nézték meg, ebből mennyi egyedi, visszatérő és hasonló. Nagyon összetett tud lenni egy ilyen, főleg ha nem csak azt akarjuk számolni, hogy hány oldalbetöltés volt.

Google API konzol

Először is szükségünk lesz egy projektre a Google API konzolon. Itt létrehozunk egy új projektet, aminek van egy neve és egy kódneve. A kódnév nagyjából midnegy 🙂 A név meg elsősorban akkor fontos, ha Google+ bejelentkezéshez is használjuk, de amúgy sem hátrány, ha felismerhető nevet adunk neki, mert később ez alapján találjuk meg a listában.

Ha megvan, akkor az APIs & Auth menüpontban az APIs almenüben keressük meg a Analytics API elemet és mellette a jobb oldali OFF gombra kattintva aktiváljuk. Itt látható, hogy naponta 50.000 kérést indíthatunk ilyen céllal. Ez a szám nem kicsi.

Ezek után menjünk át a Credentials menüpontra, ahol legalább egy OAuth2 kulcsunk már van. Ez most nem fog kelleni, mert nekünk szerver oldali kell. Hozzunk létre egy új azonosítót a Create New Client ID gombbal. Szép nagy és piros, szóval nehéz nem észrevenni.

Create New Client ID

Itt válasszuk a Server Account-t, mert nekünk ugye ez kell. Le fog tölteni egy fájlt és ad egy szép ablakot kiírást mellé. A fájl egy .p12 kiterjesztésű kulcs. Ez nagyon fontos és jobb nem elveszíteni, mert később csak újragenerálással lehet hozzájutni, ami azt jelenti, hogy minden alkalmazásnál le kell cserélni, ahol ez használva van. Kiírja, hogy notasecret a jelszó a kulcshoz. Ez mindegy, mert mindenhol ez 🙂 Később valószínűleg lesz hozzá generálva külön-külön, de most még nincs.

A kulcson kívül kapunk még 3 adatot, amiből kettő fog kelleni. Az egyik a Client ID, ami valahogyan így néz ki: xxx-xxx.apps.googleusercontent.com. A másik pedig egy emailcím: xxx-xxx@developer.gserviceaccount.com. A harmadik egy ujjlenyomat a kulcsfájlhoz.

A emailcímet adjuk hozzá a Google Analytics fiókhoz, amihez használni szeretnénk. Elég csak ahhoz hozzáadni, mint felhasználó, amelyikhez szeretnénk, hogy hozzáférjen. Nem is kell neki több jog, mint a sima read-only.

Google Client

A Google egy igen terjedelmes kódbázist ad nekünk Google APIs Client Libraries néven. Ez elérhető elég sok nyelvre és mi most ezekből a PHP-s verziót fogjuk használni. Töltsük le, csomagoljuk ki. Nekem a példa projekt struktúrán így néz ki, amit használni fogok:

0

Az érdekes rész ebből ugyebár a kérés összeállítás, ami teljesen logikus 🙂 Nagy segítséget tud adni a Google Analytics Query Explorer. Innen akár mindent ki is lehet másolni.

Az Analytics ID-t vagy a fenti Explorer-ből vagy az Analytics felületés az általános beállításoknál lehet megtalálni View ID néven. Ez kötelező érték, ahogyan a kezdeti és végdátum is. Utóbbit csimán a date függvénnyel hoztam létre az jelenlegi hónapot a mai napig. Ezen kívül a Metrics, ami még kötelező. Legalább egy érték kell, mert hát valamit csak le akarunk kérdezni.

A többi opcionális. Ilyen például a rendezés, dimenziók, filterek vagy szegmensek. Jelen esetben minket az érdekel, hogy ebben a hónapban hogyan teljesítenek a múlt havi cikkek. Bontsuk akkor fel picit.

Az intervallum az aktuális hónap első napjától, az aktuális napig.

1

Szeretnénk kikérdezni a látogatások számát (session alapú), az oldalmegtekintéseket, mennyi időt töltöttek az oldalon és mekkora százalékben mentek el a látogatók ahelyett, hogy szétnéztek volna az oldalon.

2

Bontani pedig az oldal címe és urlje alapján szeretnénk. Jelen esetben ez nem okoz duplikációt, mert ugye elvileg az egyedi. Akkor okoz úgymond duplikációt vagyis inkább nagyobb bontást, ha mondjuk a címet és a forrást (source) szeretnénk. Egy oldalra ugyanis több forrásból érkezhetnek, tehát egy oldalhoz több sor fog tartozni.

3

Nekünk csak azok az oldalak kellenek, amiknek a webcíme illeszkedik a megadott mintára, vagyis az előző hónapban publikált cikkek.

4

Mindezt persze rendezzük látogatások alapján csökkenőbe. Ha fel akarjuk dolgozni és mindent lekérdezünk, akkor nem sok értelme van. Jelen esetben szinte semmi 🙂 Akkor van haszna, ha nem akarunk mindent megkapni, csak mondjuk a leglátogatottabb 100 oldalt.

5

Beállítunk egy limitet, ami jelen esetben 10.000, ami a maximális érték. Lehet léptetni, tehát megadható a start-index értékkel, hogy honnan induljon, így lekérdezhető az úgymond második illetve sokadik oldala is a kérésnek.

6

Összegzés

Nagyon kényelmesé vált az évek során ez a felület. Sok más dologra alkalmas még, most csak megpróbáltam egy minimális betekintést adni, hogy miként is működik. Remélem hasznos volt. Ha van bármilyen más szolgáltatás, aminek az API használatáshoz érdekelne egy hasonló leírás, akkor írd meg (jelezd bárhol, mondjuk kommentben vagy ahol megtalálsz) és igyekszem összedobni egyet. Elég nagy számban használom ezeket. Van olyan projektem, amiben több mint 20 szolgáltatás van bekapcsolva és ugyebár használva is (csak úgy viccből minek kapcsoljam be).

Kapcsolódó cikkek:

Balazs Nadasdi

Developer, Project Manager, Blogger, Dad... or sometihng like these