Aracılığıyla paylaş


Store hizmetlerini kullanarak analiz verilerine erişme

Microsoft Store analiz API'sini kullanarak sizin veya kuruluşunuzun Windows İş Ortağı Merkezi hesabına kayıtlı uygulamaların analiz verilerini program aracılığıyla alın. Bu API, uygulama ve eklenti (uygulama içi ürün veya IAP olarak da bilinir) alımları, hataları, uygulama derecelendirmeleri ve incelemeleri için veri almanızı sağlar. Bu API, uygulama veya hizmetinizden gelen çağrıların kimliğini doğrulamak için Microsoft Entra kullanır.

Aşağıdaki adımlar uçtan uca işlemi açıklar:

  1. Tüm önkoşullarıtamamladığınızdan emin olun.
  2. Microsoft Store analiz API'sinde bir yöntem çağırmadan önce bir Microsoft Entra erişim belirteci edinin. Belirteci aldıktan sonra, belirtecin süresi dolmadan önce Microsoft Store analiz API'sine yapılan çağrılarda bu belirteci kullanmak için 60 dakikanız vardır. Belirtecin süresi dolduktan sonra yeni bir belirteç oluşturabilirsiniz.
  3. Microsoft Store analiz API'siniçağırın.

1. Adım: Microsoft Store analiz API'sini kullanmak için önkoşulları tamamlayın

Microsoft Store analiz API'sini çağırmak için kod yazmaya başlamadan önce aşağıdaki önkoşulları tamamladığınızdan emin olun.

  • Sizin (veya kuruluşunuzun) bir Microsoft Entra dizinine sahip olması ve dizin için Genel yönetici izniniz olması gerekir. Microsoft 365 veya Microsoft'un diğer iş hizmetlerini zaten kullanıyorsanız, zaten bir Microsoft Entra dizininiz vardır. Aksi takdirde, ek ücret ödemeden Partner Center'da yeni bir tane oluşturabilirsiniz.

  • Bir Microsoft Entra uygulamasını İş Ortağı Merkezi hesabınızla ilişkilendirmeniz, uygulamanın kiracı kimliğini ve istemci kimliğini almanız ve bir anahtar oluşturmanız gerekir. Microsoft Entra uygulaması, Microsoft Store analiz API'sini çağırmak istediğiniz uygulamayı veya hizmeti temsil eder. API'ye geçirdiğiniz bir Microsoft Entra erişim belirtecini almak için kiracı kimliğine, istemci kimliğine ve anahtara ihtiyacınız vardır.

    Not

    Bu görevi yalnızca bir kez gerçekleştirmeniz gerekir. Kiracı kimliğiniz, istemci kimliğiniz ve anahtarınız olduktan sonra, yeni bir Microsoft Entra erişim belirteci oluşturmanız gerektiğinde bunları yeniden kullanabilirsiniz.

Bir Microsoft Entra uygulamasını İş Ortağı Merkezi hesabınızla ilişkilendirmek ve gerekli değerleri almak için:

  1. İş Ortağı Merkezi'nde kuruluşunuzun İş Ortağı Merkezi hesabını kuruluşunuzun Microsoft Entra diziniile ilişkilendirin.
  2. Ardından, İş Ortağı Merkezi'nin Hesap ayarları bölümündeki Kullanıcılar sayfasından İş Ortağı Merkezi hesabınızın analiz verilerine erişmek için kullanacağınız uygulama veya hizmeti temsil eden Microsoft Entra uygulama ekleyin. Bu uygulamaya Yöneticisi rolü atadığınızdan emin olun. Uygulama henüz Microsoft Entra dizininizde yoksa, İş Ortağı Merkezi'nde yeni bir Microsoft Entra uygulamasıoluşturabilirsiniz.
  3. Kullanıcılar Yönetimi sayfasına dönün ve Microsoft Entra uygulamaları sekmesine gidin, uygulama ayarlarına gitmek için Microsoft Entra uygulamanızın adına tıklayın ve Kiracı Kimliği ve İstemci Kimliği değerlerini kopyalayın.
  4. Yeni anahtar ekletıklayın. Aşağıdaki ekranda Anahtarı değerini kopyalayın. Bu sayfadan ayrıldıktan sonra bu bilgilere yeniden erişemezsiniz. Daha fazla bilgi için bkz. Microsoft Entra uygulaması için anahtarları yönetme.

2. Adım: Microsoft Entra erişim belirtecini alma

