How I hacked App Store ratings for a consistently perfect 5 stars

2 days after a new version was released to the store
1 month after releasing to the App Store
6 months after releasing to the App Store

My name is Aaron Wojnowski and I built Musi (, an iOS application that lets you stream music from YouTube and SoundCloud, build playlists, edit music, and more.

For the most part, Musi’s users love the app and that fact was reflected in its reviews. However, review volume was non existent. It would take a few days for Musi to receive enough ratings after an update so that the ratings would show in the App Store, and that significantly affected ASO and downloads.

For the last two years, Musi simply implemented iRate ( on application launch. This solution was okay (I’m kidding, it was garbage). Instead of adding to Musi’s ratings, iRate simply annoyed its users. Since the prompt appeared on application launch, a time when a user opens the application and wants to interact with it, the prompt was cancelled over 99% of the time. That’s some good conversions… not.


It was clearly time to make a change, and this was accelerated by an amazing article by the folks at Circa News:

I opted to implement a similar system in Musi, and outlined some goals (many of which corresponded with Circa News’ implementation):

  1. Only target happy users
  2. Only target veteran users
  3. Give a chance for unhappy users to give feedback
  4. Don’t break the user’s context by forcing interaction
  5. Ensure users would rate the application every version

In Circa News’ rating system, they integrated the ratings with the user’s news feed. This approach could potentially apply to Musi by integrating the rating prompt inside a user’s music library, but that might annoy users as well. Instead, I opted to include the rating prompt where users were most satisfied with the app: in the music player. People use Musi to play music, so what’s a better time to ask them to rate the app than when they’re listening to some great music?

In addition to only targeting users that were likely to be happy, I wanted to only target experienced users so they could give meaningful reviews. I decided to make it so the prompt would only show if a user had more than 8 songs in their library, to guarantee that they were familiar with the app. Why 8? I don’t know.

Ensuring that users would rate the application every version was a difficult problem. An identical prompt wouldn’t be optimal, but it would also take time to build a bunch of others. Instead, I just settled on slightly changing the wording. Instead of “Are you enjoying Musi?”, I changed it to “Are you still enjoying Musi?”. Simple, friendly, personable, and effective.

After a few hours, the following rating system was born:

The initial prompt that showed
If the user chose “Not really”
If the user chose “Ok, sure”


As soon as the update was released, ratings poured in at a significantly better rate than before.

Historically, users wouldn’t think about rating it. However, with the new prompt, Musi would deliver by playing their song and in return, they’d have the option to deliver back with a rating. Since the prompt would only show the App Store link if you said you were enjoying Musi, <4 star reviews were a thing of the past.

For users that didn’t like Musi, support emails poured in and I was able to triage and fix the user’s problem. If they were satisfied and their problem fixed, I dropped a link to Musi in my email and they happily rated the app. Users that had previously said “I don’t enjoy Musi” and went out of their way to tell us why were converted into happy, long time users instead of going elsewhere. Woohoo!

Stats wise, here’s a raw breakdown of Musi’s rating responses:

11% of all users with >8 songs in their music library went on to rate it. That’s pretty good! Also, only 17% of people also said they didn’t like Musi (we both know that’s a misclick though since let’s be real nobody doesn’t like Musi).


Think about the way your app asks for ratings. Chances are you’ve put hundreds of hours into building it. Put a couple hours into increasing your ASO significantly by creating a good ratings system, and also put your satisfied customers on display.

Make sure to also respond to user emails in a courteous and friendly manner. In Musi, I opted to just use the MFMailComposeViewController since it appears more candid than a native contact form (and it’s also easier to implement!). If an irate user emailed me, I would make sure to explain my rationale behind the problem they were experiencing (if it was a UX decision, design decision, etc) and give them a bunch of options to fix it up. Then, I would ask them to follow up and attempt to build a relationship. Most times, their problem was solved and many users even said they’d tell their friends about Musi, which was a great bonus.

Finally, make sure to actually have a good app. Nothing goes further than creating something people use and enjoy.