ReviewNotifier NuGet package

One of the things I’ve seen a lot of blog posts about and heard a lot of buzz around lately is the ability to ask users to review an app automatically after a number of launches. This is a really good mechanism to get a lot more ratings and reviews for your app, as it makes the process easier for your app users. While there are some excellent resources out here that explain how to implement such a solution, I’ve tried to make the process a little bit more straightforward by releasing a ReviewNotifier NuGet package. This package relies on my StorageHelper NuGet package, which I’ve also released today.

Installing the package

You can either use the Package Manager Console or the NuGet GUI in Visual Studio to install the package. In the Package Manager Console, simply use the following command:

Install-Package ReviewNotifier

The package will automatically add the proper library reference according to the type of project you’re adding it to (Windows Phone 7, Windows Phone 8 or Windows 8). If you’re using the NuGet GUI in Visual Studio, simply search for ReviewNotifier and install it that way.

Usage

Two things need to be done with the library to make things work: initialization and triggering the notification. The initialization will need to be done when the app is launched, so App.xaml.cs is a good place to do that. After that, simply call the trigger method in the Loaded event of the app’s first page and you’re all set. The implementation for each platform is outlined below:

Windows Phone 7

Initialization

private void Application_Launching(object sender, LaunchingEventArgs e)
{
    ReviewNotification.Initialize();

    // Rest of your Application_Launching method
    ...

Triggering the notification

ReviewNotification.Trigger("Message", "Title");
ReviewNotification.Trigger("Message", "Title", 5);

By default, the notification will trigger after 5 launches, but you can use the overload to specify a different launch count if needed. The notification on Windows Phone uses the default MessageBox implementation, so just pass a message and title for it and you’re good to go.

Windows Phone 8

As the relying methods on Windows Phone 8 use the async/await pattern, the initialization will need to be done a little bit differently:

private async void Application_Launching(object sender, LaunchingEventArgs e)
{
    await ReviewNotification.InitializeAsync();

    // Rest of your Application_Launching method
    ...

Note the async keyword added to the Application_Launching event and the await keyword in front of the initialization. Make sure you await the initialization method, as we want to be certain we have the correct new launch count when triggering the review notification.

Windows 8

On Windows 8, the launched event is different, so make sure to use the right event here. Also, the MessageDialog class we’re using is a little bit more flexible in terms of buttons (both in amount and text), so there are a couple of extra overloads to use.

Initialization

protected async override void OnLaunched(LaunchActivatedEventArgs args)
{
    await ReviewNotification.InitializeAsync();

    // Rest of your OnLaunched method
    ...

Triggering the notification

ReviewNotification.TriggerAsync("Message", "Title");
ReviewNotification.TriggerAsync("Message", "Title", 5);
ReviewNotification.TriggerAsync("Message", "Title", "OK", "Cancel");
ReviewNotification.TriggerAsync("Message", "Title", "OK", "Cancel", 5);

Hopefully ReviewNotifier will help you implement a solution to ask your app users to review your app and will result in a higher number of ratings/reviews. Let me know your feedback, comments and suggestions in the comments below or reach me on Twitter!

26 thoughts on “ReviewNotifier NuGet package

  1. Pingback: ReviewNotifier NuGet package - Rajen's Technical Tidbits - Site Home - MSDN Blogs

  2. I have an further question about his way of review, if somebody gives a review to my app will this messagebox still appear?! and how can i set it to only appear if the user has not reviewed?!

    • Unfortunately, there is no API to determine whether or not the user has already rated/reviewed the app, so the message will always be shown after the set number of launches. If there’s an API added in the future, I’ll include it in the package.

    • Thing i did was:
      If the user clicks OK on the messagebox and goes to the Store to rate, i’ll generate a key in the IsolatedStorage (called ‘reviewed’) and set it to ‘true’. At every app start, i’ll check IsolatedStorage for the value (default is set to ‘false’).

      Thing is that if the user clicked OK and didn’t rate, the messagebox won’t shop up. In my opinion this will be a bit more user-friendly than showing the messagebox multiple times (i do it at 5 and 15 app starts).

      • This is exactly what my NuGet package does, or am I missing something (apart from the second notification at 15 app starts)? It only shows after the first 5 starts and then never again.

  3. and another question tied to this, i have an wp7 project an wp8 users use it also, if i deploy this to my wp8 device i dont see this review messagebox, but i see it in the 7.1 emulator. how can i implement it in a wp7 project wich uses the wp8 also?! so that also wp8 users see this?

    • Are you sure the message doesn’t show up? If it shows up on the emulator, it should also show up on the device. I’ve used this method on my apps as well and have never seen the behavior you mention.

      • no it dont show up because i have not build any wp8 app my app.xaml page has only a wp7 “layout” with

        private void Application_Launching(object sender, LaunchingEventArgs e)
        {
        ReviewNotification.Initialize();

        i have not used the async and await because i dont know how to implement it both in the same project my project is still wp7 because i have no special app for wp8 and i dont want one extra app :( is there any chance? and tip how to split my app and make one project for wp7 and one for wp8?!

      • but now i have an other question, can i set this multiple times?! like this:

        ReviewNotification.Trigger(“”, “”, 3);
        ReviewNotification.Trigger(“”, “”, 5); or even more times?

        • i tried this with multiple times but it doesn´t trigger. i suppose it should not show up?! can i be made to show up like i said above in the example ans with two different text inputs?!

          • You’re right, it does not work with multiple triggers, as it’s using a predetermined variable to check if the message has been displayed already. I might include that functionality in a future update!

  4. Unable to install this package on Visual Studio 2012 for Win Phone 7.8

    PM> install-package ReviewNotifier
    Attempting to resolve dependency ‘StorageHelper (≥ 1.0)’.
    Successfully installed ‘StorageHelper 1.0.0′.
    Successfully installed ‘ReviewNotifier 1.0.0′.
    Successfully uninstalled ‘StorageHelper 1.0.0′.
    Install failed. Rolling back…
    install-package : Could not install package ‘StorageHelper 1.0.0′. You are trying to install this package into a project that targets
    ‘Silverlight,Version=v4.0,Profile=WindowsPhone71′, but the package does not contain any assembly references that are compatible with that framework. For more
    information, contact the package author.
    At line:1 char:1
    + install-package ReviewNotifier
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Install-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

    • That’s very strange, I’ve just tried it both from the console and the GUI and both seem to be working. Are you running the latest NuGet version?

  5. I’m running Visual Studio V4.5.50709
    which has
    Package Manager Console Host Version 2.0.30717.9005

  6. SUCCESS!!
    The update did the trick and I was able to install the package successfully. Rajen, thanks for all the hand-holding!
    I look forward to implementing this.

    - Charlie

  7. Pingback: How to get reviews for your App | Dag König

  8. Pingback: Improve your Apps Ranking – Get it Rated - News from the South Africa Developer and Platform Group - Site Home - MSDN Blogs

  9. Pingback: Zero lines of code solution to entice Windows Phone users to rate and review an app

  10. Pingback: Bouw apps voor een Developer Phones of andere leuke prijzen - MSDN The Netherlands Team Blog - Site Home - MSDN Blogs

  11. Pingback: Build apps for a device - Rajen's Technical Tidbits

  12. Pingback: Extra Lumia 925’s beschikbaar voor “Bouw je apps voor een Developer Phone” - MSDN The Netherlands Team Blog - Site Home - MSDN Blogs

Leave a Reply