iOS 10.3 から SKStoreReviewController という Apple 本家のレビュー催促システムが提供されました。これを個人アプリに組み込んだらアプリレビュー数が増える + 好意的なレビューが多く付きいいことずくめでした。
SKStoreReviewController は評価の★の数を選択して Submit を押すだけでレビューを完了できるので、ユーザは手軽に評価でき開発者もフィードバックを得やすくなっています。
- SKStoreReviewController 参考
単純な条件とは
アプリの起動回数が 20 回になったら起動時に SKStoreReviewController を表示するだけです。
単純に起動回数だけを見て、起動時にダイアログを表示しています。
単純に起動時にダイアログを出すのは良くないですが、「最適な状況」を検討して実装するとそれだけで結構大変なので、軽い気持ちで起動時に表示しています。
レビューがどう増えたのか
 
レビュー数
レビューが増えたと書いていますが、 SKStoreReviewController を出す前 / 後での単純な比較はできないので半分嘘です。
ですが、 レビュー総数735件に比べてコメントのレビュー数が242件で、つまり★だけつけたコメントなしレビューが493件あるということです。
★だけつけるには SKStoreReviewController でやるかアプリストアまで遷移して★をつけるしかないため、わざわざ後者をする人は少ないので前者だと思っています。
評価
アプリの評価は大半が★5をつけてくれています。
アプリを 20 回起動しているということはそこそこ使い込んでいるということなので、今までの体験の評価として★5をつけてくれています。
逆にアプリは使いにくいけどしょうがなく使っている場合は★1が増えていくことでしょう...。
おわり
SKStoreReviewController を導入したから高評価レビューが増えるわけではなく、良いアプリであること + レビューの機会をユーザに提供することが大事だと思っています。
ディープユーザや「最適な状況」に対し SKStoreReviewController を出すことでもっと良い評価が得られそうですね。
おまけ
サンプルコード
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        let key = "startUpCount"
        UserDefaults.standard.set(UserDefaults.standard.integer(forKey: key) + 1, forKey: key)
        UserDefaults.standard.synchronize()
        let count = UserDefaults.standard.integer(forKey: key)
        if count == 20 {
            if #available(iOS 10.3, *) {
                SKStoreReviewController.requestReview()
            }
        }
        return true
    }
}
