C# Google Analytics Api Çoğul Görüntülenme Verilerini Çekme

İbrahim     16 Kasım 2018     357     2    
C# Google Analytics Api Kullanımı adlı makalemde apiyi nasıl etkinleştireceğimizi göstermiştim.Bu makalede google analytics api ile web sitemizin çoğul görüntülenme verilerini çekmeyi göstereceğim.Önceki makalemde oluşturmuş olduğumuz aspnet mvc projesi üzerinden gidelim.

İlk olarak projemiz içersinde "GoogleAnalytisc" adnda bir klasör oluşturalım.İçerisine "RaporlamaServisi" adında bir sınıf oluşturalım.

using Google.Apis.AnalyticsReporting.v4;
using Google.Apis.AnalyticsReporting.v4.Data;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using System;
using System.Collections.Generic;
using System.IO;
using System.Web;

namespace GoogleAnalyticsDataTake.GoogleAnalytisc
{
    public class RaporlamaServisi
    {
        readonly string dosyaYolu = HttpContext.Current.Server.MapPath("~/App_Data/724code-com.json");
        readonly string gorunumKimligi = "";
        GoogleCredential kimlikBilgileri;
        AnalyticsReportingService raporlamaServisi;

        public RaporlamaServisi()
        {
            try
            {
                using (var dosyaAkisi = new FileStream(dosyaYolu, FileMode.Open, FileAccess.Read))
                {
                    string[] kapsamlar = { AnalyticsReportingService.Scope.AnalyticsReadonly };
                    var googleKimlikBilgisi = GoogleCredential.FromStream(dosyaAkisi);
                    kimlikBilgileri = googleKimlikBilgisi.CreateScoped(kapsamlar);
                }

                raporlamaServisi = new AnalyticsReportingService(
                new BaseClientService.Initializer
                {
                    HttpClientInitializer = kimlikBilgileri
                });
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }

        public GetReportsResponse CogulGoruntulenme()
        {
            var tarihAraligi = new DateRange
            {
                StartDate = "2018-10-01",
                EndDate = "2018-10-31"
            };
            var metric = new Metric
            {
                Expression = "ga:pageviews",
                Alias = "Sessions"
            };
            var tarih = new Dimension { Name = "ga:date" };

            var reportRequest = new ReportRequest
            {
                DateRanges = new List<DateRange> { tarihAraligi },
                Dimensions = new List<Dimension> { tarih },
                Metrics = new List<Metric> { metric },
                ViewId = gorunumKimligi
            };
            var getReportsRequest = new GetReportsRequest
            {
                ReportRequests = new List<ReportRequest> { reportRequest }
            };
            var batchRequest = raporlamaServisi.Reports.BatchGet(getReportsRequest);
            var response = batchRequest.Execute();
            return response;
        }
    }
}

Sınıf içersinde ilk olarak indirmiş olduğumuz json dosyasının yolunu veriyoruz.Görünüm kimliğini bulmak için google analytics 'in sitesine giriyoruz.Yönetici paneline giriyoruz.Sağ bölmede bulunan görünüm ayarlarına tıklıyoruz ve görünüm kimliğini alıp kodumuza ekliyoruz.RaporlamaServisi constructorunda json dosyasında bulunan bilgilere erişiyor.CogulGoruntulenme methodunda web sitemize giren kullanıcıların sayfayı görüntüleme sayısını buluyoruz.Burada StartDate ve EndDate kısımlarını değiştirerek tarih aralıklarını kendiniz belirleyebilirsiniz.

HomeController adında controller oluşturalım.

using GoogleAnalyticsDataTake.GoogleAnalytisc;
using System.Web.Mvc;

namespace GoogleAnalyticsDataTake.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            RaporlamaServisi raporlama = new RaporlamaServisi();
            var veriler = raporlama.CogulGoruntulenme();
            return View(veriler);
        }
    }
}

Index action'ımıza çoğul görüntülenme verilerini çektik ve view'e göndereceğiz.

Şimdi Index action'ımızın üstüne sağ tıklayak add view diyelim ve view'imizi oluşturalım.

@model Google.Apis.AnalyticsReporting.v4.Data.GetReportsResponse
@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>


<table border="1">
    <tr>
        <th>Tarih</th>
        <th>Görüntülenme</th>
    </tr>
    @foreach (var x in Model.Reports.First().Data.Rows)
    {
        <tr style="height:50px;">
            <td style="width:150px;">@string.Join(", ", x.Dimensions)</td>
            <td style="width:150px;">@string.Join(", ", x.Metrics.First().Values)</td>
        </tr>
    }
</table>

Çalıştırdığımıza verilerimiz karşımızda olacak.Anlatacaklarım bu kadar arkadaşlar.

Ayrıntılı bilgi için : 

https://developers.google.com/analytics/devguides/reporting/core/v4/basics



Etiketler:  
csharp
google-analytisc-api
cogul-goruntulenme-verilerini-cekme
google-analistic


Paylaş:  

Bir Cevap Yazın

M

Mehmet 17 Kasım 2018
Elinize sağlık

İbrahim Çakal 24 Kasım 2018
Teşekkür ederim.