« WP7 Error Reporting done simply | Main | WP7 Trial Mode done simply »
Tuesday
Jun282011

Getting ratings for your WP7 app

The second post in my series of blog posts covering the code Tips & Tricks I shared at UK Tech.Days, is about getting more positive ratings/reviews for your Windows Phone 7 app.

Anyone who has had a bad experience with your application is motivated to go and leave it a scathing review, whereas the hundreds of people who loved your app may never even consider leaving it a good review. One way to counter this is to simply ask those users who like your app to leave you a review, however you don't want to bug people too often or before they've had a real chance to use your application. So what can you do?

Well one suggestion that I've heard a few times is to wait until a user has run your application a number of times (say 10) and then throw up a message box asking them to rate your app. By waiting until the user has run the app a number of times you can be more confident in receiving a positive review because at this point chances are they like the app or they wouldn't keep returning to it. To avoid bugging users too often you should increase the number of runs between each time you display the message box so that the user doesn't feel like they are having to constantly hit 'no' every time they open the app. Also giving the user the option to never be asked again is a good way to say on their good side.

The following block of code can be dropped into any existing application and helps provide the above functionality:

private static bool PerformedRatingPromptCheck = false;
private void PhoneApplicationPage_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
    if (!PerformedRatingPromptCheck)
    {
        PerformedRatingPromptCheck = true;

        int numAppLaunches = 0;
        IsolatedStorageSettings.ApplicationSettings.TryGetValue<int>("Rating_numAppLaunches", out numAppLaunches);

        int numNextRatingPrompt = 0;
        if (!IsolatedStorageSettings.ApplicationSettings.TryGetValue<int>("Rating_numNextRatingPrompt", out numNextRatingPrompt))
        {
            numNextRatingPrompt = 5;
        }

        if (numAppLaunches >= numNextRatingPrompt)
        {
            IsolatedStorageSettings.ApplicationSettings["Rating_numNextRatingPrompt"] = numNextRatingPrompt * 2;

            NotificationBox.ShowAgain("Enjoying the app?",
                    "Would you like to rate this app now?",
                    "Ask me later",
                    false,
                    Surpressed => { },
                    "Rating_MsgPrompt",
                    new NotificationBoxCommand("Yes", () => { new MarketplaceReviewTask().Show(); }),
                    new NotificationBoxCommand("No", () => { }));
        }

        IsolatedStorageSettings.ApplicationSettings["Rating_numAppLaunches"] = numAppLaunches + 1;
    }
}

This code simply pulls two values out of the IsolatedStorageSettings, one that tracks the number of times the application has been run and one that tracks when you're next going to show the prompt, and then displays the prompt if needed. If the user clicks the 'Yes' button on the prompt then a "MarketplaceReviewTask" is created and shown so that the user can leave your app a review.

You may have noticed that the 'prompt' the code above shows is not a standard Windows Phone MessageBox but is instead a 'NotificationBox'. Tomer Shamam has created an incredibly handy DLL that provides a prompt that looks like the Windows Phone MessageBox but also allows you to have a tick box which can be unticked to cause the prompt to never be shown again. The result will look something like this:

So by simply downloading the NotificationBox DLL, referencing it in your application and then including the code snippet above you can hopefully dramatically increase the number of positive ratings/reviews your app receives.

This post was also a guest post over at the VerySoftware Blog

References (8)

References allow you to track sources for this article, as well as articles that were written in response to this article.
  • Response
    Response: Hui
    I read this post
  • Response
    Response: Hollister
    Hello, here to post points. Here's a good article written, rich in content. If you want more information, look at the situation here:Hollister
  • Response
    A certain be aware if she is a redhead, Do not Get GREEN. It straightforward, it hackneyed, it incredibly exceptionally quite obvious, and believe in me - from the time she is definitely an grownup she is positively unwell of plain outdated green jewelry, particularly peridot, that is the cheapest, and ...
  • Response
    Response: tJERzyKg
    Getting ratings for your WP7 app - Roybott's Blog - Roybott.com
  • Response
    Response: jordans homme
    Bags at the moment are becoming among probably the most crucial commodities in the present lifestyle. You cannot choose shopping without having a bag. Purchasing bag, college bags, travel bags, bags for packaging lunch and the listing goes on and on.
  • Response
    Response: incompetence
    Getting ratings for your WP7 app - Roybott's Blog - Roybott.com
  • Response
    Getting ratings for your WP7 app - Roybott's Blog - Roybott.com
  • Response
    Getting ratings for your WP7 app - Roybott's Blog - Roybott.com

Reader Comments (3)

Hello,

Does this also handle when they review the application or will it keep popping up even after a review?

Thanks

November 10, 2011 | Unregistered CommenterNorrise

Awesome Post. Thanks Roybott!!!

May 31, 2013 | Unregistered CommenterManikandan

Nice blog

January 23, 2014 | Unregistered CommenterZiaxp

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>