# Guideline 3.2.2(x) - Unacceptable Business Model: Forced Ratings Gating Functionality

**Guideline:** 3.2.2 · **Store:** Apple App Store · **Severity:** medium · **Fix difficulty:** easy · **Typical turnaround:** 1-2 hours

Canonical URL: https://appstorereject.com/rejections/apple/3/guideline-322x-unacceptable-business-model-forced-ratings-gating-functionality

## Description

Apple is rejecting your app because it forces, incentivizes, or manipulates users into leaving App Store ratings or reviews as a condition for accessing app functionality, content, or rewards. This includes gating features behind a rating prompt, offering in-app currency for reviews, requiring a review before advancing in a game, or repeatedly showing rating prompts that cannot be easily dismissed. Apple draws a clear line between asking for ratings (acceptable, using SKStoreReviewController) and requiring, coercing, or incentivizing them (unacceptable). The standard rating prompt from SKStoreReviewController is Apple's approved mechanism -- it can be shown up to three times per 365-day period, and the user can easily dismiss it. Custom rating prompts that mimic the system dialog, rating gates that block progression, and reward-for-review schemes all violate this guideline. Apple considers these practices manipulative because they inflate ratings artificially and mislead other users.

## Common variations

- App gates content or features behind a rating requirement
- Users offered rewards or incentives for leaving reviews
- Rating prompt cannot be easily dismissed or blocks functionality
- App requires review before advancing to next level or feature
- Custom rating prompt mimics system dialog

## Example rejection email

```
Guideline 3.2.2(x) - Business - Unacceptable

We found that your app gates access to content or features behind a requirement to rate or review the app. Specifically:

- The app requires users to leave a rating before accessing the next level.
- Users are offered 500 bonus coins for leaving a 5-star review.

Apps should not force, incentivize, or manipulate users into rating or reviewing the app.

Next Steps:
Please remove all mechanisms that require, incentivize, or coerce users to leave ratings or reviews. You may use SKStoreReviewController to request ratings at appropriate, non-intrusive moments.
```

## Resolution steps

## Quick Assessment
- **Risk level:** Medium
- **Resolution path:** Fix & Resubmit
- **Typical turnaround:** 1-2 hours

## The Fix

1. **Remove all rating gates** -- Delete any logic that checks whether a user has rated the app before granting access to features, content, or levels.

2. **Remove incentives for reviews** -- Delete any reward mechanisms tied to ratings or reviews. No coins, no unlocks, no premium time for reviewing.

3. **Replace custom rating prompts** -- If you built a custom rating dialog, replace it with `SKStoreReviewController.requestReview()`. This is Apple's approved mechanism and handles all the UI appropriately.

4. **Follow SKStoreReviewController best practices** -- Call it at moments of user delight (after completing a task, achieving a milestone), not at moments of frustration. Do not call it more than a few times per year -- the system limits it to 3 displays per 365 days.

5. **Remove rating manipulation** -- Delete any logic that shows a pre-screen (e.g., 'Are you enjoying the app?') and only shows the App Store rating prompt if the user says yes.

## Prevention
- Only use SKStoreReviewController for rating requests
- Never tie app functionality to rating status
- Never offer rewards for reviews
- Place rating requests at moments of accomplishment or satisfaction

## Before / after examples

**Before:** After completing level 5, a modal appears: 'Rate us 5 stars to unlock Level 6!' with the level locked until the user taps a star rating
**After:** Level 6 unlocks automatically after completing level 5; SKStoreReviewController.requestReview() called after the user's 10th completed level as a non-blocking prompt
**Why it works:** App functionality must never be gated behind ratings. Use SKStoreReviewController at natural, positive moments without blocking access.

## Common questions

**How long does this typically take to fix?**

Typical turnaround is 1-2 hours (difficulty: easy). After resubmission, most re-reviews complete within 24-48 hours.

---
*Machine-readable source: https://api.appstorereject.com/api/rejections/detail?slug=guideline-322x-unacceptable-business-model-forced-ratings-gating-functionality*