Her ne kadar wordpress hazır kurulu sistemler çok yaygın olsada, ve ben büyük bir wordpres hayranı olsamda Google Analyticator web sitelerimizin vazgeçilmezlerindendir. Bu vasıta ile web sitelerimizin arama motoru optimizasyon kalitesi ölçümleme ve ilerletme imkanı sağlıyor. WordPress üzerinde analytics istatistiklerinizi özetleyen bir gösterge tablosu widget’da gösterimine olanak sağlıyor. Oldukça kısıtlı bir yönetim panosuna sahip bir proje üzerinde çalışmak bu projeyi hayata geçirmeyi gerektirdi. Bu sebeple Asp.Net MVC ile Google Analytics API’sini Kullanma istatistikleri görünümü sağlayacağımı düşünüyorum.. Temel fark, üzerinde çalıştığım projenin bir asp.net mvc3 projesiydi.
İnternet üzerinde Asp.net için bazı analitik API örnekleri aradım bulamadım. Bu yüzden umarım bu, gdata apis’i .net’ten kullanmak isteyen birine yardımcı olur. Kodlarımız bittiken sonra görünümünü merak edenler için ;
Google Api Veri Doğrulama
Google ile kimlik doğrulaması oldukça basit ve kolaydır. Google, OAuth2 dahil çeşitli kimlik doğrulama yöntemlerini destekler. Ben bu örnekde AuthSub kimlik doğrulama yöntemini kullanıyorum. Temel olarak, kullanıcıyı belirli bir Google URL’sine yönlendirmeniz uygulamanızı yetkilendirir. Bilgiler giriş uygulamanıza geri döner. Daha sonra bu belirteci bir kerelik bir işlem için kullanabilir bilgiler tekrar tekrar kullanılabilecek uzun bir kalıcı uygulamaya dönüştürebilirsiniz.
Kimlik doğrulamak
public ActionResult Auth()
const string scope = “https://www.google.com/analytics/feeds/”;
var next = Url.FullPath(“~/home/authresponse”);
var url = AuthSubUtil.getRequestUrl(next, scope, false, true);
return Redirect(url);
public ActionResult AuthResponse(string token)
var sessionToken = AuthSubUtil.exchangeForSessionToken(token, null);
Settings settings;
using (RavenSession.Advanced.DocumentStore.DisableAggressiveCaching())
settings = RavenSession.Load<Settings>(Settings.DefaultId);
if (settings == null)
settings = new Settings
Id = Settings.DefaultId
;
settings.SessionToken = sessionToken;
RavenSession.Store(settings);
return RedirectToAction(“Config”);
Analytic Sorgulamaları
Web sitemiz kullanıcılardan bilgi akışını sağladığına göre, kullanıcının erişimi olan herhangi bir siteye ait verileri almak için analizleri sorgulayabilirsiniz. Google sitelerinin kendileriyle ilişkili benzersiz bir kimliği vardır; Google, Table Id değişkenini kullanır. Bu değeri herhangi bir analitik veri sorgusuyla belirtmeniz gerekir. Kullanılabilir siteler listesi almak için hesap özet akışını sorgulamanız gerekir:
var authFactory = new GAuthSubRequestFactory(“analytics”, ApplicationName)
Token = settings.SessionToken
;
var analytics = new AnalyticsService(authFactory.ApplicationName) RequestFactory = authFactory ;
foreach (AccountEntry entry in analytics.Query(new AccountQuery()).Entries)
var account = entry.Properties.First(x => x.Name == “ga:accountName”).Value;
if (!model.Sites.ContainsKey(account))
model.Sites.Add(account, new Dictionary<string, string>());
model.Sites[account].Add(entry.ProfileId.Value, entry.Title.Text);
Bir web sitesi seçimi yapıldıktan sonra, toplam sayfa görüntülemeleri, sitede geçirilen ortalama süre gibi bilgileri sorgulayabilirsiniz. . Örneğin, aşağıdaki sorgu tüm sayfalarda bir dizi genel istatistik bilgilerini alarak bize döndürür.
İstatistik Alma
var siteUsage = new DataQuery(settings.SiteId, from, to)
Metrics = “ga:visits,ga:pageviews,ga:percentNewVisits,ga:avgTimeOnSite,ga:entranceBounceRate,ga:exitRate,ga:pageviewsPerVisit,ga:avgPageLoadTime”
;
var siteUsageResult = (DataEntry)analytics.Query(siteUsage).Entries.FirstOrDefault();
if (siteUsageResult != null)
foreach (var metric in siteUsageResult.Metrics)
switch (metric.Name)
case “ga:visits”:
model.TotalVisits = metric.IntegerValue;
break;
case “ga:pageviews”:
model.TotalPageViews = metric.IntegerValue;
break;
case “ga:percentNewVisits”:
model.PercentNewVisits = metric.FloatValue;
break;
case “ga:avgTimeOnSite”:
model.AverageTimeOnSite = TimeSpan.FromSeconds(metric.FloatValue);
break;
case “ga:entranceBounceRate”:
model.EntranceBounceRate = metric.FloatValue;
break;
case “ga:exitRate”:
model.PercentExitRate = metric.FloatValue;
break;
case “ga:pageviewsPerVisit”:
model.PageviewsPerVisit = metric.FloatValue;
break;
case “ga:avgPageLoadTime”:
model.AveragePageLoadTime = TimeSpan.FromSeconds(metric.FloatValue);
break;
Benzer şekilde, sorgunuza boyutlar ekleyebilirsiniz. Boyutlar, sql grubuna benzer şekilde metrik verilerini gruplandırmanıza olanak tanır. Aşağıdaki sorgu, çoğu sayfa görüntüleme sayısına göre sıralanmış sayfaların bir listesini alacak:
Metrics Kullanım
var topPages = new DataQuery(settings.SiteId, from, to)
Metrics = “ga:pageviews”,
Dimensions = “ga:pagePath,ga:pageTitle”,
Sort = “-ga:pageviews”,
NumberToRetrieve = 20
;
foreach (DataEntry entry in analytics.Query(topPages).Entries)
var value = entry.Metrics.First().IntegerValue;
var url = entry.Dimensions.Single(x => x.Name == “ga:pagePath”).Value.ToLowerInvariant();
var title = entry.Dimensions.Single(x => x.Name == “ga:pageTitle”).Value;
if (!model.PageViews.ContainsKey(url))
model.PageViews.Add(url, 0);
model.PageViews[url] += value;
if (!model.PageTitles.ContainsKey(url))
model.PageTitles.Add(url, title);
Sonuç
Asp.Net MVC ile Google Analytics API’sini Kullanma nasıl yapılır öğrenmiş olduk. Web Google Analytics ile istatistik bilgileri özetleyen bir asp.net mvc widget’ı oluşturduk. Daha fazla bilgi ve kaynak için Developer Google’ı ziyaret edebilirsiniz.
Asp.Net MVC ile Google Analytics API"sini Kullanma
Hiç yorum yok:
Yorum Gönder