Zugreifen auf Analysedaten mit Store-DienstenAccess analytics data using Store services

Verwenden der Microsoft Store-Textanalyse-API programmgesteuert abrufen von Analysedaten für apps, die Ihre oder Ihre Organisation Windows Partner Center-Konto registriert sind.Use the Microsoft Store analytics API to programmatically retrieve analytics data for apps that are registered to your or your organization's Windows Partner Center account. Mit dieser API können Sie Daten zum Kauf von Apps und Add-Ons (auch als In-App-Produkte (IAPs) bezeichnet), Fehler, App-Bewertungen und App-Rezensionen abrufen.This API enables you to retrieve data for app and add-on (also known as in-app product or IAP) acquisitions, errors, app ratings and reviews. Diese API verwendet Azure Active Directory (Azure AD), um die Aufrufe von Ihrer App oder Ihrem Dienst zu authentifizieren.This API uses Azure Active Directory (Azure AD) to authenticate the calls from your app or service.

Dazu müssen folgende Schritte ausgeführt werden:The following steps describe the end-to-end process:

  1. Stellen Sie sicher, dass Sie alle Voraussetzungen erfüllt haben.Make sure that you have completed all the prerequisites.
  2. Vor dem Aufrufen einer Methode in der Microsoft Store-Analyse-API müssen Sie ein Azure AD-Zugriffstoken anfordern.Before you call a method in the Microsoft Store analytics API, obtain an Azure AD access token. Nach dem Abrufen eines Tokens haben Sie 60 Minuten Zeit, um das Token zum Aufrufen der Microsoft Store-Analyse-API zu nutzen, bevor es abläuft.After you obtain a token, you have 60 minutes to use this token in calls to the Microsoft Store analytics API before the token expires. Nach dem Ablauf des Tokens können Sie ein neues Token generieren.After the token expires, you can generate a new token.
  3. Aufrufen der Microsoft Store-Analyse-API.Call the Microsoft Store analytics API.

Schritt 1: Voraussetzungen Sie für die Verwendung der Microsoft Store-Textanalyse-APIStep 1: Complete prerequisites for using the Microsoft Store analytics API

Stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben, bevor Sie mit dem Schreiben von Code zum Aufrufen der Microsoft Store-Analyse-API beginnen:Before you start writing code to call the Microsoft Store analytics API, make sure that you have completed the following prerequisites.

  • Sie (bzw. Ihre Organisation) müssen über ein Azure AD-Verzeichnis und die Berechtigung Globaler Administrator für das Verzeichnis verfügen.You (or your organization) must have an Azure AD directory and you must have Global administrator permission for the directory. Wenn Sie bereits mit Office 365 oder anderen Unternehmensdiensten von Microsoft arbeiten, verfügen Sie schon über ein Azure AD-Verzeichnis.If you already use Office 365 or other business services from Microsoft, you already have Azure AD directory. Andernfalls können Sie erstellen Sie einen neuen Azure AD im Partner Center ohne zusätzliche Gebühren.Otherwise, you can create a new Azure AD in Partner Center for no additional charge.

  • Sie müssen eine Azure AD-Anwendung mit Ihrem Partner Center-Konto zuordnen, Abrufen der Mandanten-ID und Client-ID für die Anwendung und einen Schlüssel generieren.You must associate an Azure AD application with your Partner Center account, retrieve the tenant ID and client ID for the application and generate a key. Die Azure AD-Anwendung stellt die App oder den Dienst dar, aus denen Sie die Microsoft Store-Analyse-API aufrufen möchten.The Azure AD application represents the app or service from which you want to call the Microsoft Store analytics API. Sie benötigen die Mandanten-ID, die Client-ID und den Schlüssel zum Abrufen eines Azure AD-Zugriffstokens, das Sie an die API übergeben.You need the tenant ID, client ID and key to obtain an Azure AD access token that you pass to the API.

    Hinweis

    Sie müssen diesen Schritt nur einmal ausführen.You only need to perform this task one time. Sobald Sie über die Mandanten-ID, Client-ID und den Schlüssel verfügen, können Sie diese Daten jederzeit wiederverwenden, um ein neues Azure AD-Zugriffstoken zu erstellen.After you have the tenant ID, client ID and key, you can reuse them any time you need to create a new Azure AD access token.