Microsoft Store analiz API'sindeki yöntemlerden herhangi birini çağırmadan önce, API'deki her yöntemin Yetkilendirme üst bilgisine geçirdiğiniz bir Microsoft Entra erişim belirteci edinmeniz gerekir. Erişim belirtecini aldıktan sonra süresi dolmadan önce kullanmak için 60 dakikanız olur. Belirtecin süresi dolduktan sonra, belirteci yenileyebilir, böylece API'ye yapılan diğer çağrılarda kullanmaya devam edebilirsiniz.

Erişim belirtecini elde etmek için, İstemci Kimlik Bilgilerini Kullanarak Hizmetler Arası Çağrılar'deki yönergeleri takip edip https://login.microsoftonline.com/<tenant_id>/oauth2/token uç noktasına bir HTTP POST gönderin. Örnek bir istek aşağıda verilmiştir.

POST https://login.microsoftonline.com/<tenant_id>/oauth2/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded; charset=utf-8

grant_type=client_credentials
&client_id=<your_client_id>
&client_secret=<your_client_secret>
&resource=https://manage.devcenter.microsoft.com

POST URI'sindeki tenant_id değeri ile client_id ve client_secret parametreleri için, önceki bölümde İş Ortağı Merkezi'nden aldığınız kiracı kimliğini, istemci kimliğini ve uygulamanızın anahtarını belirtin. kaynak parametresi için https://manage.devcenter.microsoft.combelirtmeniz gerekir.

Erişim belirtecinizin süresi dolduktan sonra, buradayönergelerini izleyerek erişim belirtecini yenileyebilirsiniz.

Not

ResourceType=Graph.windows.net Eylül 2023'te kullanım dışı bırakıldı. Lütfen ResourceType =Graph.microsoft.comöğesine geçin.

3. Adım: Microsoft Store analiz API'sini çağırma

Microsoft Entra erişim belirtecine sahip olduktan sonra Microsoft Store analiz API'sini çağırmaya hazırsınız. Erişim belirtecini her yöntemin Yetkilendirme üst bilgisine geçirmeniz gerekir.

UWP uygulamaları ve oyunları için yöntemler

Uygulama ve oyun alımları ile eklenti alımları için aşağıdaki yöntemler kullanılabilir:

UWP uygulamaları için yöntemler

aşağıdaki analiz yöntemleri İş Ortağı Merkezi'ndeki UWP uygulamaları için kullanılabilir.

Senaryo Yöntemler
Alımlar, dönüştürmeler, yüklemeler ve kullanım
Uygulama hataları
Öngörüler
  • uygulamanız için içgörü verilerini alın
Derecelendirmeler ve incelemeler
Uygulama içi reklamlar ve reklam kampanyaları

Masaüstü uygulamaları için yöntemler

Aşağıdaki analiz yöntemleri, Windows Masaüstü Uygulaması programına ait geliştirici hesapları tarafından kullanılabilir.

Senaryo Yöntemler
Yükler
Bloklar
Uygulama hataları
Öngörüler

Xbox Live hizmetleri için yöntemler

Aşağıdaki ek yöntemler, Xbox Live hizmetlerini kullanan oyunlarla geliştirici hesapları tarafından kullanılabilir. Xbox için Microsoft Store Analytics API'si artık kullanılamıyor. oyun/xbox-live/başlangıç/geliştirici-programına-katıl/geliştirici-programına-katıl_nav

Senaryo Yöntemler
Genel analiz
  • xbox live analiz verilerini alma

Donanım ve sürücüler için yöntemler

Windows donanım panosu programına ait geliştirici hesapları donanım ve sürücüler için analiz verilerini almak için ek bir yöntem kümesine erişebilir. Daha fazla bilgi için bkz. Donanım kontrol paneli API.

Kod örneği

Aşağıdaki kod örneği, bir Microsoft Entra erişim belirtecinin nasıl alınacağını ve C# konsol uygulamasından Microsoft Store analiz API'sinin nasıl çağrılacağını açıklar. Bu kod örneğini kullanmak için tenantId, clientId, clientSecretve appID değişkenlerini senaryonuz için uygun değerlere atayın. Bu örnekte, Microsoft Store analiz API'si tarafından döndürülen JSON verilerinin seri durumdan çıkarılması için Newtonsoft'tan Json.NET paketi gerekir.

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;

