Acceder a datos de análisis mediante servicios de almacenamientoAccess analytics data using Store services

Use la API de análisis de Microsoft Store para recuperar mediante programación los datos de análisis de las aplicaciones que están registradas en su cuenta del centro de Partners de Windows de su organización.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. Esta API permite recuperar los datos respecto a las adquisiciones de aplicaciones y de complementos (conocidas también como producto desde la aplicación o IAP), errores, valoraciones de la aplicación y opiniones.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. Esta API usa Azure Active Directory (Azure AD) para autenticar las llamadas provenientes de la aplicación o el servicio.This API uses Azure Active Directory (Azure AD) to authenticate the calls from your app or service.

Los siguientes pasos describen el proceso de principio a fin:The following steps describe the end-to-end process:

  1. Asegúrate de que se hayan completado todos los requisitos previos.Make sure that you have completed all the prerequisites.
  2. Antes de llamar a un método en la API de Microsoft Store Analytics, obtenga un token de acceso Azure ad.Before you call a method in the Microsoft Store analytics API, obtain an Azure AD access token. Después de obtener un token, tiene 60 minutos para usar este token en las llamadas a la API de Microsoft Store Analytics antes de que expire el token.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. Después de que el token expire, puedes generar uno nuevo.After the token expires, you can generate a new token.
  3. Llame a la API de análisis de Microsoft Store.Call the Microsoft Store analytics API.

Paso 1: completar los requisitos previos para usar la API de Microsoft Store AnalyticsStep 1: Complete prerequisites for using the Microsoft Store analytics API

Antes de empezar a escribir código para llamar a la API de Microsoft Store Analytics, asegúrese de que ha completado los requisitos previos siguientes.Before you start writing code to call the Microsoft Store analytics API, make sure that you have completed the following prerequisites.

  • Usted (o su organización) tiene que tener un directorio de Azure AD y el permiso de Administrador global para el directorio.You (or your organization) must have an Azure AD directory and you must have Global administrator permission for the directory. Si usa Microsoft 365 u otros servicios empresariales de Microsoft, ya tiene el directorio de Azure AD.If you already use Microsoft 365 or other business services from Microsoft, you already have Azure AD directory. De lo contrario, puede crear un nuevo Azure ad en el centro de Partners sin cargo adicional.Otherwise, you can create a new Azure AD in Partner Center for no additional charge.

  • Debe asociar una aplicación Azure AD a la cuenta del centro de Partners, recuperar el identificador de inquilino y el identificador de cliente de la aplicación y generar una clave.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. La aplicación Azure AD representa la aplicación o el servicio del que desea llamar a la API de Microsoft Store Analytics.The Azure AD application represents the app or service from which you want to call the Microsoft Store analytics API. Necesita el identificador de inquilino, el identificador de cliente y la clave para obtener un token de acceso de Azure AD para pasar a la API.You need the tenant ID, client ID and key to obtain an Azure AD access token that you pass to the API.

    Nota

    Solo tiene que realizar esta tarea una vez.You only need to perform this task one time. Una vez que tenga el identificador de inquilino, el identificador de cliente y la clave, puede volver a usarlos cada vez que tenga que crear un nuevo token de acceso de Azure AD.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.

Para asociar una aplicación Azure AD a la cuenta del centro de Partners y recuperar los valores necesarios:To associate an Azure AD application with your Partner Center account and retrieve the required values:

  1. En el Centro de partners, asocie la cuenta del Centro de partners de la organización con el directorio de Azure AD de la organización.In Partner Center, associate your organization's Partner Center account with your organization's Azure AD directory.

  2. A continuación, en la página usuarios de la sección configuración de la cuenta del centro de partners, agregue la Azure ad aplicación que representa la aplicación o el servicio que usará para acceder a los datos de análisis de la cuenta del centro de Partners.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. Asegúrese de asignar a esta aplicación el rol Administrador.Make sure you assign this application the Manager role. Si la aplicación aún no existe en el directorio de Azure AD, puede crear una nueva aplicación de Azure AD en el Centro de partners.If the application doesn't exist yet in your Azure AD directory, you can create a new Azure AD application in Partner Center.

  3. Vuelva a la página Usuarios, haga clic en el nombre de la aplicación de Azure AD para ir a la configuración de la aplicación y, a continuación, copie los valores de Identificador de inquilino e Identificador de cliente.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. Haga clic en Agregar nueva clave.Click Add new key. En la pantalla siguiente, copie el valor de Clave.On the following screen, copy down the Key value. Después de salir de esta página no podrá tener acceso de nuevo a esta información.You won't be able to access this info again after you leave this page. Para más información, consulte Administrar claves para una aplicación de Azure AD.For more information, see Manage keys for an Azure AD application.

Paso 2: Obtención de un token de acceso de Azure ADStep 2: Obtain an Azure AD access token

Antes de llamar a cualquiera de los métodos de la API de Microsoft Store Analytics, primero debe obtener un token de acceso Azure AD que pase al encabezado Authorization de cada método de la API.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. Una vez que haya obtenido un token de acceso, tiene 60 minutos para usarlo antes de que expire.After you obtain an access token, you have 60 minutes to use it before it expires. Después de que el token expire, puedes actualizar el token para que puedas continuar usándolo en llamadas adicionales a la API.After the token expires, you can refresh the token so you can continue to use it in further calls to the API.

Para obtener el token de acceso, sigue las instrucciones en Llamadas de servicio a servicio utilizando las credenciales del cliente para enviar un HTTP POST al punto de conexión https://login.microsoftonline.com/<tenant_id>/oauth2/token.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. Este es un ejemplo de solicitud.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

Para el valor de * _ identificador de inquilino* en el URI de post y los parámetros de * _ identificador de cliente* y * _ secreto de cliente* , especifique el identificador de inquilino, el identificador de cliente y la clave de la aplicación que recuperó del centro de Partners en la sección anterior.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. Para el parámetro resource, tiene que especificar https://manage.devcenter.microsoft.com.For the resource parameter, you must specify https://manage.devcenter.microsoft.com.

Una vez que expire el token de acceso, puedes actualizarlo siguiendo las instrucciones que se muestran aquí.After your access token expires, you can refresh it by following the instructions here.

Paso 3: llamar a la API de análisis de Microsoft StoreStep 3: Call the Microsoft Store analytics API

Una vez que tenga un Azure AD token de acceso, estará listo para llamar a la API de Microsoft Store Analytics.After you have an Azure AD access token, you are ready to call the Microsoft Store analytics API. Debes pasar el token de acceso al encabezado Authorization de cada método.You must pass the access token to the Authorization header of each method.

Métodos para aplicaciones y juegos para UWPMethods for UWP apps and games

Los siguientes métodos están disponibles para las adquisiciones de aplicaciones y juegos y las adquisiciones de complementos:The following methods are available for apps and games acquisitions and add-on acquisitions:

Métodos para aplicaciones para UWPMethods for UWP apps

Los siguientes métodos de análisis están disponibles para las aplicaciones UWP del centro de Partners.The following analytics methods are available for UWP apps in Partner Center.

EscenarioScenario MétodosMethods
Adquisiciones, conversiones, instalaciones y usoAcquisitions, conversions, installs, and usage
Errores de aplicaciónApp errors
Información detalladaInsights
Calificaciones y reseñasRatings and reviews
Anuncios en la aplicación y campañas de anunciosIn-app ads and ad campaigns

Métodos para aplicaciones de escritorioMethods for desktop applications

Los siguientes métodos de análisis están disponibles para su uso por parte de las cuentas de desarrollador que pertenecen al programa de aplicación de escritorio de Windows.The following analytics methods are available for use by developer accounts that belong to the Windows Desktop Application program.

EscenarioScenario MétodosMethods
Instala .Installs
BlocksBlocks
Errores de aplicaciónApplication errors
Información detalladaInsights

Métodos para los servicios de Xbox LiveMethods for Xbox Live services

Los siguientes métodos adicionales están disponibles para su uso por parte de las cuentas de desarrollador con juegos que usan los servicios de Xbox Live.The following additional methods are available for use by developer accounts with games that use Xbox Live services.

EscenarioScenario MétodosMethods
Análisis generalGeneral analytics
Análisis de estadoHealth analytics
Análisis de la comunidadCommunity analytics

Métodos para hardware y controladoresMethods for hardware and drivers

Las cuentas de desarrollador que pertenecen al programa del panel de hardware de Windows tienen acceso a un conjunto adicional de métodos para recuperar datos de análisis del hardware y los controladores.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. Para obtener más información, consulte API del panel de hardware.For more information, see Hardware dashboard API.

Ejemplo de códigoCode example

En el ejemplo de código siguiente se muestra cómo obtener un token de acceso Azure AD y cómo llamar a la API de Microsoft Store Analytics desde una aplicación de consola de C#.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. Para usar este ejemplo de código, asigna las variables tenantId, clientId, clientSecret y appID a los valores adecuados de tu escenario.To use this code example, assign the tenantId, clientId, clientSecret, and appID variables to the appropriate values for your scenario. Este ejemplo requiere el paquete JSON.net de Newtonsoft para deserializar los datos JSON devueltos por la API de Microsoft Store Analytics.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;
        }
    }
}

Respuestas de erroresError responses

Microsoft Store Analytics API devuelve respuestas de error en un objeto JSON que contiene códigos y mensajes de error.The Microsoft Store analytics API returns error responses in a JSON object that contains error codes and messages. En el ejemplo siguiente se muestra una respuesta de error producida por un parámetro no válido.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"
}