For the complete documentation index, see llms.txt. This page is also available as Markdown.

Rate review at a positive moment

Show the native rate-review prompt only to users who have just signaled satisfaction — not to everyone on session 3.

Use this when your store rating is dragged down by users asked at the wrong moment. Don't use this when you have no reliable "positive moment" event. Firing at a random session is no better than the stock prompt.

Goal

The stock "rate us" prompt on session 3 pulls from the whole population, including frustrated users. Those users rate 1 and 2 stars. This recipe gates the native prompt behind a light custom popup that first asks "how's it going?" — and only triggers the store rating if the user says it is going well. The effect is a higher average store rating because you never invite the unhappy cohort to the store at all.

Setup

In the dashboard

  • Create a campaign rating-prompt-positive-moment.

  • Trigger: event PositiveSignal (a value moment you define — streak completed, goal hit, purchase confirmed).

  • Conditions: subscription_status != "new" (avoid brand-new users), store_rating_shown != true, session count >= 3.

  • Action: fire a deeplink to your in-app sentiment popup, e.g. yourapp://popup/sentiment-check. The popup asks "Enjoying the app?" with two buttons: "Yes" / "Not really". See Custom popups for how the popup-as-deeplink pattern works today.

  • Branch on the popup result (handled in-app, not in the dashboard):

  • Frequency: once per user, ever — enforced by the store_rating_shown != true condition in the audience, not a native frequency cap.

In the app (engineering hand-off)

Note: session_count is not a built-in targeting attribute — the app must increment and set it as a custom property on each session start, e.g. amply.setCustomProperty("session_count", n).

  • Pick the single strongest "positive moment" in your product. Track it as one event, not many:

  • Register a popup action that calls SKStoreReviewController.requestReview() on iOS or ReviewManager on Android when Amply asks.

  • After the native prompt runs, mark the user:

How it runs

  1. User completes a 7-day streak. App fires PositiveSignal.

  2. Amply evaluates event-triggered campaigns. The user has session count 5, has never been asked, is not a new user. rating-prompt-positive-moment matches.

  3. Custom popup appears: "Enjoying the app?"

  4. User taps "Yes". Amply triggers the native rate-review prompt. The OS shows its store rating sheet.

  5. User leaves a 5-star review. App sets store_rating_shown = true. The campaign never matches this user again.

  6. Parallel path: if the user had tapped "Not really", the feedback deeplink fires and the native prompt is never called — the unhappy user never reaches the store.

Metrics to watch

  • Store rating distribution before and after rollout. Expect the 4-5 star share to rise and the 1-2 star share to fall.

  • Popup "Yes" share. If it is <50%, the PositiveSignal event is triggering too broadly.

  • Native prompt acceptance rate among those who said "Yes". This is the lift over the stock flow.

  • Written review volume. You may see fewer total reviews but a higher average — that is the desired outcome.

Last updated