Google Analytics kiszolgálása saját tárhelyről előnézeti képe

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

| Olvasási idő: 2 perc

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. 

html
<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-XXXXXXXX-Y', 'auto');
ga('send', 'pageview');
</script>
<!-- End Google Analytics -->

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: 

php
<?php
/*
Plugin Name: Enqueue Analytics.js for WordPress
Plugin URI: https://www.webmenedzser.hu
Description: Load Analytics.js for WordPress site
Version: 1.0
Author: Radics Ottó
Author URI: https://www.webmenedzser.hu
License: GPL2
*/

function enqueue_analytics_js() {
    wp_enqueue_script( 'google-analytics', WP_CONTENT_URL . '/mu-plugins/analytics.js', array(), '1.0.0', true );

    wp_enqueue_script( 'analytics-tracking', WP_CONTENT_URL . '/mu-plugins/analytics-tracking.js', array('google-analytics'), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'enqueue_analytics_js' );

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: 

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.a-te-honlapod-cime.hu/wp-content/mu-plugins/analytics.js','ga');

ga('create', 'UA-XXXXXXXX-Y', 'auto');
ga('send', 'pageview');

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

bash
curl https://www.google-analytics.com/analytics.js > {TELJES_PATH_A_WP_INSTALLHOZ}/wp-content/mu-plugins/analytics.js

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. 

bash
0 3 * * * curl https://www.google-analytics.com/analytics.js > {TELJES_PATH_A_WP_INSTALLHOZ}/wp-content/mu-plugins/analytics.js

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