Freigeben über


Zugreifen auf Analysedaten mithilfe von Store-Diensten

Verwenden Sie die Microsoft Store-Analyse-API , um Analysedaten für Apps, die für Das Windows Partner Center-Konto Ihrer Organisation registriert sind, programmgesteuert abzurufen. Mit dieser API können Sie Daten für App- und Add-On-Käufe (auch als In-App-Produkt oder IAP bezeichnet) abrufen, Fehler, App-Bewertungen und Rezensionen. Diese API verwendet Microsoft Entra, um die Aufrufe von Ihrer App oder Ihrem Dienst zu authentifizieren.

Dazu müssen folgende Schritte ausgeführt werden:

  1. Stellen Sie sicher, dass Sie alle Voraussetzungen erfüllt haben.
  2. Rufen Sie vor dem Aufrufen einer Methode in der Microsoft Store-Analyse-API ein Microsoft Entra-Zugriffstoken ab. Nachdem Sie ein Token abgerufen haben, haben Sie 60 Minuten Zeit, dieses Token in Aufrufen der Microsoft Store-Analyse-API zu verwenden, bevor das Token abläuft. Nach Ablauf des Tokens können Sie ein neues Token generieren.
  3. Rufen Sie die Microsoft Store-Analyse-API auf.

Schritt 1: Abschließen der Voraussetzungen für die Verwendung der Microsoft Store-Analyse-API

Bevor Sie mit dem Schreiben von Code beginnen, um die Microsoft Store-Analyse-API aufzurufen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben.

  • Sie (oder Ihre Organisation) müssen über ein Microsoft Entra-Verzeichnis verfügen und über globale Administratorberechtigungen für das Verzeichnis verfügen. Wenn Sie bereits Microsoft 365 oder andere Geschäftsdienste von Microsoft verwenden, verfügen Sie bereits über ein Microsoft Entra-Verzeichnis. Andernfalls können Sie im Partner Center für keine zusätzliche Gebühr ein neues erstellen.

  • Sie müssen ihrer Partner Center-Konto eine Microsoft Entra-Anwendung zuordnen, die Mandanten-ID und die Client-ID für die Anwendung abrufen und einen Schlüssel generieren. Die Microsoft Entra-Anwendung stellt die App oder den Dienst dar, aus der Sie die Microsoft Store-Analyse-API aufrufen möchten. Sie benötigen die Mandanten-ID, die Client-ID und den Schlüssel, um ein Microsoft Entra-Zugriffstoken abzurufen, das Sie an die API übergeben.

    Hinweis

    Sie müssen diese Aufgabe nur einmal ausführen. Nachdem Sie über die Mandanten-ID, die Client-ID und den Schlüssel verfügen, können Sie diese jederzeit wiederverwenden, wenn Sie ein neues Microsoft Entra-Zugriffstoken erstellen müssen.

So ordnen Sie eine Microsoft Entra-Anwendung Ihrem Partner Center-Konto zu und rufen die erforderlichen Werte ab:

  1. Ordnen Sie im Partner Center das Partner Center-Konto Ihrer Organisation dem Microsoft Entra-Verzeichnis Ihrer Organisation zu.
  2. Fügen Sie als Nächstes auf der Seite "Benutzer" im Abschnitt "Kontoeinstellungen" des Partner Center die Microsoft Entra-Anwendung hinzu, die die App oder den Dienst darstellt, die Sie für den Zugriff auf Analysedaten für Ihr Partner Center-Konto verwenden. Stellen Sie sicher, dass Sie dieser Anwendung die Rolle Manager zuweisen. Wenn die Anwendung noch nicht in Ihrem Microsoft Entra-Verzeichnis vorhanden ist, können Sie eine neue Microsoft Entra-Anwendung im Partner Center erstellen.
  3. Kehren Sie zur Seite " Benutzerverwaltung " zurück, und navigieren Sie zur Registerkarte "Microsoft Entra-Anwendungen ", klicken Sie auf den Namen Ihrer Microsoft Entra-Anwendung, um zu den Anwendungseinstellungen zu wechseln, und kopieren Sie die Werte " Mandanten-ID " und "Client-ID ".
  4. Klicken Sie auf Neuen Schlüssel hinzufügen. Notieren Sie auf dem folgenden Bildschirm den Wert von Schlüssel. Nachdem Sie diese Seite verlassen haben, können Sie nicht mehr auf diese Informationen zugreifen. Weitere Informationen finden Sie unter Verwalten von Schlüsseln für eine Microsoft Entra-Anwendung.

Schritt 2: Abrufen eines Microsoft Entra-Zugriffstokens

Bevor Sie eine der Methoden in der Microsoft Store-Analyse-API aufrufen, müssen Sie zuerst ein Microsoft Entra-Zugriffstoken abrufen, das Sie an den Autorisierungsheader jeder Methode in der API übergeben. Nachdem Sie ein Zugriffstoken erhalten haben, haben Sie 60 Minuten Zeit, es zu verwenden, bevor es abläuft. Nach dem Ablauf können Sie das Token aktualisieren, damit Sie es in weiteren Aufrufen der API weiterhin verwenden können.

Um das Zugriffstoken zu erhalten, folgen Sie den Anweisungen in Aufrufe von Dienst zu Dienst mit Anmeldeinformationen des Clients, um einen HTTP-POST an den https://login.microsoftonline.com/<tenant_id>/oauth2/token-Endpunkt zu senden. Hier ist eine Beispielanforderung:

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 den Wert Mandant_id im POST-URI und die Parameter Client_id und Client_secret geben Sie die ID des Mandanten, die ID des Clients und den Schlüssel für Ihre Anwendung an, den Sie im vorherigen Abschnitt vom Partner Center erhalten haben. Für den Parameter resource müssen Sie https://manage.devcenter.microsoft.com angeben.

Nachdem Ihr Zugriffstoken abgelaufen ist, können Sie es aktualisieren, indem Sie die anweisungen hier befolgen.

Hinweis

ResourceType=Graph.windows.net wurde im September 2023 veraltet. Migrieren Sie zu ResourceType =Graph.microsoft.com.

Schritt 3: Aufrufen der Microsoft Store-Analyse-API

Nachdem Sie über ein Microsoft Entra-Zugriffstoken verfügen, können Sie die Microsoft Store-Analyse-API aufrufen. Sie müssen das Zugriffstoken an den Autorisierungsheader jeder Methode übergeben.

Methoden für UWP-Apps und -Spiele

Die folgenden Methoden stehen für Apps und Spielekäufe und Add-On-Käufe zur Verfügung:

Methoden für UWP-Apps

Die folgenden Analysemethoden sind für UWP-Apps im Partner Center verfügbar.

Szenario Methoden
Käufe, Konvertierungen, Installationen und Nutzung
App-Fehler
Erkenntnisse
Bewertungen und Rezensionen
In-App-Anzeigen und Anzeigenkampagnen

Methoden für Desktopanwendungen

Die folgenden Analysemethoden stehen für die Verwendung durch Entwicklerkonten zur Verfügung, die zum Windows-Desktopanwendungsprogramm gehören.

Szenario Methoden
Installs
Blöcke
Anwendungsfehler
Erkenntnisse

Methoden für Xbox Live-Dienste

Die folgenden zusätzlichen Methoden stehen für Entwicklerkonten mit Spielen zur Verfügung, die Xbox Live-Dienste verwenden. Die Microsoft Store Analytics-API für Xbox ist nicht mehr verfügbar. gaming/xbox-live/get-started/join-dev-program/join-dev-program_nav

Szenario Methoden
Allgemeine Analysen

Methoden für Hardware und Treiber

Entwicklerkonten, die zum Windows-Hardwaredashboardprogramm gehören, haben Zugriff auf einen zusätzlichen Satz von Methoden zum Abrufen von Analysedaten für Hardware und Treiber. Weitere Informationen finden Sie unter Hardware-Dashboard-API.

Codebeispiel

Im folgenden Codebeispiel wird veranschaulicht, wie Sie ein Microsoft Entra-Zugriffstoken abrufen und die Microsoft Store-Analyse-API aus einer C#-Konsolen-App aufrufen. Um dieses Codebeispiel zu verwenden, weisen Sie die Variablen "tenantId", "clientId", "clientSecret" und "appID " den entsprechenden Werten für Ihr Szenario zu. In diesem Beispiel wird das Json.NET-Paket von Newtonsoft benötigt, um die JSON-Daten zu deserialisieren, die von der Microsoft Store-Analyse-API zurückgegeben werden.

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

Fehlercodes

Die Microsoft Store-Analyse-API gibt Fehlerantworten in einem JSON-Objekt zurück, das Fehlercodes und Meldungen enthält. Im folgenden Beispiel wird eine Fehlerantwort veranschaulicht, die durch einen ungültigen Parameter verursacht wird.

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