ストア サービスを使った分析データへのアクセスAccess analytics data using Store services

使用して、 Microsoft Store analytics APIをプログラムによって、または組織のパートナー センターの Windows アカウントに登録されているアプリの分析データを取得します。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. この API では、アプリおよびアドオン (アプリ内製品または IAP とも呼ばれます) の入手数、エラー、アプリの評価とレビューに関するデータを取得できます。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. この API は、Azure Active Directory (Azure AD) を使って、アプリまたはサービスからの呼び出しを認証します。This API uses Azure Active Directory (Azure AD) to authenticate the calls from your app or service.

次の手順で、このプロセスについて詳しく説明しています。The following steps describe the end-to-end process:

  1. すべての前提条件を完了したことを確認します。Make sure that you have completed all the prerequisites.
  2. Microsoft Store 分析 API のメソッドを呼び出す前に、Azure AD アクセス トークンを取得する必要があります。Before you call a method in the Microsoft Store analytics API, obtain an Azure AD access token. トークンを取得した後、Microsoft Store 分析 API の呼び出しでこのトークンを使用できるのは、その有効期限が切れるまでの 60 分間です。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. トークンの有効期限が切れた後は、新しいトークンを生成できます。After the token expires, you can generate a new token.
  3. Microsoft Store 分析 API を呼び出しますCall the Microsoft Store analytics API.

手順 1:Microsoft Store analytics API を使用するための前提条件Step 1: Complete prerequisites for using the Microsoft Store analytics API

Microsoft Store 分析 API を呼び出すコードの作成を開始する前に、次の前提条件が満たされていることを確認します。Before you start writing code to call the Microsoft Store analytics API, make sure that you have completed the following prerequisites.

  • ユーザー (またはユーザーの組織) は、Azure AD ディレクトリと、そのディレクトリに対する全体管理者のアクセス許可を持っている必要があります。You (or your organization) must have an Azure AD directory and you must have Global administrator permission for the directory. Office 365 または Microsoft の他のビジネス サービスを既に使っている場合は、既に Azure AD ディレクトリをお持ちです。If you already use Office 365 or other business services from Microsoft, you already have Azure AD directory. それ以外の場合は、追加料金なしにパートナー センターで新しい Azure AD を作成できます。Otherwise, you can create a new Azure AD in Partner Center for no additional charge.

  • Azure AD アプリケーションをパートナー センター アカウントに関連付ける、テナント ID と、アプリケーションのクライアント ID を取得、およびキーを生成する必要があります。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. Azure AD アプリケーションは、Microsoft Store 分析 API の呼び出し元のアプリまたはサービスを表します。The Azure AD application represents the app or service from which you want to call the Microsoft Store analytics API. テナント ID、クライアント ID、およびキーは、API に渡す Azure AD アクセス トークンを取得するために必要です。You need the tenant ID, client ID and key to obtain an Azure AD access token that you pass to the API.

    注意

    この作業を行うのは一度だけです。You only need to perform this task one time. テナント ID、クライアント ID、キーがあれば、新しい 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.

