> For the complete documentation index, see [llms.txt](https://docs.buildnatively.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.buildnatively.com/guides/integration/request-users-review.md).

# Request User's Review

## What is Request User's Review?

Request User's Review triggers the native in-app review prompt, asking users to rate your app directly without leaving it. Both iOS and Android provide a system-managed dialog - your app doesn't control exactly when or how often it appears, as both platforms limit how frequently it can be shown to avoid annoying users.

{% hint style="warning" %}
This feature will not work until your app is published on the App Store or Google Play. It will not appear in the Natively Preview app or in development builds.
{% endhint %}

## Prerequisites

{% hint style="success" %}
This feature is available in all plans. [See all plans](/getting-started/subscription-plans.md)
{% endhint %}

## Implementation

Choose your integration method below: **Bubble.io Plugin** (No-Code), **JavaScript SDK** (Code), or **AI Agents** (for AI-powered editors like Lovable, Base44, and Replit).

### Initialization

{% tabs %}
{% tab title="Bubble.io Plugin" %}
**Check Plugin**

Before starting, verify if the Natively plugin is already installed in your Bubble project.

1. Open your Bubble editor and navigate to the Plugins tab in the left sidebar.
2. **Check Installed Plugins:** Look through your list of installed plugins for "Natively iOS & Android app builder".
   * If it IS installed: Check the version number. If an update is available (e.g., you see a button saying "Update"), click it to ensure you have the latest features and bug fixes.

<figure><img src="https://docs.buildnatively.com/~gitbook/image?url=https%3A%2F%2F3352617162-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F90tV7pYflEQdiAr2VfWu%252Fuploads%252FmfnSUug82IdnxOAoBrak%252Fnatively_app_builder_bubble_plugin_update.png%3Falt%3Dmedia%26token%3Dc193f69f-b03b-4be4-b80b-f34ba37ac212&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=a89e4510&#x26;sv=2" alt=""><figcaption></figcaption></figure>

* If it is NOT installed: Click the + Add plugins button, search for "Natively", and click Install.

<figure><img src="https://docs.buildnatively.com/~gitbook/image?url=https%3A%2F%2F3352617162-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F90tV7pYflEQdiAr2VfWu%252Fuploads%252FC5rA42yQHcN1uGKFbzmF%252Fnatively_app_builder_bubble_plugin.png%3Falt%3Dmedia%26token%3Dd9706d9b-dbe8-459b-b9b3-5667648aa4b7&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=9aae2297&#x26;sv=2" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="JavaScript SDK" %}
**Check SDK**

Before writing any logic, ensure the Natively SDK is correctly installed and up-to-date in your codebase.

1. Open your project's main HTML file (or header settings) and look for the Natively script tag inside the `<head>` section.
2. Install/Update: If missing or outdated, add the following code. You can specify the SDK version in the URL (e.g., `@2.26.0`).

```javascript
<head>
  <script async onload="nativelyOnLoad()" src="https://cdn.jsdelivr.net/npm/natively@2.26.0/natively-frontend.min.js"></script>
</head>
```