namespace TestAnalyticsAPI
{
    class Program
    {
        static void Main(string[] args)
        {
            string tenantId = "<your tenant ID>";
            string clientId = "<your client ID>";
            string clientSecret = "<your secret>";

            string scope = "https://manage.devcenter.microsoft.com";

            // Retrieve an Azure AD access token
            string accessToken = GetClientCredentialAccessToken(
                    tenantId,
                    clientId,
                    clientSecret,
                    scope).Result;

            // This is your app's Store ID. This ID is available on
            // the App identity page of the Dev Center dashboard.
            string appID = "<your app's Store ID>";

            DateTime startDate = DateTime.Parse("08-01-2015");
            DateTime endDate = DateTime.Parse("11-01-2015");
            int pageSize = 1000;
            int startPageIndex = 0;

            // Call the Windows Store analytics API
            CallAnalyticsAPI(accessToken, appID, startDate, endDate, pageSize, startPageIndex);

            Console.Read();
        }

        private static void CallAnalyticsAPI(string accessToken, string appID, DateTime startDate, DateTime endDate, int top, int skip)
        {
            string requestURI;

            // Get app acquisitions
            requestURI = string.Format(
                "https://manage.devcenter.microsoft.com/v1.0/my/analytics/appacquisitions?applicationId={0}&startDate={1}&endDate={2}&top={3}&skip={4}",
                appID, startDate, endDate, top, skip);

            //// Get add-on acquisitions
            //requestURI = string.Format(
            //    "https://manage.devcenter.microsoft.com/v1.0/my/analytics/inappacquisitions?applicationId={0}&startDate={1}&endDate={2}&top={3}&skip={4}",
            //    appID, startDate, endDate, top, skip);

            //// Get app failures
            //requestURI = string.Format(
            //    "https://manage.devcenter.microsoft.com/v1.0/my/analytics/failurehits?applicationId={0}&startDate={1}&endDate={2}&top={3}&skip={4}",
            //    appID, startDate, endDate, top, skip);

            //// Get app ratings
            //requestURI = string.Format(
            //    "https://manage.devcenter.microsoft.com/v1.0/my/analytics/ratings?applicationId={0}&startDate={1}&endDate={2}top={3}&skip={4}",
            //    appID, startDate, endDate, top, skip);

            //// Get app reviews
            //requestURI = string.Format(
            //    "https://manage.devcenter.microsoft.com/v1.0/my/analytics/reviews?applicationId={0}&startDate={1}&endDate={2}&top={3}&skip={4}",
            //    appID, startDate, endDate, top, skip);

            HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Get, requestURI);
            requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

            WebRequestHandler handler = new WebRequestHandler();
            HttpClient httpClient = new HttpClient(handler);

            HttpResponseMessage response = httpClient.SendAsync(requestMessage).Result;

            Console.WriteLine(response);
            Console.WriteLine(response.Content.ReadAsStringAsync().Result);

            response.Dispose();
        }

        public static async Task<string> GetClientCredentialAccessToken(string tenantId, string clientId, string clientSecret, string scope)
        {
            string tokenEndpointFormat = "https://login.microsoftonline.com/{0}/oauth2/token";
            string tokenEndpoint = string.Format(tokenEndpointFormat, tenantId);

            dynamic result;
            using (HttpClient client = new HttpClient())
            {
                string tokenUrl = tokenEndpoint;
                using (
                    HttpRequestMessage request = new HttpRequestMessage(
                        HttpMethod.Post,
                        tokenUrl))
                {
                    string content =
                        string.Format(
                            "grant_type=client_credentials&client_id={0}&client_secret={1}&resource={2}",
                            clientId,
                            clientSecret,
                            scope);

                    request.Content = new StringContent(content, Encoding.UTF8, "application/x-www-form-urlencoded");

                    using (HttpResponseMessage response = await client.SendAsync(request))
                    {
                        string responseContent = await response.Content.ReadAsStringAsync();
                        result = JsonConvert.DeserializeObject(responseContent);
                    }
                }
            }

            return result.access_token;
        }
    }
}

Hata yanıtları

Microsoft Store analiz API'si, hata kodları ve iletiler içeren bir JSON nesnesinde hata yanıtları döndürür. Aşağıdaki örnekte, geçersiz bir parametrenin neden olduğu bir hata yanıtı gösterilmektedir.

{
    "code":"BadRequest",
    "data":[],
    "details":[],
    "innererror":{
        "code":"InvalidQueryParameters",
        "data":[
            "top parameter cannot be more than 10000"
        ],
        "details":[],
        "message":"One or More Query Parameters has invalid values.",
        "source":"AnalyticsAPI"
    },
    "message":"The calling client sent a bad request to the service.",
    "source":"AnalyticsAPI"
}