Php ile Google Analytics Verilerini Web Sayfamıza Çekmek
Geçen aylar eski Analytics metodları geçerliliğini yitirince müşterilerimizin admin(yönetim) panellerini güncelledik.Konu hafızamızda taze iken sizlerle de paylaşalım istedim, uğraşanlar bilirler eski tip sınıflar ve kütüphanelerde google analytics verileri için sizden gmail adresinizi ve şifrenizi isterlerdi buda paylaşımlı hostinglerde bilgileriniz için güvenlik zafiyeti anlamına gelebiliyordu.Google bu konuya zekice bir kaç çözüm geliştirmiş ve epeyce kolay uygulanabilirliği de cabası…
Gmail hesabınızın ve az biraz Analytics tecrübenizin olduğunu varsayarak yapmanız gereken işlemlere geçiyorum.
Google Analytics API yi aktif etmek
Google analtytics apiyi aktif etmek için ilk önce google developer console a giriş yapıyoruz
-Üst kısımda bulunan panelden Create a project e tıklayarak gelen pencereden yeni bir proje oluşturuyoruz
-Karşımıza gelen kısımdan Use Google APIs e tıklayarak hangi apıyı kullanmak istediğimizi seçiyoruz
–Analytics API seçeneğini seçiyoruz, gelen ekranda Enable API ye tıklayarak google analytics apiyi aktif hale getiriyoruz.
Apimiz aktif hale getirdik şimdi sıra apimizin erişiminde kullanacağımız email adresi, clientID ve p12 keyi oluşturmaya geldi, sol menuden API nin altındaki Credentialsa linkine tıklıyoruz
Gelen sayfada Add credentials‘ın altında bulunan Service Account a tıklıyoruz gelen sayfada 2 seçenek çıkıyor biz P12 seçeneğini seçip mail adresi ve p12 keyimizi otomatik olarak oluşturuyoruz. Bilgisayarımıza eklediğimiz proje birkac sayı ve yazıdan oluşan .p12 uzantılı bir dosya inmesi gerekir bunu saklayın daha sonra ne yapmamız gerektiğini anlatıcam
Google Analytics hesabımıza API için erişim izni vermek
Google Analytics hesabımıza girelim ve üstte yönetici sekmesine tıklayalım sırasıyla aşağıdaki resimde gördüğünüz gibi adımları takip ederek yukarıda oluşturduğumuz servisi hesabımıza erişimini tanımlayalım
Gelen sayfada izin eklemek için Analytics API de oluşturduğumuz mail adresini ekliyoruz
Tüm ayarları doğru yaptıysak işin zor kısmını bitirdik demektir şimdi eğlenceli kısma geçelim…
Google Verilerini Php Yardımıyla Alalım
Google API Php clientini linkine tıklayarak kütüphaneyi bilgisayarımıza indirelim ve kodlamaya geçelim kendimize bir tane php dosyası oluşturup aşağıdaki kodları girelim.
function getService() { // Yeni bir Analytics servis nesnesi oluşturalım ve geri döndürelim // Google API php kütüphanesini yükleyelim require_once 'google-api-php-client/src/Google/autoload.php'; // Servis Maili ve P12 dizini $service_account_email = 'Developer Console Servis Email Adresiniz'; //API de oluşturduğumuz mail adresini yazın $key_file_location = 'p12 keyinizin dizini bu dosyayla aynıysa dosyaismi.p12'; //p12 keyi kütüphanenin içine atmayı unutmayın yoksa hata alırsınız //Yeni bir client nesnesi oluşturalım $client = new Google_Client(); $client->setApplicationName("Test"); $analytics = new Google_Service_Analytics($client); // p12 keyini google autha okutalım ve yetki alalım $key = file_get_contents($key_file_location); $cred = new Google_Auth_AssertionCredentials( $service_account_email, array(Google_Service_Analytics::ANALYTICS_READONLY), $key ); $client->setAssertionCredentials($cred); if($client->getAuth()->isAccessTokenExpired()) { $client->getAuth()->refreshTokenWithAssertion($cred); } return $analytics; }
Üst kısımda yeni bir servis nesnesi oluşturduk.Bu nesne üzerinden apiye istediğimiz sorguları oluşturabiliriz.En basit haliyle son 7 gün sayfamıza giren oturumların toplamını aşağıdaki sorguyla alabiliriz
function getResults(&$analytics, $profileId) { // Apiye Oturumlar için örnek bir sorgu yollayalım return $analytics->data_ga->get( 'ga:' . $profileId, '7daysAgo', 'today', 'ga:sessions'); }
Daha Gelişmiş Bir sorgu yollayalım
- Dimensions : Veriyi hangi bazda almak istiyoruz (Örnekte günlük)
- Metrics : Hangi tür verileri almak istiyoruz (Oturumlar,Sayfa Gösterimleri)
functiongetResults(&$analytics, $profileId) { $optParams= array( 'dimensions'=> 'ga:day', 'metrics'=> 'ga:pageviews,ga:sessions' ); return$analytics->data_ga->get( 'ga:'. $profileId, '30daysAgo', 'today', 'ga:sessions',$optParams); }
Google Profile Id sini öğrenmek için analytics hesabınızdaki adres cubuğunda p den sonra gelen sayı sizin google profil id niz oluyo
Php Kodlarımız
$profile= "Google Analytics Profile Id"// ga:.... $analytics= getService(); $results= getResults($analytics, $profile); print_r($results)
3 Yorumlar
Merhabalar; kodlarınızda birçok hata aldım. Kontrol edip tekrar yüklerseniz çok sevinirim.
Merhabalar Erdem,
Öncelikle biraz geç cevap verdiğimiz için özür dileriz, malum haftanın son günü iş yoğunluğundan ancak bakabildik.Kodları ham olarak inceledik ve bir sorun bulamadık acaba kod kısmında eklenmesi gereken 4 maddeyi yaptınız mı? Bunlar ;
-Api dosyasını indirip yolunu tam olarak verdiniz mi?(Eklediğimiz dosyada mevcud bu adımı atlaya bilirsiniz)
-Developer Consoleden özel bir mail adresi oluşturdunuz mu?
-.p12 uzantılı dosyayı indirip dosya yolunu tam olarak verdiniz mi?
-Google Analytics’ten sitenizi ekleyip site profil ID yi aldınızmı?
Kodları derleyip konu altına .rar uzantılı bir dosya ekledik onu indirip yukarıdaki 4 adımı eklemeniz halinde 30 günlük Google Analytics verilerini grafiksel olarak görmeniz mümkün olacaktır. Eğer tekrar bir sıkıntı çıkar ise aldığınız hatayı yazarsanız detaylı yardım etmekten mutluluk duyarız.
Kolay gelsin İyi çalışmalar,
Mazhar DİNENTEN
Yazılım Uzmanı
Merhaba. Öncelikle elinize sağlık. Kodlar gayet sağlıklı çalışıyor. ancak daha da gelişmiş sorgular için gerekli parametreler nelerdir? Bu konuda bilgi verebilir misiniz? Örneğin aylık ziyaretçi sayısı, ziyaret edenlerin şehirleri, ülkeleri için ayrı ayrı değişkenler oluşturup bunları da grafiksel olarak göstermek istiyorum. Bunları nasıl çekebileceğim ila ilgili mümkünse örnek kod yazarak yardımcı olursanız sevinirim. İyi çalışmalar dilerim.