アプリの評価とレビューを求める
ユニバーサル Windows プラットフォーム (UWP) アプリでは、プログラムによってユーザーにアプリの評価やレビューを求めるコードを追加できます。 これを実現する方法にはいくつかあります。
- アプリのコンテキストで評価とレビュー ダイアログを直接表示する。
- Microsoft Store のアプリの評価とレビュー ページをプログラムで開く。
評価とレビューのデータを分析する準備が整ったら、パートナー センターでデータを参照するか、Microsoft Store 分析 API を使ってプログラムでこのデータを取得することができます。
重要
アプリ内で評価関数を追加すると、すべてのレビューによって、選択した星評価に関係なく、ユーザーを Microsoft Store の評価メカニズムに送信する必要があります。 ユーザーからフィードバックまたはコメントを収集する場合は、Microsoft Store でのアプリの評価やレビューに関連付けられることなく、アプリの開発者に直接送信されることを明確にする必要があります。 不正行為に関する詳細については、「開発者倫理規定」を参照してください。
アプリ内での評価とレビュー ダイアログの表示
アプリを評価してレビューを提出するように顧客に求めるダイアログを、アプリ内からプログラムによって表示するには、Windows.Services.Store 名前空間の RequestRateAndReviewAppAsync メソッドを呼び出します。
重要
評価とレビュー ダイアログを表示する要求は、アプリの UI スレッドで呼び出す必要があります。
using Windows.ApplicationModel.Store;
private StoreContext _storeContext;
public async Task Initialize()
{
if (App.IsMultiUserApp) // pseudo-code
{
IReadOnlyList<User> users = await User.FindAllAsync();
User firstUser = users[0];
_storeContext = StoreContext.GetForUser(firstUser);
}
else
{
_storeContext = StoreContext.GetDefault();
}
}
private async Task PromptUserToRateApp()
{
// Check if we’ve recently prompted user to review, we don’t want to bother user too often and only between version changes
if (HaveWePromptedUserInPastThreeMonths()) // pseudo-code
{
return;
}
StoreRateAndReviewResult result = await
_storeContext.RequestRateAndReviewAppAsync();
// Check status
switch (result.Status)
{
case StoreRateAndReviewStatus.Succeeded:
// Was this an updated review or a new review, if Updated is false it means it was a users first time reviewing
if (result.UpdatedExistingRatingOrReview)
{
// This was an updated review thank user
ThankUserForReview(); // pseudo-code
}
else
{
// This was a new review, thank user for reviewing and give some free in app tokens
ThankUserForReviewAndGrantTokens(); // pseudo-code
}
// Keep track that we prompted user and don’t do it again for a while
SetUserHasBeenPrompted(); // pseudo-code
break;
case StoreRateAndReviewStatus.CanceledByUser:
// Keep track that we prompted user and don’t prompt again for a while
SetUserHasBeenPrompted(); // pseudo-code
break;
case StoreRateAndReviewStatus.NetworkError:
// User is probably not connected, so we’ll try again, but keep track so we don’t try too often
SetUserHasBeenPromptedButHadNetworkError(); // pseudo-code
break;
// Something else went wrong
case StoreRateAndReviewStatus.OtherError:
default:
// Log error, passing in ExtendedJsonData however it will be empty for now
LogError(result.ExtendedError, result.ExtendedJsonData); // pseudo-code
break;
}
}
RequestRateAndReviewAppAsync メソッドは、Windows 10 Version 1809 で導入されており、Windows 10 October 2018 Update (10.0、ビルド 17763) 以降のリリースをターゲットとする Visual Studio プロジェクトでのみ使用できます。
評価とレビューの要求に対する応答データ
評価とレビュー ダイアログを表示する要求を送信すると、StoreRateAndReviewResult クラスの ExtendedJsonData プロパティに、要求が成功したかどうかを示す JSON 形式の文字列が含められます。
次の例は、ユーザーが評価またはレビューを正しく提出した後のこの要求の戻り値を示しています。
{
"status": "success",
"data": {
"updated": false
},
"errorDetails": "Success"
}
次の例は、ユーザーが評価またはレビューを提出しなかった後のこの要求の戻り値を示しています。
{
"status": "aborted",
"errorDetails": "Navigation was unsuccessful"
}
次の表では、JSON 形式のデータ文字列に含まれるフィールドについて説明します。
フィールド | 説明 |
---|---|
status | ユーザーから評価またはレビューが正しく提出されたかどうかを示す文字列です。 サポートされる値は success と aborted です。 |
data | updated という名前の単一のブール値を含むオブジェクトです。 この値は、ユーザーが既存の評価またはレビューを更新したかどうかを示します。 data オブジェクトは、成功の応答にのみ含まれます。 |
errorDetails | 要求のエラーの詳細を含む文字列です。 |
Store でのアプリの評価とレビュー ページの起動
Store のアプリの評価とレビュー ページをプログラムによって開くには、次のコード例に示すように、ms-windows-store://review
URI スキームを指定して LaunchUriAsync メソッドを使用します。
bool result = await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-windows-store://review/?ProductId=9WZDNCRFHVJL"));
詳しくは、「Microsoft Store アプリの起動」をご覧ください。
評価とレビュー データの分析
ユーザーから提出された評価とレビューのデータを分析するには、いくつかの方法があります。
- パートナー センターのレビュー レポートを使って、顧客からの評価とレビューを確認できます。 このレポートは、ダウンロードしてオフラインで参照することもできます。
- Microsoft Store 分析 API のアプリの評価の取得メソッドとアプリのレビューの取得メソッドを使って、ユーザーから提出された評価とレビューをプログラムによって JSON 形式で取得できます。