Güncellendi Tüm Sorunlar Çözüldü

Google Analytics hepinizin bildiği gibi web sitemizin istatistiklerini tutuyor ve sitemize gelen ziyaretciler hakkında detaylı bilgiler sunuyor. Yeni yazmaya başladığım şehir protalı scripti için ilk başta bir istatistik kodu yazacaktım fakat sonra düşündüm neden google amcanın nimetlerinden faydalanmıyorum kendim yazmaya kalksam hem zaman alacak hemde giriş çıkışlar artıkca veri tabanını şişirmeye başlayacak o yüzden bende Google Analytics verilerini çekmeye karar verdim zaten mantıklı olan da buydu fakat 4-5 gün boyunca beni çok uğraştırdı google aramadığım yer kalmadı herkes eski sürüm ile ilgili paylaşımlar yapmış ondada sorun api ile giriş yapmıyor direk şifre ve e-posta adresi ile giriş yapıyor bunu da yapmak için hesap ayarlarınızdan güvenliği düşürmeniz gerekiyor buda sakıncalı açıkcası ayrıca zaten artık çalışmıyor google direk engelledi sadece api ile veri çekebilirsiniz diyor. Lafı fazla uzatmadan konuya geçelim ;

İlk olarak aşağıdaki adresten Download Zip diyerek dosyaları indirin ;

https://github.com/Winchester37/Google-Analytics-PHP-Chart

Yukardaki linkten indirdiğiniz dosyalardan index.php dosyasını açtığınızda altta verdiğim kodlar çıkacak arkadaşlar. Değişikleri aşağıda anlattığım gibi yapın. Ayrıca googleapi.class.php dosyasını açın ve 178 satırda yer alan $start_date değişkenini istediğiniz tarihten başlata bilirsiniz.

<?php
require 'googlegapi.class.php';
define('ga_profile_id','Profil idsi buraya girilecek');

$ga = new gapi("google verdiği mail adresi girilecek", "p12 uzantılı dosya yazılacak");


$ga->requestReportData(ga_profile_id, array('date', 'userDefinedValue'),array('pageviews', 'uniquePageviews', 'visits', 'visitors', 'exitRate', 'avgTimeOnPage', 'entranceBounceRate', 'newVisits'), 'date');


            $results = $ga->getResults();    
        ?>
        <script type="text/javascript" src="https://www.google.com/jsapi"></script>

        <script type="text/javascript">
            google.load("visualization", "1", {packages:["corechart"]});
            google.setOnLoadCallback(drawChart);

            function drawChart() {
                var data = new google.visualization.DataTable();
                data.addColumn('string', 'Gün');
                data.addColumn('number', 'Ziyaretci');
                data.addRows([
                    <?php
                        foreach($results as $result) {
                            echo '["'.date('M j',strtotime($result->getDate())).'", '.$result->getVisits().'],';
                        }
                    ?>
                ]);

                var chart = new google.visualization.AreaChart(document.getElementById('chart'));
                chart.draw(data, {width: 910, height: 250, title: 'Son Bir Aylık Verileriniz;',
                    colors:['#058dc7','#e6f4fa'],
                    areaOpacity: 0.1,
                    hAxis: {textPosition: 'in', showTextEvery: 5, slantedText: false, textStyle: { color: '#058dc7', fontSize: 10 } },
                    pointSize: 5,
                    legend: 'none',
                    chartArea:{left:0,top:30,width:"100%",height:"100%"}
                });
            }
        </script>

        <div id="chart"></div>

 

Kodlarda da göreceğiniz üzere 3 yeri kendinize göre değiştirmeniz gerekiyor ilk olarak “ga_profile_id” nereden bulacağınızı anlatayım Google Analytics giriş yapın. Ardından hangi sitenin verilerini çekecekseniz onu seçin, aşağıda gördüğün gibi bir adres satırı olacak orada bizim için önemli olan tek sayılar “p” harfinden sonra gelen lerdir o sayıları size verdiğim index.php içerisinde “ga_profile_id” karşısında yapıştırın.

ga_profile_id

İlk Aşama tamamlandı sıra geldi ikinci ve üncü bilinmeyenlere alt kısımdaki adrese girip Google Api yönetim paneline ulaşın ;

https://console.developers.google.com/project

