2019. 01. 07.
frissítve: 2022. 05. 15.
Olvasási idő: 8 perc
Plugout

Google Analytics kiszolgálása saját tárhelyről

Sokszor kapunk figyelmeztetést a sebességmérés esetén arra, ha a Google Analytics-et a Google szervereiről töltjük be: a Google a követőkódok lejárati idejét szándékosan alacsonyan tartja, hogy könnyen és gyorsan tudjon teríteni egy újabb verziót. Ez azonban hátrányokkal is jár: a kliensek nem tudják hosszú időre gyorsítótárazni ezeket az erőforrásokat - kivéve, ha mi ezt saját hatáskörbe nem vesszük és a saját szerverünkről szolgáljuk ki, mert akkor az általunk globálisan beállított szabályok vonatkoznak majd ezekre is. 


A mostani útmutatóban a következő kódrészletet fogjuk szépen "feldarabolni".

FONTOS: ez a módszer a gtag.js alapú követéssel nem fog működni, mert a gtag.js-ben "bedrótozva" található az analytics.js-re hivatkozó kód, ami így mindenképpen le fog töltődni.

A fenti követőkód az első részében behivatkozza a méréshez szükséges library-t (ami az analytics.js), majd a második felében pedig elkezdi a követést, a megadott követési adatokkal. Mi ezt a két részt külön fogjuk választani, és sablontól függetlenül fogjuk az oldalra beilleszteni, így nem kell aggódnunk azon, hogy egy sablon cserénél áttegyük a követőkódokat is.

Az alábbi kódrészletet illesszük be az mu-plugins mappában egy php fájlba, nevezzük mondjuk google-analytics.php-nek:

A második wp_enqueue_script 3. paramétere (array('google-analytics')) megadja, hogy mely handle-lel (első paraméter) rendelkező script-ek függőségei a betöltendő scriptnek, így azokat meg fogja várni a betöltéssel: vagyis ebben az esetben az analytics-tracking handle-lel rendelkező script csak a google-analytics handle-ű script után fog betölteni.

Folytassuk a wp-content/mu-plugins/analytics-tracking.js fájl tartalmával:

Ahogy látod, itt már nem a megszokott, https://www.google-analytics.com/analytics.js a hivatkozott JS fájl, hanem az általunk hosztolt verzió. Jól haladunk, már csak 1 lépés maradt hátra, mégpedig az, hogy a library-t meghatározott időnként frissítsük, hogy a Google által terített frissítések hozzánk is eljussanak. Ehhez egy cronjob-ot fogunk használni (ennek beállításának módjáról kérlek, egyeztess a tárhelyszolgáltatóddal).

A fenti parancsot tehát beállítjuk cron-nal, hogy bizonyos időközönként fusson le (ez mondjuk lehet naponta egyszer). Ha van közvetlen hozzáférésed a crontab-hoz (vagy ilyen formátumban igényli a tárhelyed a beállítást), akkor az alábbi egy pontosan így működő megoldás lesz, ami minden nap hajnali 3 órakor letölti és elhelyezi a wp-content/mu-plugins/analytics.js fájlban a Google által hosztolt analytics.js fájl tartalmát.

Működött? Gratulálok! Elakadtál? Dobj egy üzenetet, segítek!