Apple makes it easy to rate an apps during an uninstall by popping up an alert-box and asking for a star rating. This is, in fact, the easiest way to provide feedback. Absent an uninstall, a user must first launching the app store and then navigating to the app before providing a rating. Consequently, the App Store has a bias towards negative ratings.
Some apps — including the New York Times app — prompt frequent users to positively rate the app as a counter-measure to this negative rating bias. This article investigates how to pick the right users to prompt for a rating and includes simple sample code to ease collecting reviews.
Picking Positive People
People who use your application over an extended period of time are most likely to provide a positive rating. Some evidence to support this:
An analysis of 30-million app downloads determined that around 80-percent of free apps and 70-percent of paid apps are effectively abandoned by their second day on the device. After a month, more than 95% of the users who’ve installed an app no longer use it.

Long-term use implies positive feelings. People who don’t dig your app will abandon it. So, the question is, at what point should you prompt a user for a review?
To some extent, you’ll have to trade volume for quality. Ask too early and you risk negative reviews; wait long enough and the review will almost certainly be positive, but there won’t be many of them.
For a new app, I’d favor a larger number of ratings — particularly given the evidence that having 20 or more reviews seems to drive sales — and ask after 10 days. After the app is established, I’d start to favor higher ratings by waiting longer, seting the bar at around a month.
If your app is a game — or has some other obvious “woot!” moments — consider opportunistically prompting for a rating when they make some feel-good achievement like a high score.
Code
Prompting a user to provide a rating is straight forward: using the User Defaults system, we’ll record the date of the first launch. When the user crosses an installed-age threshold, we’ll ask for a rating using alert-view and — with their permission — take them right to the app’s page in the Store to enter a rating.
To prompt the user for a rating after the app’s been installed for 10 or more days add the following code the viewDidLoad method in its main view controller:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (! [defaults objectForKey:@"firstRun"]) {
[defaults setObject:[NSDate date] forKey:@"firstRun"];
}
NSInteger daysSinceInstall = [[NSDate date] timeIntervalSinceDate:[defaults objectForKey:@"firstRun"]] / 86400;
if (daysSinceInstall > 10 && [defaults boolForKey:@"askedForRating"] == NO) {
[[[UIAlertView alloc] initWithTitle:@"Like This App?" message:@"Please rate it in the App Store!" delegate:self cancelButtonTitle:@"No Thanks" otherButtonTitles:@"Rate It!", nil] show];
[defaults setBool:YES forKey:@"askedForRating"];
}
[[NSUserDefaults standardUserDefaults] synchronize];
To launch the open the app’s page in the App Store when the user taps the “Rate It!” button subscribe to the UIAlertViewDelegate protocol and implement it’s callback method.
Add the protocol to the view controller’s header file, e.g.:
@interface RootViewController : UIViewController <UIAlertViewDelegate> {
// ...
}
Add the callback method to the view controller’s implementation:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 1) {
NSURL *url = [NSURL URLWithString:@"YOUR URL TBD!!!"];
[[UIApplication sharedApplication] openURL:url];
}
}
This callback opens the app's page in the App Store by launching its URL. To determine your's app's URL:
- Open iTunes on your Mac
- Select iTunes Store from the left-panel
- Enter your app's name in the Search iTunes Store text field and hit enter
- Control-click on your app's icon and select Copy iTunes Store URL
Opening an App Store URL doesn't work in the simulator; so test this on a device.

Recent Comments