Giriş yaptık dan sonra  Create Project diyin karşına küçük bir ekran çıkacak proje ismi verin örneğin sitenizin adı. Ardından Sol menüden APIs tıklayın ordan Analytics API bulup tıklayın. Ardından Enable API diyerek etkin hale getirin. Etkin Hale getirdikten sonra Sol menüden Credentials tıklayın karşınıza gelen ekran dan  “Create new Client ID” tıklayın. Tıkladık dan sonra karşınıza üç seçenek gelecek ordan Service account işaretleyip “Create Client ID” diyerek onaylayın. Onayladıktan sonra bilgisayarınıza otomatik .json uzantılı bir dosya indircek önemli değil onu silin gitsin. Bizim için önemli olan kısım altaki resimden de görüleceği gibi  “Generate new P12 key” ve “Email address” adresi kısmı “Generate new P12 key” tıkladıktan sonra otomatik bir dosya inecek onu localhostunuzdaki açtığımız google dosyasına koyun.

Service account

index.php içerisindeki aşağıdaki alanlara uygun bir şekilde bilgilerinizi girin arkadaşlar indirilen p12 key dosyasının tam adını ve oluşturulan service account mail adresini tam olarak yazın.

$ga = new gapi("xxxxxxxxx@developer.gserviceaccount.com", "xxxxxx.p12");

Şimdi geldi son aşamaya oda bu mail adresini google analytics tanımlamamız lazım giriş yaptığınız hesabı açın site bilgilerine girin Yönetici kısmından Kullanıcı yönetimine girin Şunun için izin ekleyin: kısmına size verilen mail adresini yazın ve direk ekle ye basın eğer anlattıklarımı harfiyen yaptıysanız karşınıza grafikli bir şekilde istatistikleriniz gelmiştir.

Arkadaşlar kod da bir sıkıntı var 3 aylık bir dönemi alıyor belki sizde daha fazla bir dönem bile ala bilir o yüzden yazımı takip edin bir kaç gün içinde düzeltecem o sorunu ve sadece 1 aylık dönem deki verileri alacak.

Kodda yaşanan sorun çözülmüştür arkadaşlar istediğiniz tarih aralığını kendiniz girebilirsiniz.

20 YORUMLAR

  1. Merhaba, anlatım için teşekkür ediyorum. Harfiyen uygulamama rağmen aşağıda belirttiğim hatayı almaktayım. Profil id doğru ama olmadı.

    Notice: Use of undefined constant ga_profile_id – assumed ‘ga_profile_id’ in C:xampphtdocsgapi-google-analytics-php-interface-masterindex.php on line 5
    Fatal error: Uncaught exception ‘Exception’ with message ‘GAPI: Failed to request report data. Error: “Invalid value ‘ga:ga_profile_id’. Values must match the following regular expression: ‘ga:[0-9]+'”‘ in C:xampphtdocsgapi-google-analytics-php-interface-mastergapi.class.php:208 Stack trace: #0 C:xampphtdocsgapi-google-analytics-php-interface-masterindex.php(5): gapi->requestReportData(‘ga_profile_id’, Array, Array) #1 {main} thrown in C:xampphtdocsgapi-google-analytics-php-interface-mastergapi.class.php on line 208

  2. Ercanın aldığı hatayı bende alıyorum anlatımda gözden kaçırdığınız bir işlem olamaz mı ? bu arada teşekkürler paylaşımınız için.

  3. Öncelikler anlatımlarınızdan dolayı çok teşekkür ederim.
    Dediklerinizi yaptım.
    Fatal error: Uncaught exception ‘Exception’ with message ‘ in C:\wamp\www\google\gapi.class.php on line 662
    hatasını ve
    Fatal error: Uncaught exception ‘Exception’ with message ‘ in C:\wamp\www\google\gapi.class.php on line 662
    hatasını almaktayım.Bu sorunu nasıl aşarım?

  4. Çok teşekkürler sorunsuz hallettim peki anlık ziyaretçi verilerini çekebiliyor muyuz? ve ya giren kişilerin istatistik diğer verilerini?

  5. $ga = new gapi(“xxxxxxxxxxxxxx@developer.gserviceaccount.com”, “xxxxxxxxx.p12”); beşinci satır kullanıcı bilgisisini doğruyamadı diyor class içindeki 662. satırı gösteriyor

  6. merhaba hocam her seyi yaptim sadece

    bize verilen emaili google analystic girip ordanmi ekliyecez goremedim (Şunun için izin ekleyin)

    bulamadim tam olarak nerde yardim icin tesekurler..

    • Google Analytics girdiğiniz de sol alt köşede yönetici kısmı var oraya girdikten sonra karşınıza 3 bölüm gelecek en sağdaki görünüm bölümünden User Management kısmına ekleyeceksiniz.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz