Compartir a través de


Acceso a datos de análisis mediante los servicios de la Tienda

Usa la API de análisis de Microsoft Store para recuperar mediante programación los datos de análisis de las aplicaciones registradas en tu cuenta del Centro de partners de Windows o de tu organización. Esta API le permite recuperar datos para adquisiciones de aplicaciones y complementos (también conocidos como productos en la aplicación o IAP), errores, clasificaciones y revisiones de aplicaciones. Esta API usa Microsoft Entra para autenticar las llamadas desde la aplicación o el servicio.

Los siguientes pasos describen el proceso de principio a fin:

  1. Asegúrese de que ha completado todos los requisitos previos.
  2. Antes de llamar a un método en la API de análisis de Microsoft Store, obtenga un token de acceso de Microsoft Entra. Después de obtener un token, tienes 60 minutos para usar este token en llamadas a la API de análisis de Microsoft Store antes de que expire el token. Después de que el token expire, puede generar uno nuevo.
  3. Llame a la API de análisis de Microsoft Store.

Paso 1: Completar los requisitos previos para usar la API de análisis de Microsoft Store

Antes de empezar a escribir código para llamar a la API de análisis de Microsoft Store, asegúrese de que ha completado los siguientes requisitos previos.

  • Usted (o su organización) debe tener un directorio de Microsoft Entra y debe tener permiso de administrador global para el directorio. Si ya usa Microsoft 365 u otros servicios empresariales de Microsoft, ya tiene un directorio de Microsoft Entra. De lo contrario, puede crear uno nuevo en el Centro de partners sin ningún cargo adicional.

  • Debe asociar una aplicación de Microsoft Entra a su cuenta del Centro de partners, recuperar el identificador de inquilino y el identificador de cliente de la aplicación y generar una clave. La aplicación Microsoft Entra representa la aplicación o el servicio desde el que quieres llamar a la API de análisis de Microsoft Store. Necesita el identificador de inquilino, el identificador de cliente y la clave para obtener un token de acceso de Microsoft Entra que pase a la API.

    Nota:

    Solo tiene que realizar esta tarea una vez. Después de tener el identificador de inquilino, el identificador de cliente y la clave, puede reutilizarlos cada vez que necesite crear un nuevo token de acceso de Microsoft Entra.

Para asociar una aplicación de Microsoft Entra a su cuenta del Centro de partners y recuperar los valores necesarios:

  1. En el Centro de partners, asocie la cuenta del Centro de partners de su organización con el directorio Microsoft Entra de la organización.
  2. A continuación, en la página Usuarios de la sección Configuración de la cuenta del Centro de partners, agregue la aplicación Microsoft Entra 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. Asegúrese de asignar a esta aplicación el rol Administrador. Si la aplicación aún no existe en el directorio de Microsoft Entra, puede crear una nueva aplicación de Microsoft Entra en el Centro de partners.
  3. Vuelva a la página Administración de usuarios y vaya a la pestaña Aplicaciones de Microsoft Entra, haga clic en el nombre de la aplicación De Microsoft Entra para ir a la configuración de la aplicación y copie los valores id. de inquilino e Id. de cliente.
  4. Haga clic en Agregar nueva clave. En la pantalla siguiente, copie el valor de Clave. Después de salir de esta página no podrá tener acceso de nuevo a esta información. Para obtener más información, consulte Administrar claves para una aplicación de Microsoft Entra.

Paso 2: Obtener un token de acceso de Microsoft Entra

Antes de llamar a cualquiera de los métodos de la API de análisis de Microsoft Store, primero debe obtener un token de acceso de Microsoft Entra que pase al encabezado Authorization de cada método de la API. Una vez que haya obtenido un token de acceso, tiene 60 minutos para usarlo antes de que expire. Una vez que expire el token, puede actualizarlo para poder seguir utilizándolo en llamadas adicionales a la API.

Para obtener el token de acceso, siga las instrucciones de Llamadas entre servicios mediante las credenciales del cliente para enviar una solicitud HTTP POST al punto de conexión https://login.microsoftonline.com/<tenant_id>/oauth2/token. Esta es una solicitud de ejemplo.

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 tenant_id en el URI POST y los parámetros client_id y client_secret, 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. Para el parámetro resource, tiene que especificar https://manage.devcenter.microsoft.com.

Una vez que expire el token de acceso, puede actualizarlo siguiendo las instrucciones que se indican aquí.

Nota:

ResourceType=Graph.windows.net estaba en desuso en septiembre de 2023. Migre a ResourceType =Graph.microsoft.com.

Paso 3: Llamar a la API de análisis de Microsoft Store

Después de tener un token de acceso de Microsoft Entra, está listo para llamar a la API de análisis de Microsoft Store. Debe pasar el token de acceso al encabezado Authorization de cada método.

Métodos para aplicaciones y juegos para UWP

Los métodos siguientes están disponibles para las adquisiciones de aplicaciones y juegos y adquisiciones de complementos:

Métodos para aplicaciones para UWP

Los siguientes métodos de análisis están disponibles para aplicaciones para UWP en el Centro de partners.

Escenario Métodos
Adquisiciones, conversiones, instalaciones y uso
Errores de la aplicación
Información detallada
Calificaciones y reseñas
Anuncios en la aplicación y campañas publicitarias

Métodos para aplicaciones de escritorio

Los siguientes métodos de análisis están disponibles para su uso por parte de las cuentas de desarrollador que pertenecen al programa Aplicación de escritorio de Windows.

Escenario Métodos
Instalaciones
Bloques
Errores de aplicación
Información detallada

Métodos para servicios de Xbox Live

Los siguientes métodos adicionales están disponibles para su uso por parte de las cuentas de desarrollador con juegos que usan servicios de Xbox Live. La API de Análisis de Microsoft Store para Xbox ya no está disponible. gaming/xbox-live/get-started/join-dev-program/join-dev-program_nav

Escenario Métodos
Análisis general

Métodos para hardware y controladores

Las cuentas de desarrollador que pertenecen al programa de panel de hardware de Windows tienen acceso a un conjunto adicional de métodos para recuperar datos de análisis para hardware y controladores. Para más información, consulte API de panel de hardware.

Ejemplo de código

En el ejemplo de código siguiente se muestra cómo obtener un token de acceso de Microsoft Entra y llamar a la API de análisis de Microsoft Store desde una aplicación de consola de C#. Para usar este ejemplo de código, asigne las variables tenantId, clientId, clientSecret y appID a los valores adecuados para su escenario. En este ejemplo se requiere el paquete de Json.NET de Newtonsoft para deserializar los datos JSON devueltos por la API de análisis de Microsoft Store.

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 errores

La API de análisis de Microsoft Store devuelve respuestas de error en un objeto JSON que contiene códigos de error y mensajes. En el ejemplo siguiente se muestra una respuesta de error causada por un parámetro no válido.

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