Microsoft Tag Scan Data Api (Beta) Kullanımı


Merhaba Microsoft Tag Severler,

Giriş

Bu yazımda başlıktan anlayacağımız üzere, benim uzun süredir beklediğim ve taklalar atarak almaya çalıştığım taranma verilerini (Scan Data Api) sayesinde alabiliyoruz. Şu an için bu hizmet “Beta” olarak sunulmuş durumda.

Tag Scan Data Api Nedir?

Tag’lerinizin taranma bilgileri Tag Servis tarafından saklanır. Sizde bu bilgilere Tag Scan Data Api’yi kullanarak erişebilirsiniz. Tag Scan Data Api, XML olarak dönen bir REST API’dir.

Tag oluşturmak için kullandığınız Windows Live ID’izden tagkey@microsoft.com adresine mail atarak TAg Scan Data Api Key alarak Tag Scan Data Api’i kullanabilirsiniz.

Ne İşe Yarıyor?

Microsoft Tag Creation Api (MTCA), Tag Manager’a girip teker teker el ile oluşturmak yerine tüm sistemi dinamik olarak kullanabilmemizi sağlayan bir api’dir. MCTA sayesinde, Tag’ler geliştirebiliyor-silebiliyor-durdurabiliyor, kategori oluşturabiliyor-güncelleyebilir, silebiliyoruz. Buraya kadar herşey tamam sorun yok. Peki, oluşturduğumuz tag’lerin taranma bilgilerine nasıl erişeceğiz?

Cevabı uğraştırıcı ve gereksizdi. Tag Manager’a girip oradan teker teker bakmamız gerekiyordu. Microsoft’a bu konuda benimde içerisinde olduğum bir çok kişiden mail geldiğine eminim. Bu sese geçte olsa kulak verildi ve artık ihtiyacımı karşılayacak bir api daha hizmete sunuldu.

Tag Scan Data Api sayesinde, hangi tag ne kadar okundu, hangi cep telefonundan, hangi operatörden, ne zaman okundu gibi ayrıntılı olarak bilgilere erişebiliyoruz.

Hangi Verilere Ulaşabiliyorum?

Beni heyecanlandıran ve kullanabileceğinizi düşündüğüm bazı veriler:

  • Service Scan Time(Taranma zamanı)
  • Category Name (Tag’in bulunduğu kategori)
  • Operator (TR Vodefone, Turkcell, Avea gibi)
  • Platform (Windows Mobile, iPhone, Symbian)
  • Platform Version (yukarıdaki örnekten gidersek sırasıyla; 6,4.02)
  • Device ID (yaklaşık 108 karakterlik bir deger veriyor)
  • User Agent (kullanılan tarayıcı versiyonu)

Nasıl Kullanabilirim?

tagkey@microsoft.com dan size gelen Tag Scan Data Api Key’ini kullanarak aşağıdaki gibi kullanabilirsiniz. Bize bu api ile 5 adet method sunuluyor. Bu metodlar;

public string GetAllScansFromBeginning(string accessKey)
        {
            // Query all data belong to the user with the specified access token.
            string query = "https://data.tag.microsoft.com/scans/v1/"
               + accessKey;
 
            // Retrieve data and return the last scan ID from result. If no scans 
            // were fetched,this function will return null.
            return DataQuery(query);
        }
 
        public string GetScansFromLastLeftOff(string accessKey, string lastId)
        {
            // Query by scan ID.
            string query = "https://data.tag.microsoft.com/scans/v1/"
               + accessKey + "?id=" + lastId;
 
            // Retrieve data and return the last scan ID from result. If no scans
            // were fetched,this function will return null.
            return DataQuery(query);
        }
 
        public string GetScansByDateRange(string accessKey)
        {
            // Query by date range. The from and to parameters 
            // must contain UTC times.
            string query = "https://data.tag.microsoft.com/scans/v1/"
               + accessKey
               + "?from=2010-01-01T00:00:00&to=2010-12-31T23:59:59";
 
            // Retrieve data
           return DataQuery(query);
        }
 
        private string DataQuery(string query)
        {
            // Create data http web request
            HttpWebRequest request = WebRequest.Create(query) as HttpWebRequest;
            request.Accept = "text/xml";
 
            // Get response
            HttpWebResponse response = request.GetResponse() as HttpWebResponse;
            WebHeaderCollection responseHeaders = response.Headers;
            if (request.HaveResponse == true && response != null)
            {
                Stream responseStream = response.GetResponseStream();
 
                // Process the result set
                // ProcessContent(responseStream);
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(responseStream);
                xmlDoc.Save("TagScanDataReport.xml");
            }
 
            // Get continuation token if the result set exceeds the batch size
            string token = GetHeaderKeyValueIfExist(responseHeaders,
               "x-mstag-scans-Token");
            while (!string.IsNullOrEmpty(token))
            {
                query = query + "&token=" + token;
 
                // Get response
                response = request.GetResponse() as HttpWebResponse;
                responseHeaders = response.Headers;
                if (request.HaveResponse == true && response != null)
                {
                    Stream responseStream = response.GetResponseStream();
 
                    // Process the result set
                    // ProcessContent(responseStream);
 
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.Load(responseStream);
                    xmlDoc.Save("TagScanDataReport.xml");
                    
                }
 
                // Get continuation token if the result set exceeds the batch size
                token = GetHeaderKeyValueIfExist(responseHeaders,
                   "x-mstag-scans-Token");
            }
 
            // Retrieve and return the last scan ID in the header.  
            // The ID can be used for subsequent queries by scan ID to retrieve 
            // scans after the specified scan ID
            return GetHeaderKeyValueIfExist(responseHeaders,
               "x-mstag-scans-LastID");
        }
 
        private string GetHeaderKeyValueIfExist(WebHeaderCollection responseHeaders,
           string key)
        {
            for (int i = 0; i < responseHeaders.Count; i++)
            {
                string headerKey = responseHeaders.GetKey(i);
                if (string.Compare(key, headerKey,
                   true, CultureInfo.InvariantCulture) == 0)
                {
                    return responseHeaders[key];
                }
            }
            return null;
        }

http://tag.microsoft.com/developer/scan-data-api.aspx sayfasında bu metotlara ulaşabilirsiniz. Fakat dikkat etmeniz gereken gereken yerleri yukarıda bold olarak belirttim. Size dönen stream’i alıp xml formasında alıp daha sonra bu Xml’i parse edebilirsiniz.

Sonuç

Bu api sayesinde artık Tag kullanımının hedeflerinize ulaşıp ulaşmadığını görebilirsiniz. Ne kadar tag’i tarattıran insanlar hakkında bilgiye erişirseniz kozunuz o kadar büyük olur. Eğer ticari amaç için kullanıyorsunuz, inanılmaz bir güç sunacak bu size.

İletişim

Ayrıntılı bilgiye buradan ulaşabilirsiniz: http://tag.microsoft.com/developer/scan-data-api.aspx

Tag Scan Data Api almak için bu adrese mail atmanız gerekiyor: tagkey@microsoft.com

Her türlü sorunuzu bu mail adresine sorabilirsiniz, inanılmaz hızlı şekilde cevap verirler: tagsupp@microsoft.com

 

Microsoft Tag ile ilgili her türlü sorularınızı bana çekinmeden sorabilirsiniz. 

, ,

  1. Yeni Microsoft Tag Key Manager, Microsoft Tag Api ve SDK’lar « Mahmut Can Sözeri

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s