Rating

Ask for a rating only after the user has demonstrated engagement with your app. For example, prompt the user upon the completion of a game level or productivity task. Never ask for a rating on first launch or during onboarding. Allow ample time to form an opinion.

As Google and Apple doesn't want us to force users to leave a review we won't be able to really knows if a user did it.
The only thing that we can do is to ask it at the best possible moment.

You have two options:

  • in-app rating popup (handled by Android / iOS)
  • open store listing (opens stores on your app. More annoying)

Open store listing

You can do this without any quota. But this is annoying and that is what you don't want. Rating popup requires little effort while pushing a review using store listing requires really more.

RateBanner widget

For a better experience this kit provides you a banner that will ask kindly to your users leaving a review.

The widget will only show itself if some conditions are fullfilled :

  • delayBeforeAsking: user has authenticated since a certain duration
  • delayBeforeAskingAgain: delay after user pushed the later button

You can customize this as you want. By default all those parameters are set within the environnement object. But you can override them directly in the widget.

Check how it works looking the tests in /test/core/rating/rating_banner_test.dart

👉 I strongly recommend you to ask using popup OR pushing store listing.

Not both

Related articles


in-app rating popup

iOS

You can't ask for direct rating more than 3 times within 365 days.

You can ask for ratings and respond to reviews to improve your app’s discoverability, encourage downloads, and build rapport with people who use your app.

Source: apple documentation

Android

To provide a great user experience, Google Play enforces a time-bound quota on how often a user can be shown the review dialog. Because of this quota, calling the launchReviewFlow method more than once during a short period of time (for example, less than a month) might not always display a dialog.
Note: The specific value of the quota is an implementation detail, and it can be changed by Google Play without any notice.

Source: developer android documentation

Prerequest popup

To prevent you from exceding the quota we made a popup that will just like our banner call the native popup only if user is ok to leave a review.

You have absolutely not influence the user for doing it. Apple or Google could remove your app for doing this

A pre-request popup asking the user if he has 10 seconds to give your app a rating before showing the real rating popup from the system.

// see lib/core/rating/widgets/rate_popup.dart
showRatingPopup(WidgetRef ref) {...}

You can call it from any widget using riverpod. You won't have to bother about spaming the user. The method will check if it should show the popup or not.

it will save the last request time and user answer Won't show again if user has recently see the request (delay param can be changed) Won't show again if user said once "Yes" See lib/core/rating/models/rating.dart for more details.

✅ Good:

  • Do you have a minute to leave us a review on the store?

❌ Bad:

  • Get a free pass by leaving a review
  • Leave us a positiv review
  • Give us a review to keep using...

Other interesting plugin