Запрос оценок и отзывов для вашего приложения

Можно добавить код в приложение универсальной платформы Windows (UWP), чтобы программным образом запрашивать у пользователей оценку или отзыв на приложение. Это можно сделать несколькими способами:

  • Можно отобразить диалоговое окно оценки и отзыва непосредственно в контексте приложения.
  • Можно программным способом открыть страницу оценки и отзывов для вашего приложения в Microsoft Store.

Когда вы будете готовы к анализу оценок и отзывов, вы можете просмотреть данные в Центре партнеров или использовать API аналитики Microsoft Store для получения этих данных программным способом.

Важно!

При добавлении функции оценки в приложении все отзывы должны отправлять пользователя в механизмы оценки Магазина, независимо от выбранной star оценки. Если вы собираете отзывы или комментарии от пользователей, должно быть ясно, что они не связаны с оценкой приложения или отзывами в Магазине, а отправляются непосредственно разработчику приложения. Дополнительные сведения о мошеннических или нечестных действиях см. в статье Правила поведения разработчиков.

Показ диалогового окна оценки и отзыва в приложении

Чтобы программным способом отобразить диалоговое окно из вашего приложения, которое просит клиента оценить ваше приложение и отправить отзыв, вызовите метод RequestRateAndReviewAppAsync в пространстве имен Windows.Services.Store .

Важно!

Запрос на показ диалогового окна оценку и отзыва должен вызываться в потоке пользовательского интерфейса в приложении.

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, версия 1809 и может использоваться только в проектах, предназначенных для Windows 10 с обновлением за октябрь 2018 г. (10.0; Сборка 17763) или более поздней версии в Visual Studio.

Данные ответов для запросов на оценку и отзыв

После отправки запроса на отображение диалогового окна оценки и проверки свойство ExtendedJsonData класса StoreRateAndReviewResult содержит строку в формате JSON, которая указывает, был ли запрос выполнен успешно.

В следующем примере показано возвращаемое значение для данного запроса после успешной отправки оценки или отзыва пользователем.

{ 
  "status": "success", 
  "data": {
    "updated": false
  },
  "errorDetails": "Success"
}

В следующем примере показано возвращаемое значение для данного запроса, если пользователь не оставляет оценку или отзыв.

{ 
  "status": "aborted", 
  "errorDetails": "Navigation was unsuccessful"
}

В таблице ниже указаны поля, которые включаются в строку формата JSON.

Поле Описание
status Строка, указывающая, оставил ли пользователь оценку или отзыв. Поддерживаются значения success и aborted.
data Объект, содержащий одно логическое значение с именем updated. Это значение указывает, обновил ли пользователь существующую оценку или отзыв. Объект data включается только в ответы при успешном завершении.
errorDetails Строка, содержащая информацию об ошибках для запроса.

Запуск страницы оценки и отзыва страницы для вашего приложения в Store

Если вы хотите программным образом открыть страницу оценки и отзыва для вашего приложения в Store, можно использовать метод LaunchUriAsync со схемой URI ms-windows-store://review, как показано в этом примере кода.

bool result = await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-windows-store://review/?ProductId=9WZDNCRFHVJL"));

Дополнительные сведения см. в разделе Запуск приложения Microsoft Store.

Анализ данных оценок и отзывов

Для анализа данных оценок и отзывов пользователей есть несколько вариантов:

  • Вы можете использовать отчет "Отзывы " в Центре партнеров для просмотра оценок и отзывов клиентов. Также можно скачать этот отчет для просмотра в автономном режиме.
  • Можно использовать методы Получения оценок приложения и Получения отзывов на приложение в API аналитики Microsoft Store, чтобы программным образом получить оценки и отзывы пользователей в формате JSON.