How to get 5 star reviews from your iPhone app's happy users

iphone_app_reviews Analyzing how users are prompted to review iPhone apps,  it seems that our apps are more likely to get negative reviews. Here’s why: a user is prompted to rate an app when he deletes it. When the app is deleted, it is pretty safe to say that the user was not satisfied with it, so the review will be a negative one. That’s ok, if the app is not good enough, other users should know that. But what about the good/great apps, the ones that you use successfully and don’t delete. Shouldn’t you be encouraged to leave a review in this case too? That review would probably be a positive one, or at least constructiv (you might say what you would like to see improved).

Read on to learn how we solved this and get the full source code to add this feature to your own app!

Why not invite the user to leave a review for your app, after 10, 20 or 30 days of use? An alert will pop up, similar to the image above, and the user will have the options to go to the App Store in order to leave a review, hide the alert temporary or permanently.

After how many days should you show this alert?
If you’re publishing a new app, more days is probably better than less. Our class defaults to 10 days, which we find to be a good compromise. Choosing fewer days might get you more reviews, but if someone is still using the app after a couple of weeks, it is a lot more likely that he will leave a 5 stars review.

If you’re publishing an update to your app, you can have the pop-up shown at the very first launch, because people updating will be likely to leave a positive review. If you know your app has a good user base, then you can bet on your loyal users because first time users would be more likely to just dismiss the dialog.

Let’s see now the technical part. The good news is that you can add this to your project really easy: add the following Objective-C class, ReviewsAlert, to your project, and include this line of code in your applicationDidFinishLaunching method:

[ReviewsAlert showReviewsAlert];

You should also modify the reviews URL (put the id of your app); line 59 in ReviewsAlert.m:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=307757516&pageNumber=0&sortOrdering=1&type=Purple+Software"]];

You can change the number of days on line 39:

int daysToWait = (3600 * 24) * 10; // 10 days

NSUserDefaults class is used to store the initial date (when the user first ran the app). Every time the app is launched, we substract that date from the current date and calculate if the required number of days passed already.

NSUserDefaults is also used to store boolean variables like reviewsAlertBanned (set on YES if the user tapped Don’t ask again) and userDidRate (if the user tapped Go to the App Store).

Here are the 2 files that you need to download: