Google PHP API ile Real Time Analytics Bilgilerini Almak

Merhaba arkadaşlar, Google’ın bize sunmuş olduğu beta olarak kullandığımız PHP API’yi kullanarak real time analytics bilgilerini nasıl alacağımızı öğreneceğiz. Hadi başlayalım.

1. Adım (Proje oluşturmak)

Öncelikle https://console.cloud.google.com adresine giriyoruz ve yeni proje oluştur diyerek bir isim belirleyip projemizi oluşturuyoruz.

Daha sonra sol menüden Kitaplık bölümüne giriyoruz. İlgili link: https://console.cloud.google.com/apis/library

Analytics diye aratıp Analytics API’yı buluyoruz ve içine girip aktif et diyoruz.

Aktif ettikten sonra yine sol menüden tekrardan Kimlik bilgileri kısmına giriyoruz. İlgili link: https://console.cloud.google.com/apis/credentials

Burada bir tane “Hizmet hesabı anahtarı” oluşturuyoruz.

Açılan sayfada yeni hizmet hesabı deyip bir hesap adı belirleyin. Ve alttaki anahtar türünün json olduğundan emin olun. Diğerlerine dokunmanıza gerek yok. Oluştur deyin, çıkan uyarıda da yine rolsüz oluştur deyin. Oluşturma işlemi bittiğinde bir json dosyası indirilecek otomatik olarak. Onu saklayın, çünkü google’ın cloud servislerine bağlanmak için onu kullanacaksınız.

Şimdi sol menüden IAM ve yönetici > Hizmet hesapları kısmına girin. Orada bir e-posta adresi göreceksiniz. Bu az önce hizmet hesabı oluştururken oluşan e-posta adresimiz. Onu kopyalayın ve bir sonraki adıma geçin.

2. Adım (Analytics Ayarları)

Şimdi Google Analytics’e girelim. Sol altta Admin ya da ayarlar simgesi var ona tıklayalım. Burada bir önceki adımda kopyaladığımız e-posta adresini üyeler kısmından eklememiz gerekiyor. Ayarlara girdiğinizde, view altındaki “User Management” kısmına tıklayın.

Ve buradan sağ üstteki + butonuna basıp add new user diyoruz. açılan sayfada kopyaladığımız e-posta adresini girip add diyoruz hepsi bu.

Son olarak hangi analytics hesabını kullanacaksanız, yine ayarlar bölümünde view altındaki “View Settings’e girin ve oradaki View ID’nizi kopyalayın, lazım olacak 🙂

3. Adım (Google PHP API Kurulumu & Kullanımı)

Google’ın beta olarak yayınladığı PHP API linki aşağıdadır.
https://github.com/googleapis/google-api-php-client

Şimdi zaten github sayfasında da anlatılıyor. Ya Composer ile kurun ya da son release edilen versiyonunu indirin diyor. Buna göre istediğiniz şekilde indirebilirsiniz. Her iki yoldada bir adet vendor klasörünüz olacak ve bunun içindeki autoload.php’yi sayfamıza dahil edeceğiz. Ayrıca json dosyası olarak indirdiğimiz dosyayıda projenize dahil edin. Şimdi gelelim asıl işi yapan kodlarımıza;

require __DIR__ . '/vendor/autoload.php';

$viewId = 'XXXX'; // sizin kopyaladığınız analytics id'niz

$client = new Google_Client();
$client->setAuthConfig(__DIR__ . '/sizindosyaniz.json');
$client->setScopes([
    'https://www.googleapis.com/auth/analytics.readonly'
]);

$analytics = new Google_Service_Analytics($client);

$result = $analytics->data_realtime->get(
    'ga:' . $viewId,
    'rt:activeVisitors',
    [
        'dimensions' => 'rt:pagePath,rt:country,rt:city,rt:longitude,rt:latitude'
    ]
);

$arr = [
    'online' => $result->getTotalResults(),
    'data' => $result->getRows()
];

echo json_encode($arr);

Bunun sonucunda aşağıdaki gibi bir sonuç elde edeceksiniz.

Artık istek attığınız zaman, anlık olarak o zamana ait güncel bilgileri çekebilirsiniz. Tabi PHP kullandığımız için sayfa yenilemeden anlık bilgileri güncelleme vs. yapamıyoruz. Ama en basit yöntem olan polling ajax yöntemini kullanabiliriz. Yani her 2-3 sn’de bir istek yapıp yeni bilgileri ekrana yazdırabiliriz. Bunun için şu şekilde bir kod yeterli;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
    <script>
        function getRealtimeData() {
            $.post('realtime-analytics.php', {}, function (response) {
                $('#online-users').text(response.online);
                $('#online-users-data').html('');
                $.each(response.data, function (key, val) {
                    $('#online-users-data').append('<li>' +
                        'Sayfa: ' + (val[0]) + ' <br> ' +
                        'Lokasyon: ' + (val[1] + '/' + val[2]) + '<br>' +
                        'Kaç Kişi: ' + (val[5]) +
                        '</li>');
                });
                console.log('çalıştı!');
            }, 'json');
        }

        getRealtimeData();
        setInterval(getRealtimeData, 1000);
    </script>
</head>
<body>

<div id="realtime-data">
    <h3>
        Online <span id="online-users"></span> kişi var
    </h3>
    <ul id="online-users-data"></ul>
</div>

</body>
</html>

Burada ben php işlemi yaptığım dosyamın adını realtime-analytics.php olarak belirledim, siz kendinize göre düzeltirsiniz.

Hepsi bu kadar, umarım açıklayıcı olmuştur 🙂

Yazar: Tayfun Erbilen

2009'dan beri web işleriyle uğraşan, aynı zamanda amatör müziklede ilgilenen sıradan birisi..

“Google PHP API ile Real Time Analytics Bilgilerini Almak” için 2 yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.