{% hint style="info" %}
To ensure you are using the most up-to-date version, check the [Natively GitHub releases page](https://github.com/buildnatively/js-sdk/releases) for the latest version number.
{% endhint %}
{% endtab %}

{% tab title="AI Agents" %}
**Initialize the SDK**

AI-powered editors like Lovable, Base44, and Replit use the JavaScript SDK to implement Natively features. Before implementing any feature, the Natively SDK must be initialized in your project.

Copy the line below and paste it into your AI agent to check and set up the Natively SDK in your project.

```
Check if the following Natively SDK script is present in the <head> of index.html. If missing or outdated, add it: <script async onload="nativelyOnLoad()" src="https://cdn.jsdelivr.net/npm/natively@2.26.0/natively-frontend.min.js"></script><script>function nativelyOnLoad() { window.natively.setDebug(true); console.log("✅ Natively SDK loaded successfully."); }</script> For reference: https://docs.buildnatively.com/guides/integration/how-to-get-started https://github.com/buildnatively/js-sdk/releases
```

{% endtab %}
{% endtabs %}

### Setup Logic

{% tabs %}
{% tab title="Bubble.io Plugin" %}

#### \[Action] Natively - Request AppStore/GooglePlay review

Triggers the native in-app review prompt. No parameters required.
{% endtab %}

{% tab title="JavaScript SDK" %}

```javascript
// ============================================================================
// NATIVELY REQUEST USER'S REVIEW - DOCUMENTATION & EXAMPLES
// ============================================================================

// No initialization required — requestAppReview is available directly
// on the global window.natively object.

// ============================================================================
// ALL AVAILABLE METHODS
// ============================================================================
// window.natively.requestAppReview()
//   - Triggers the native in-app review prompt.
//   - No parameters required. No callback.
//   - The system controls whether and when the dialog is actually shown.

// --- Request User's Review. Example. Start ---

window.natively.requestAppReview();

// --- Request User's Review. Example. End ---
```

{% endtab %}

{% tab title="AI Agents" %}
AI-powered editors like Lovable, Base44, and Replit use the JavaScript SDK to implement Natively features.&#x20;

Copy the line below and paste it into your AI agent.&#x20;

<pre><code>[<a data-footnote-ref href="#user-content-fn-1">Your feature description</a>] using the Natively Request User's Review SDK: // window.natively.requestAppReview() — triggers the native in-app review prompt. No parameters or callback required. The system controls whether and when the dialog is actually shown. For reference: https://docs.buildnatively.com/guides/integration/request-users-review
</code></pre>

{% hint style="warning" %}
Replace the placeholder at the beginning with a description of what you want to build - for example: "Show the app review prompt after the user completes their third booking".
{% endhint %}
{% endtab %}
{% endtabs %}

### How to use

#### Time it right

The most important rule is timing - show the review prompt at a moment of success, not frustration. Good moments include after a user completes a key action (finishes an order, completes a task, reaches a milestone), not immediately on app launch or mid-flow.

#### The system controls the final decision

Calling `requestAppReview()` does not guarantee the dialog will appear. Both iOS and Android limit how frequently the prompt can be shown to the same user - typically no more than 3 times per year on iOS. If the system decides not to show it, nothing happens, and no error is returned. Design your logic around this - don't depend on the prompt appearing every time.

#### Alternative: direct to the store

If you want to send users directly to the App Store review page instead of using the in-app prompt, use the [Open External App](/hidden-pages/open-an-external-app-url.md#open-external-app) with the following URLs:

**iOS - opens directly to the App Store review screen:**\
`itms-apps://itunes.apple.com/app/idXXXXXXXX?action=write-review`

Replace `idXXXXXXXX` with your App Store ID.

**Android - opens your app's Google Play listing:**\
`market://details?id=YOUR_PACKAGE_NAME`

Replace `YOUR_PACKAGE_NAME` with your app's Bundle ID.

{% hint style="info" %}
Note that Android does not support linking directly to the review section - users will land on the app's Play Store listing and can navigate to reviews from there.
{% endhint %}

## Troubleshooting

<details>

<summary>The review prompt doesn't appear</summary>

This is expected behavior - both iOS and Android limit how frequently the prompt can be shown. The system may suppress it if the user has already been prompted recently, has already reviewed the app, or if the platform's internal limit has been reached. You cannot override this behavior.

</details>

<details>

<summary>The review prompt never appears in testing</summary>

The feature will not work until your app is published on the App Store or Google Play. It will not appear in the Natively Preview app or in development builds. Test it only after your app is live.

</details>

<details>

<summary>The alternative store URL doesn't open the Play Store app on Android</summary>

If `market://details?id=YOUR_PACKAGE_NAME` doesn't open the Play Store app, the device may not have the Play Store installed.

</details>

<details>

<summary>The alternative iOS URL doesn't work</summary>

Make sure you are using the correct App Store ID in the URL (`itms-apps://itunes.apple.com/app/idXXXXXXXX?action=write-review`). The ID must match your app's App Store App ID, not the Bundle ID.

</details>

[^1]: Replace this placeholder
