Adding AppStore’s Rate and Review feature to your iOS Application

Soheil Novinfard
4 min readMay 27, 2019

--

Rating slider by Anders Bjarnle

Getting feedback from the users is one of the most important parts of every mobile application with a business plan. The app users in iOS can provide their feedback in the form of ratings and reviews at AppStore. In this article, we are presenting an easy and effective solution to get feedback from users.

Before the arrival of iOS 10.3, developers used a create a button with a link to AppStore to provide a way for users to rate the application. The link could be created as follows:

If you do not know your app id follow these steps [1]:

  1. Log into AppStore Connect
  2. Click My Apps
  3. Click on the App Icon you are interested in
  4. Make sure you are on the App Store page
  5. Go toApp Information section (it should automatically take you there)
  6. At the bottom of that page, there is a blue link that says View on App Store. Click it and it will open to a blank page. Copy what is in the URL bar at the top of the page and that's your app reviews link. It will be live once the app is live.
Figure 1 — Finding “App Id” in AppStore connect

But this led to a lot of ugly-faced rating views. Additionally, it was not easy to use and user-friendly. As a result, iOS provided a built-in view for this purpose in StoreKit Framework [2]. To call this view you only need to call requestReview method:

The result will be arising of the rating view in Figure 2:

Figure 2 — Native iOS rating and review feature

However, there are some vital facts about this method:

First of all, you should not call this method in a button press action or anything which triggers casually. The reason is the number of times that your app can call this method is limited to 3 times per year (365 days) [3]

Secondly, the action triggered after calling this method is different based on where it happens:

a) In Simulator

Every time you will see the feedback view.

b) In Test Flight mode:

You never see the feedback view

c) In production mode:

It is based on OS decision to show or not show the feedback UI which as we described above is only happens 3 times annually.

Thus, we should have a strategy when and where to prompt the rating view. We should not interrupt the user while they are doing an action. You do not tend to get negative feedbacks of angry users, do you? :D

The other fact is that we should bear in mind is that we should not ask the users to rate before they spend a reasonable time in the app. Moreover, we should not waste our limited opportunity of showing the review feedback by triggering it repeatedly or without enough gap between request times.

To have an easy and suitable solution for review requests, I created the following helper:

As can be seen, there are two methods that you should call in your application:

Increase Engaging Count (incrementAppOpenedCount)
You should call this method whenever the user engaging factor of your application is increased. One of the easiest ways is to call this when the application is opened by the user. You can set this in AppDelegate :

Ask for Review (checkAndAskForReview)
This method should get called when the user is ready for submitting their review. For instance, I called this method when users opened their dashboard page of the application:

When will review be triggered?

By the default setting, it will be called firstly after 10 times (or more) engaging of the user with the app. The next time would be after 20, 60, 240 times and so on.

You can see an example of the above implementation in Smart Wallet open source app:

https://github.com/novinfard/SmartWallet/commit/e0c039316a8c5ac5c92859757465fb1355ddb44e

As a final notice, users can opt out of appStore rating and reviews by changing the option in iOS Settings .

Figure 3 — Enable / Disable `Ratings and Reviews` in iOS Settings

--

--

Soheil Novinfard

Accomplished software engineer with +11 years of experience in collaborating with the product and design teams, helping the travellers at @Skyscanner