- iOS 11.3+
- Xcode 10.2+
Presenting the user with a request for an App Store review using
SKStore is a good way to get feedback on your app. However, you should be aware that the prompt will only be displayed to a user a maximum of three times within a 365-day period. Choosing when and where to display this prompt is critical to your success using this API.
This sample project consists of a simulated three-step process. The user first taps the “Start Process” button, then taps “Continue Process” twice to finally be presented with a “Process Completed” view controller scene. The request for review is only shown to the user from this scene.
In addition, the following conditions need to be met before the prompt is displayed:
The review prompt must not have been shown for a version of the app bundle that matches the current bundle version. This ensures that the user is not asked to review the same version of your app multiple times.
The multistep process mentioned above must be successfully completed at least four times. This number is arbitrary and you should choose something that fits well with how many times the user is likely to complete a process in your app.
Finally, the user must pause on the “Process Completed” scene for a few seconds. This requirement limits the possibility of the prompt interrupting the user if they are about to move to a different task in your application straight away.
The conditions above exist purely to delay the call to
request and so days, weeks, or potentially even months could elapse without a user being prompted to review your app. Techniques to delay the call are valuable as they will cause it to be shown to more experienced users that are getting real value from using your app.
Present the Review Request
Spend some time thinking about the best places within your own app to show a request for review, and what conditions are appropriate to delay it. Here are some best practices:
Try to make the request at a time that will not interrupt what the user is trying to achieve in your app. For example, at the end of a sequence of events that the user has successfully completed.
Avoid showing a request for a review immediately when a user launches your app, even if it is not the first time that it launches.
Also remember that the user can disable requests for reviews from ever appearing on their device, so you should avoid referring to your app showing this prompt and never request a review using
request as the result of a user action.
In this code sample the usage data used to delay the review request is stored in
NSUser. In your app there may be more appropriate on-device storage options.
Manually Request a Review
To enable a user to initiate a review as a result of an action in the UI use a deep link to the App Store page for your app with the query parameter
action=write-review appended to the URL.