Yandex Metrica API Kullanımı

yandex_metrica

Yandex Metrica, Google Analytics benzeri web sitelerimiz / uygulamalarımız için istatistik sağlayan ücretsiz bir servistir. Kullanımı ve özellikleri bakımından Google Analytics’den eksik yanı olmamasıyla birlikte kullanıcıların site üzerinde neler yaptığını video şeklinde bize sunması gibi ek özellikleri de vardır.

API işlemine geçmeden önce sitemizi Yandex Metrica’ya eklememiz ve verilen kodu sitemize eklememiz gerekiyor. Bu adımlar çok basit ve Google Analytics ile aynı yapıda olduğundan bu adımları atlıyorum ve Metrica’yı sitenize entegre ettiğinizi düşünerek yazıya devam ediyorum.

Yandex API servisine erişebilmemiz için bize iki şey lazım. Birincisi uygulamıza/web sitemize ait bir Application ID, bir diğeri ise bu uygulamaya erişebilmek için güvenlik kodumuz yani token kodu.

metrica_api_01

Sitemizin Yandex ile entegrasyonunu yaptıktan sonra https://oauth.yandex.com adresine girip “Create new client” butonuna tıklayarak yeni bir hesap oluşturuyoruz.

metrica_api_02

Tüm alanları dolduruyoruz. Icon seçmek zorunda değilsiniz, uygulamanızın/web sitenizin ikonu varsa ekleyebilirsiniz. Callback URL alanını altında bulunan Set URL for development linkine tıklayarak dolduruyoruz. Otomatik olarak https://oauth.yandex.com/verification_code linki oluşacaktır.

Scopes alanından Yandex Metrica‘yı seçip sadece “Access to statistics and ability to view all counter settings” seçeneğini işaretliyoruz, yani oluşturduğumuz API sadece istatistiklerimizi okuyabilecek. Silemeyecek veya düzenleyemeyecek.

Submit’e basarak API miz için gerekli kullanıcıyı oluşturuyoruz. Karşımıza aşağıdaki gibi bir ekran gelecek;

Not: Aynı hesap üzerinde farklı sayaçlarım olduğundan sizde farklı bir ekran gelebilir, işlemlere aynen devam ediyoruz. Panik yok :)

 

metrica_api_03
Buradaki bilgileri saklayınız. Buradaki ID değeri Application ID mizdir, token oluşturuken bu ID’yi kullanacağız. Yandex Metrica API hem XML hemde JSON türünü destekliyor. Biz XML kullanacağız, dilerseniz JSON ile de verileri alabilirsiniz.

https://tech.yandex.com.tr/metrika/doc/ref/reference/metrika-api-resources-docpage/ adresinden üzerinden hangi sayaç verilere ve sayaç listelere ulaşmak istiyorsanız onların url yapılarını öğrenebilirsiniz. Örneğimde son 1 aylık günlük ziyaretçi istatistiklerine ulaşacağım. Sayfa üzerinden ihtiyacım olan url’in “stat/traffic/summary” olduğunu öğreniyorum.

Günlük istatistiklere ulaşabilmem için gerekli adres;

https://api-metrika.yandex.com.tr/stat/traffic/summary?id=[SAYAC_ID]&oauth_token=[SAYAC_TOKEN]&date1=[BASLANGIC_TARIHI]&date2=[BITIS_TARIHI]

https://metrica.yandex.com.tr/list/ adresinden sayacımın yanında bulunan numarayı alıyorum. Bu bizim SAYAÇ ID miz. (Eğer bir sayacınız yoksa oluşturun ve sitenize ekleyin.)

Sıra geldi Sayaç için TOKEN değerimizi oluşturmaya. Aşağıdaki linkteki <application ID> yazan alana yukarıda oluşturduğumuz ID değerini yazıyoruz ve linke gidiyoruz.

metrica_api_04

https://oauth.yandex.com/authorize?response_type=token&client_id=<application ID>

Açılan sayfada bizim token değerimiz gözükecektir. Token değerini alıp yukarıdaki linkimiz de [SAYAC_TOKEN] yazılı yere ekliyoruz.

