Android App Reviews through Prompts

A common problem and question with new developers is how to get android app reviews. You have put out a great app and can’t figure out why no one has left you the 5 star review you incredibly deserve. Maybe you need more users? Well you don’t get high up in the Google Play store without many reviews. And here is the Android Chicken and Egg problem: You need reviews to get users and you need users to get reviews.

One path some developers go to is paying for reviews. This is almost always a bad idea. While you might get a spike in reviews, you will eventually be found out and those reviews will slowly disappear.  This approach also leaves out the most important part of the review, which is good user feedback. As a start-up developer you will want to make lots of small incremental changes to your App. Often the best source of what should be in these changes comes from your users (after all they are who you want to please). Early on in our USA Road Sign Test game we overlooked one critical feature. We treated the App like a game and not an educational test. We didn’t notice until we got this review “wish it would tell you the signs that you got incorrect”. Of Course! Seems logical enough but as developers you will often miss simple things.  If you use a system to get reviews that are “less than honest” you are missing out on this valuable cycle.

If you just wait for reviews to come in you may be waiting for a while. The next and the best (in our opinion) option is to prompt users for reviews.  But word of caution, if you prompt users constantly and without regard to their experience you will do more harm than good. You do not want angry users reviewing your app. So forcing your users to visit your Google Play Page without options to dismiss  or never be prompted again will only end with everyone crying.

Two main things you want to keep in mind are 1) How long has the user had the App 2) How many times has the user launched the App . This ensures that the user that reviews you is a “Fan” and probably won’t mind being prompted for a review.  A third option but not one that we use to to check to see if the App has ever crashed.  If it has crashed don’t prompt the user for a review. If you want this approach you can use libraries such as AppRate. For our USA Road Sign Test game we use an implementation similar to this AppRater. It allows the developer to specify the days and launches to prompting (we usually user 3 for both). We have added some additional functionality to our code to allow users to ignore the prompt forever or just once. We keep track of this using SharedPreferences.

AppRater send you to a market of your choosing. Not all users use Google Play so we normally make multiple builds for each marketplace. We use a global market variable that handles this.

//make this a global in your App so you only set it once

private int market=0; //0=Google Play 1=Amazon 2=SlideME

//Make this method in your main Activity class (prefer to be extendable) so it can be called anywhere

public String getMarketPlace(){

switch(market){
 case 0:
 return "https://market.android.com/details?id=<package>";
 case 1:
 return "http://www.amazon.com/gp/mas/dl/android?p=<package?";
 case 2:
 return "http://slideme.org/application/<name>";
 }

return null;

}

Now does it work? Well for USA Road Sign Test we only had 5 reviews after the first few months. Once we started prompting we went up fast in the Google Plat rankings. We now a few months later have 40+ reviews which are mostly positive.None of the reviews have complained about being prompted once for a review.

You probably want to add some more functionality for adding reviews into your program. For instance we also have a link in our options menu that allows the user to share the MarketPlace Address with their social networks using the same method as above.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
 MenuInflater inflater = getMenuInflater();
 inflater.inflate(R.menu.my_menu, menu);
 return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
 // Handle item selection
switch (item.getItemId()) {
case R.id.share:
 Intent shareIntent = new Intent(Intent.ACTION_SEND);
 shareIntent.setType("text/plain");
 shareIntent.putExtra(Intent.EXTRA_TEXT,"Check out this app! "+getMarketPlace());
 shareIntent.putExtra(Intent.EXTRA_SUBJECT,"Check out this app!");
 startActivity(Intent.createChooser(shareIntent,"Share..."));
 return true;
return super.onOptionsItemSelected(item);
 }
}

This is a good base to get you up and going for more Android App Reviews. If you have some other options or suggestions please leave them in our DISQUS comments section.