How to increase your Windows 8 app ratings

Today I described a trick for Windows Phone how to increase the numbers but also the average rating of your app. It worked very well for the my rubber duck app I wrote. A little over 11000 downloads with over 1000 reviews is a ratio of 1:11 which is very good.

The trick is to ask people to review your app (and provide them a very simple way to do it) after they start your app 5 times. The theory is nobody starts the app 5 times if they don’t like it and if the start it for the 5th time they probably like the app and give you a good rating.

Mark Monster blogged about this trick before. You can find his post here. Fons Sonnemans showed some code in his blog how to create a simple MessageDialog like we have on Windows Phone. I stripped down all the extras to the bare minimum in the sample below.

I placed this code in the OnLaunched event in the App.xaml.cs file. Just place it at the botton below the Windows.Current.Activate(); part

int started = 0;
if (Windows.Storage.ApplicationData.Current.RoamingSettings.Values.ContainsKey("started"))
{
     started = (int)Windows.Storage.ApplicationData.Current.RoamingSettings.Values["started"];
}

started++;
Windows.Storage.ApplicationData.Current.RoamingSettings.Values["started"] = started;

if (started == 2)
{
     var md = new Windows.UI.Popups.MessageDialog("Thank you for using Rubber Duck for a while now, would you like to review this app?", "Please review my app");
     bool? reviewresult = null;
     md.Commands.Add(new Windows.UI.Popups.UICommand("OK", new Windows.UI.Popups.UICommandInvokedHandler((cmd) => reviewresult = true)));
     md.Commands.Add(new Windows.UI.Popups.UICommand("Cancel", new Windows.UI.Popups.UICommandInvokedHandler((cmd) => reviewresult = false)));
     await md.ShowAsync();
     if (reviewresult == true)
     {
         string familyName = Package.Current.Id.FamilyName;
         await Windows.System.Launcher.LaunchUriAsync(new Uri(string.Format("ms-windows-store:REVIEW?PFN={0}", familyName)));
     }
}

One change I did is I put the keyword async in front of the OnLaunched event so it looks like this:

        async protected override void OnLaunched(LaunchActivatedEventArgs args)

Hope this helps you get more and better reviews of your app.