Menu

Review Plugin

The review plugin allows you to gather intel from users on their experience using your app. This also encourages users who feel positive towards the app to review it in the app store.

As users are using and interacting with your app, there is the possibility for them to attain points. Points can be given out at any time the developer decides. For example, when a user purchases a product, or favorites an item.

At various points throughout the app you can call showIfEligible, which will show this plugin if the user as accumulated more points than the threshold value. This is useful because it will only ask the user for a review when the time is appropriate, and not inconveniently, such as when they are in the middle of a checkout.

User Flow

User is prompted for their experience
Negative track Positive track
If user selected "Other"

Sample Usage

const reviewPlugin = await ReviewPlugin.init('Super Secret Token')
reviewPlugin.setThreshold(100)
reviewPlugin.addPoints(40)

// This will not ask for a review
reviewPlugin.showIfEligible("Item Favorite")

reviewPlugin.addPoints(60)
// The plugin is shown
reviewPlugin.showIfEligible("Item Purchased")

Opening App Store #

When using the Review plugin on iOS your app's AppleID needs to be added to your Info.plist file. Your AppleID can be found in iTunes Connect.

Add the ID to your Info.plist file with the key appStoreID

Methods

ReviewPlugin.init(token) #

Creates and returns an instance of the review plugin that is used to make subsequent method calls.

Creates and returns an instance of the review plugin with the provided token.


setThreshold(threshold) #

Set the threshold of points needed to be eligible to show the review plugin.


setPositiveList(list) #

Set the list of feedback options which will be shown if the user has a positive experience with the app. If an empty list is supplied, the positive feedback list step in the UI will be skipped.

Example

reviewPlugin.setPositiveList([
    {id: 'good_1', label: 'It\'s amazing I love it'},
    {id: 'good_2', label: 'Feeling good about it'},
    {id: 'good_3', label: 'It\'s not bad'},
    {id: 'good_4', label: 'It could use some work'}
])

setNegativeList(list) #

Sets the list of feedback options which will be show if the user has a negative experience with the app. If an empty list is supplied, the negative feedback list step in the UI will be skipped.

Example

reviewPlugin.setNegativeList([
    {id: 'bad_1', label: 'I had a problem with shipping'},
    {id: 'bad_2', label: 'My order wasn\'t delivered on time'},
    {id: 'bad_3', label: 'I have a problem with the app'},
    {id: 'bad_4', label: 'These popups are too frequent'},
    {id: 'bad_5', label: 'The app crashed'}
])

getPoints() #

Returns the number of points currently associated with the user


setPoints(points) #

Explicitly set the number of points associated with the user. This will overwrite any existing value.


addPoints(pointsToAdd) #

Increase (or decrease if < 0) the number of points associated with the user.


resetPoints() #

Reset the points associated with the user. This also resets the flag that stops the review prompt from being shown once it has been seen once.


showIfEligible(reason) #

Checks if user points > threshold and will start the review process if true.


show(reason) #

Immediately shows and starts the review process. This does not care how many points the user has. If you only want to show the plugin if the user has enough points, use showIfEligible.


UI Fields

The UI can be fully customized by editing the following fields. Their defaults are shown.

reviewPlugin.positive = 'Woot!'
reviewPlugin.negative = 'Boo'

reviewPlugin.experienceTitle = 'How is your experience?'
reviewPlugin.experienceText = ''
reviewPlugin.feedbackTitle = 'Please give some more information'
reviewPlugin.otherTitle = 'Enter your feedback here'
reviewPlugin.otherPlaceholder = 'This is the best app in the world'
reviewPlugin.thankYouTitle = 'Thanks for your feedback. We greatly appreciate it.'
reviewPlugin.appStoreTitle = 'Would you be willing to rate us in the app store?'
reviewPlugin.appStoreYes = 'Yes!'
reviewPlugin.appStoreNo = 'No Thanks'
reviewPlugin.acknowledge = 'Ok'

UI layout

The ordering of the buttons in the Experience Dialog can be customized. The default ordering associates the negative button with the OK button of the dialog.

reviewPlugin.positiveAssociatedWithOkButton = false