Rating prompt shown at a natural moment, not on first launch or during a task
Why it matters
A rating prompt shown on first launch — before the user has used the app — or during a high-stakes task like checkout produces dismissals and one-star reviews from irritated users. Apple's guideline 1.1.7 discourages disruptive or poorly-timed prompts, and a pattern of low ratings from premature prompts signals the platform that your app has quality issues. More practically: users who dismiss an early prompt are less likely to rate the app later. A timer-based prompt (setTimeout(requestReview, 30000) from app start) is a common form of this failure that appears in code review as a clear sign of a copy-paste implementation.
Severity rationale
Low because poor timing causes rating quality degradation rather than direct rejection, though repeated user complaints about intrusive prompts can attract guideline scrutiny.
Remediation
Tie the rating prompt to a specific, meaningful success event — never to a timer or to app launch.
// src/hooks/useRatingPrompt.ts
import * as StoreReview from 'expo-store-review';
import AsyncStorage from '@react-native-async-storage/async-storage';
export async function maybePromptRating(trigger: 'task_complete' | 'milestone' | 'streak') {
const sessions = parseInt(await AsyncStorage.getItem('session_count') ?? '0');
const hasRated = await AsyncStorage.getItem('has_rated_v1');
// Only prompt after 5+ sessions, never more than once per version
if (sessions < 5 || hasRated) return;
if (await StoreReview.hasAction()) {
await StoreReview.requestReview();
await AsyncStorage.setItem('has_rated_v1', 'true');
}
}
Call maybePromptRating from a positive completion handler — after a task finishes, after a streak milestone, after a successful purchase. Remove any setTimeout-based prompt trigger from App.tsx or root useEffect.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the App Store Review Blockers Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- external · apple-guideline-1.1.7-rating-prompt-timing — Apple App Store Review Guideline 1.1.7 — Rating Prompts Must Be Well-Timed
Taxons
History
- 2026-04-18·v1.0.0·Initial import from app-store-review-blockers·automated