Sayaç ID ve Sayaç Token değerlerini de ekledikten sonra date1 ve date2 alanlarımız kaldı. Bu alanlar yapacağımız sorgulamanın tarih aralığını belirtiyor. Formatı YILAYGUN yani yyyyMMdd şeklindedir. Örneğin 2015 Aralık ayı için sorgulama yapacaksam [BASLANGIC_TARIHI] alanına 20151201 [BITIS_TARIHI] alanına ise 20151231 giriyorum. İlgili alanları girdikten sonra aşağıdaki gibi bir linkim oluşmuş durumda.

https://api-metrika.yandex.com.tr/stat/traffic/summary?id=254******&oauth_token=1d18bc37fd45*************&date1=20151201&date2=20151231

Yukarıdaki link’e tarayıcım üzerinde girdiğimde aşağıdaki gibi bir görüntü ile karşılaşacağım. (Sayacınızı yeni eklediyseniz geçmiş tarihlere ait veri gelmeyecektir.) Eğer hata mesajı alıyorsanız sayaç id veya token değeriniz yanlıştır.

metrica_api_05

 

Buraya kadar tüm işlemlerimiz tamam. Yandex Metrica API’sine sorunsuz şekilde eriştik, bundan sonra ister C#, ister PHP ile XML adresinden verileri çekebilirsiniz. Ben C# olarak devam ediyorum. Hızlı ilerlemek için WindowsForms üzerinden anlatacağım. Asp.net WebForms veya MVC ile de aynı şekilde kullanabilirsiniz.

Sayfa üzerinde XML’den verileri aktarabileceğim bir DailyStats class’ı tanımlıyorum.

metrica_api_06

 

Class Kodu:


public class DailyStats
{
public DateTime Day { get; set; }
public int Visits { get; set; }
public int Visitors { get; set; }
public int PageViews { get; set; }
public int NewVisitors { get; set; }
}

XML ile işlem yapacağım için namespacelerim arasına using System.Xml; ekliyorum.

Şimdi Form’umun load methodunda XML’den gelen verileri “row” elementine göre parçalayıp listeme dolduracağım. Listemi doldurduktan sonra form’umda bulunan DataGridView’in datasource’una bu listeyi gösterip ekrana yansıtacağım.

 

metrica_api_07

Kodlar:


private void Form1_Load(object sender, EventArgs e)
{
string url = "https://api-metrika.yandex.com.tr/stat/traffic/summary?id=254*****&oauth_token=1d18bc***************&date1=20151201&date2=20151231";

XmlDocument visits = new XmlDocument();
visits.Load(url);

XmlNodeList nodeList = visits.GetElementsByTagName("row");

List<DailyStats> stats = new List<DailyStats>();

foreach (XmlNode item in nodeList)
{
DailyStats s = new DailyStats();
s.Day = DateTime.ParseExact(item["date"].InnerText, "yyyyMMdd", null);
s.Visits = Convert.ToInt32(item["visits"].InnerText);
s.Visitors = Convert.ToInt32(item["visitors"].InnerText);
s.PageViews = Convert.ToInt32(item["page_views"].InnerText);
s.NewVisitors = Convert.ToInt32(item["new_visitors"].InnerText);

stats.Add(s);
}

dataGridView1.DataSource = stats;
}

Tüm bu işlemleri yaptıktan sonra aşağıdaki gibi bir sonuç alacağım.

metrica_api_08

 

Her şey bu kadar. Bir sorun yaşarsanız ve yorum olarak belirtirseniz yardımcı olmaya çalışırım. Kaç kişinin kullandığını anlamam için de bir teşekkür yazarsanız sevinirim :)

 

  4Yorumlar

  1. Selami   •  

    Teşekkürler. Çok yararı oldu.

  2. Feridun   •  

    Merhaba Sinan Bey,
    Yandex market e asp.net mvc üzerinden ürünleri gönderme işlemi hakkında bilgi verirseniz seviniriz.
    Teşekkürler.

Bir cevap yazın

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