So ordnen Sie eine Azure AD-Anwendung mit Ihrem Partner Center-Konto und Abrufen der erforderlichen Werte:To associate an Azure AD application with your Partner Center account and retrieve the required values:

  1. Im Partner Center Ihrer Organisation Azure AD-Verzeichnis Ihrer Organisation Partner Center-Konto zuordnen.In Partner Center, associate your organization's Partner Center account with your organization's Azure AD directory.

  2. Als Nächstes wird von der Benutzer auf der Seite die Kontoeinstellungen Partner Center im Abschnitt Hinzufügen von Azure AD-Anwendung , das darstellt, die app oder Ihres Diensts, die Sie zu verwenden auf die Analytics-Daten für Ihr Partner Center-Konto.Next, from the Users page in the Account settings section of Partner Center, add the Azure AD application that represents the app or service that you will use to access analytics data for your Partner Center account. Weisen Sie dieser Anwendung anschließend die Rolle Verwalter zu.Make sure you assign this application the Manager role. Wenn die Anwendung ist nicht vorhanden, noch Sie in Ihrem Azure AD-Verzeichnis können erstellen Sie ein neues Azure AD-Anwendung im Partner Center.If the application doesn't exist yet in your Azure AD directory, you can create a new Azure AD application in Partner Center.

  3. Wechseln Sie zurück zur Seite Benutzer, klicken Sie auf den Namen der Azure AD-Anwendung, um die Anwendungseinstellungen aufzurufen, und kopieren Sie die Werte unter Mandanten-ID und Client-ID.Return to the Users page, click the name of your Azure AD application to go to the application settings, and copy down the Tenant ID and Client ID values.

  4. Klicken Sie auf Neuen Schlüssel hinzufügen.Click Add new key. Kopieren Sie auf dem folgenden Bildschirm den Wert unter Schlüssel.On the following screen, copy down the Key value. Nach dem Verlassen der Seite können Sie nicht mehr auf diese Informationen zugreifen.You won't be able to access this info again after you leave this page. Weitere Informationen finden Sie unter Verwalten von Schlüsseln für eine Azure AD-App.For more information, see Manage keys for an Azure AD application.

Schritt 2: Abrufen eines Azure AD-ZugriffstokensStep 2: Obtain an Azure AD access token

Bevor Sie die Methoden in der Microsoft Store-Analyse-API aufrufen, müssen Sie zuerst ein Azure AD-Zugriffstoken abrufen, das Sie für jede Methode in der API an den Authorization-Header übergeben.Before you call any of the methods in the Microsoft Store analytics API, you must first obtain an Azure AD access token that you pass to the Authorization header of each method in the API. Nach Erhalt eines Zugriffstokens können Sie es 60 Minuten lang verwenden, bevor es abläuft.After you obtain an access token, you have 60 minutes to use it before it expires. Nachdem das Token abgelaufen ist, können Sie es aktualisieren, um es in weiteren Aufrufen an die API zu verwenden.After the token expires, you can refresh the token so you can continue to use it in further calls to the API.

Befolgen Sie zum Abrufen des Zugriffstokens die Anweisungen unter Aufrufe zwischen Diensten mithilfe von Clientanmeldeinformationen, um eine HTTP POST-Anforderung an den https://login.microsoftonline.com/<tenant_id>/oauth2/token-Endpunkt zu senden.To obtain the access token, follow the instructions in Service to Service Calls Using Client Credentials to send an HTTP POST to the https://login.microsoftonline.com/<tenant_id>/oauth2/token endpoint. Hier ist ein Beispiel für eine Anforderung angegeben.Here is a sample request.

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

Für die Mandanten_Id Wert in der POST-URI und die Client_Id und Client_Geheimnis den Mandanten zur Angabe von Parametern ID, Client-ID und den Schlüssel für Ihre Anwendung, die Sie vom Partner Center im vorherigen Abschnitt abgerufen haben.For the tenant_id value in the POST URI and the client_id and client_secret parameters, specify the tenant ID, client ID and the key for your application that you retrieved from Partner Center in the previous section. Für den Parameter resource müssen Sie https://manage.devcenter.microsoft.com angeben.For the resource parameter, you must specify https://manage.devcenter.microsoft.com.

Nachdem das Zugriffstoken abgelaufen ist, können Sie es aktualisieren, indem Sie diese Anleitung befolgen.After your access token expires, you can refresh it by following the instructions here.

Schritt 3: Rufen Sie den Microsoft Store-Textanalyse-APIStep 3: Call the Microsoft Store analytics API

