Поделиться через


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

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

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

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

Внимание

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

Отображение рейтинга и диалогового окна проверки в приложении

Чтобы программным образом отобразить диалоговое окно из приложения, которое просит клиента оценить приложение и отправить отзыв, вызовите метод 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.

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

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

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

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

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

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

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