Azure AD アプリケーションをパートナー センター アカウントに関連付けるし、必要な値を取得します。To associate an Azure AD application with your Partner Center account and retrieve the required values:

  1. パートナー センターの、組織の Azure AD ディレクトリと、組織のパートナー センター アカウントを関連付けるします。In Partner Center, associate your organization's Partner Center account with your organization's Azure AD directory.

  2. [次へ]、ユーザーページで、アカウント設定パートナー センターの「して Azure AD アプリケーションを追加アプリを使用してサービスを表す分析データをパートナー センター アカウントにアクセスします。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. このアプリケーションに必ずマネージャー ロールを割り当てます。Make sure you assign this application the Manager role. アプリケーションが存在しない場合、Azure AD ディレクトリで実行できますを新規作成パートナー センターで Azure AD アプリケーションします。If the application doesn't exist yet in your Azure AD directory, you can create a new Azure AD application in Partner Center.

  3. [ユーザー] ページに戻り、Azure AD アプリケーションの名前をクリックしてアプリケーション設定に移動し、 [テナント ID][クライアント 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. [新しいキーの追加] をクリックします。Click Add new key. 次の画面で、 [キー] の値を書き留めます。On the following screen, copy down the Key value. このページから離れると、この情報に再度アクセスすることはできません。You won't be able to access this info again after you leave this page. 詳しくは、「Azure AD アプリケーションのキーを管理する方法」をご覧ください。For more information, see Manage keys for an Azure AD application.

手順 2:Azure AD アクセス トークンの取得Step 2: Obtain an Azure AD access token

Microsoft Store 分析 API のいずれかのメソッドを呼び出す前に、まず API の各メソッドの Authorization ヘッダーに渡す Azure AD アクセス トークンを取得する必要があります。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. アクセス トークンを取得した後、アクセス トークンを使用できるのは、その有効期限が切れるまでの 60 分間です。After you obtain an access token, you have 60 minutes to use it before it expires. トークンの有効期限が切れた後は、トークンを更新してそれ以降の API 呼び出しで引き続き使用できます。After the token expires, you can refresh the token so you can continue to use it in further calls to the API.

アクセス トークンを取得するには、「クライアント資格情報を使用したサービス間の呼び出し」の手順に従って、HTTP POST を 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. 要求の例を次に示します。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

テナント_id POST URI の値とクライアント_idクライアント_シークレットパラメーター、テナントの指定ID、クライアント ID、前のセクションで、パートナー センターから取得したアプリケーションのキー。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. resource パラメーターには、https://manage.devcenter.microsoft.com を指定します。For the resource parameter, you must specify https://manage.devcenter.microsoft.com.

アクセス トークンの有効期限が切れた後は、この手順に従って更新できます。After your access token expires, you can refresh it by following the instructions here.

手順 3:Microsoft Store analytics API を呼び出すStep 3: Call the Microsoft Store analytics API

Azure AD アクセス トークンを取得したら、Microsoft Store 分析 API を呼び出すことができます。After you have an Azure AD access token, you are ready to call the Microsoft Store analytics API. 各メソッドの Authorization ヘッダーにアクセス トークンを渡す必要があります。You must pass the access token to the Authorization header of each method.

UWP アプリやゲームのためのメソッドMethods for UWP apps and games

次の方法では、アプリやゲームの買収やアドオン買収使用できます。The following methods are available for apps and games acquisitions and add-on acquisitions:

UWP アプリ向けのメソッドMethods for UWP apps

次の analytics メソッドは、パートナー センターでの UWP アプリで利用できます。The following analytics methods are available for UWP apps in Partner Center.

シナリオScenario メソッドMethods
取得、変換、インストール、および使用状況Acquisitions, conversions, installs, and usage
アプリのエラーApp errors
InsightsInsights
評価とレビューRatings and reviews
アプリ内広告と広告キャンペーンIn-app ads and ad campaigns

デスクトップ アプリケーション向けのメソッドMethods for desktop applications

次の分析メソッドは、Windows デスクトップ アプリケーション プログラムに参加している開発者アカウントで利用できます。The following analytics methods are available for use by developer accounts that belong to the Windows Desktop Application program.

シナリオScenario メソッドMethods
インストールInstalls
ブロックBlocks
アプリケーション エラーApplication errors
InsightsInsights

Xbox Live サービス向けのメソッドMethods for Xbox Live services

次の追加のメソッドは、Xbox Live サービスを使うゲームの開発者アカウントで利用できます。The following additional methods are available for use by developer accounts with games that use Xbox Live services.

シナリオScenario メソッドMethods
一般的な分析General analytics
正常性分析Health analytics
コミュニティ分析Community analytics

Xbox One ゲーム向けのメソッドMethods for Xbox One games

次の追加のメソッドには、Xbox 開発者ポータル (XDP) を通じてが取り込まれた Xbox One のゲーム開発者アカウントで使用可能と XDP Analytics ダッシュ ボードに表示です。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.

シナリオScenario メソッドMethods
取得Acquisitions
エラーErrors

ハードウェアとドライバー向けのメソッドMethods for hardware and drivers

開発者アカウントに属している、 Windows ハードウェア ダッシュ ボード プログラム追加ハードウェアとドライバーの分析データを取得するためのメソッドのセットにアクセスします。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. 詳細については、次を参照してください。ハードウェア ダッシュ ボード APIします。For more information, see Hardware dashboard API.

コードの例Code example

次のコード例は、Azure AD アクセス トークンを取得し、C# コンソール アプリから Microsoft Store 分析 API を呼び出す方法を示しています。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. このコード例を使う場合は、変数 tenantIdclientIdclientSecret、および appID を自分のシナリオに合った適切な値に割り当ててください。To use this code example, assign the tenantId, clientId, clientSecret, and appID variables to the appropriate values for your scenario. この例では、Microsoft Store 分析 API から返される JSON データを逆シリアル化するときに、Newtonsoft の Json.NET パッケージが必要になります。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;
        }
    }
}

エラー応答Error responses

Microsoft Store 分析 API は、エラー コードとメッセージが含まれた JSON オブジェクトにエラー応答を返します。The Microsoft Store analytics API returns error responses in a JSON object that contains error codes and messages. 次の例は、無効なパラメーターに対するエラー応答を示しています。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"
}