Nachdem Sie ein Azure AD-Zugriffstoken abgerufen haben, können Sie die Microsoft Store-Analyse-API aufrufen.After you have an Azure AD access token, you are ready to call the Microsoft Store analytics API. Sie müssen das Zugriffstoken an den Authorization-Header der einzelnen Methoden übergeben.You must pass the access token to the Authorization header of each method.

Methoden für die UWP-apps und SpieleMethods for UWP apps and games

Für apps und Spiele Übernahmen und Akquisitionen von Add-On-stehen die folgenden Methoden zur Auswahl:The following methods are available for apps and games acquisitions and add-on acquisitions:

Methoden für UWP-AppsMethods for UWP apps

Die folgenden Analytics-Methoden sind für die UWP-apps in Partner Center verfügbar.The following analytics methods are available for UWP apps in Partner Center.

SzenarioScenario MethodenMethods
Übernahmen, Konvertierungen, Installation und VerwendungAcquisitions, conversions, installs, and usage
App-FehlerApp errors
InsightsInsights
Bewertungen und PrüfungenRatings and reviews
In-App-Werbung und AnzeigenkampagnenIn-app ads and ad campaigns

Methoden für DesktopanwendungenMethods for desktop applications

Die folgenden Analysemethoden stehen für die Verwendung durch Entwicklerkonten zur Verfügung, die zum Windows Desktop Application-Programm gehören.The following analytics methods are available for use by developer accounts that belong to the Windows Desktop Application program.

SzenarioScenario MethodenMethods
InstalliertInstalls
BlöckeBlocks
AnwendungsfehlerApplication errors
InsightsInsights

Methoden für Xbox Live-DiensteMethods for Xbox Live services

Die folgenden zusätzlichen Methoden stehen für Entwicklerkonten mit Spielen zur Verfügung, die Xbox Live-Dienste verwenden.The following additional methods are available for use by developer accounts with games that use Xbox Live services.

SzenarioScenario MethodenMethods
Allgemeine AnalysenGeneral analytics
IntegritätsanalyseHealth analytics
Community-AnalyseCommunity analytics

Methoden für Xbox One-SpieleMethods for Xbox One games

Die folgenden zusätzlichen Methoden sind verfügbar für die Verwendung von entwicklerkonten mit Xbox One Spiele, die über die Xbox-Entwickler-Portal (XDP) erfasst wurden und in das XDP Analytics-Dashboard verfügbar.The following additional methods are available for use by developer accounts with Xbox One games that were ingested through the Xbox Developer Portal (XDP) and available in the XDP Analytics dashboard.

SzenarioScenario MethodenMethods
KäufeAcquisitions
FehlerErrors

Methoden für Hardware und TreiberMethods for hardware and drivers

Developer-Konten, die zu gehören die Windows Hardware-Dashboard-Programm haben Zugriff auf einen zusätzlichen Satz von Methoden zum Abrufen von Analysedaten für Hardware und Treiber.Developer accounts that belong to the Windows hardware dashboard program have access to an additional set of methods for retrieving analytics data for hardware and drivers. Weitere Informationen finden Sie unter Hardware-Dashboard-API-.For more information, see Hardware dashboard API.

CodebeispielCode example

Im folgenden Codebeispiel wird veranschaulicht, wie Sie ein Azure AD-Zugriffstoken abrufen und die Microsoft Store-Analyse-API aus einer C#-Konsolen-App aufrufen.The following code example demonstrates how to obtain an Azure AD access token and call the Microsoft Store analytics API from a C# console app. Wenn Sie dieses Codebeispiel verwenden möchten, weisen Sie die Variablen TenantId, ClientId, ClientSecret und AppID den entsprechenden Werten für Ihr Szenario zu.To use this code example, assign the tenantId, clientId, clientSecret, and appID variables to the appropriate values for your scenario. In diesem Beispiel wird das Json.NET-Paket von Newtonsoft benötigt, um die von der Microsoft Store-Analyse-API zurückgegebenen JSON-Daten zu deserialisieren.This example requires the Json.NET package from Newtonsoft to deserialize the JSON data returned by the Microsoft Store analytics API.

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;
        }
    }
}

FehlerantwortenError responses

Die Microsoft Store-Analyse-API gibt Fehlerantworten in einem JSON-Objekt zurück, das Fehlercodes und -meldungen enthält.The Microsoft Store analytics API returns error responses in a JSON object that contains error codes and messages. Im folgenden Beispiel wird eine Fehlerantwort veranschaulicht, die durch einen ungültigen Parameter bewirkt wurde.The following example demonstrates an error response caused by an invalid parameter.

{
    "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"
}