ninjinkun's diary

ninjinkunの日記

AppStoreレビューを促すイラッとするダイアログを出すライブラリiRateの使い方

アプリを起動した直後に「AppStoreにレビューを書いてくれませんか」という感じのダイアログが出て、若干イラッとしたことはありませんか?iRateはそのイラッとするダイアログを出すためのライブラリです

https://github.com/nicklockwood/iRate
f:id:ninjinkun:20121130214852p:plain:w320

しかしイライラとした人をレビュー欄に誘導しても、あまり良い評価をつけてくれそうにはありません。このためには、アプリを気に入ってくれた人にイラッとさせないタイミングでレビューをお願いする必要があります。

iRateは、アクティブ率が高いユーザーにのみダイアログを出すことで、良い評価をつけてくれそうな人にできるだけ穏便にレビューをお願いするという、かなり空気を読んだ設計になっています。

使い方

呼び出す際は以下のメソッドを呼んで、AppStore IDを入れるだけです。これで初期化が完了されます。

 [iRate sharedInstance].appStoreID = 577698758;

AppStoreIDが入っていなくても、Bundle IDからiTunesAPIを叩いてAppStoreIDを探しに行くなど、無駄に高機能です。「あとで評価する」を押すと、また後日リマインドしてくれる機能も備えています。

そしてアクティブユーザーにのみダイアログを出すため、iRateには以下のプロパティがあります。

@property (nonatomic, assign) NSUInteger usesUntilPrompt;
@property (nonatomic, assign) NSUInteger eventsUntilPrompt;
@property (nonatomic, assign) float daysUntilPrompt;
@property (nonatomic, assign) float usesPerWeekForPrompt;
  • usesUntilPrompt
    • 使用回数
  • eventsUntilPrompt
    • 特定の「イベント」を通過した回数
    • 投稿を10回したら、など
  • daysUntilPrompt
    • 使用日数
  • usesPerWeekForPrompt
    • 週毎の使用回数

デフォルト値がなかなか絶妙で、以下のようになっています。

self.usesUntilPrompt = 10;
self.eventsUntilPrompt = 10;
self.daysUntilPrompt = 10.0f;
self.usesPerWeekForPrompt = 0.0f;

つまり、10回起動し、10個のイベントを通過し、10日以上使った場合に出現します。ここまで使っていている人なら、誰が見てもアクティブユーザーと言えるでしょう。

アプリ作者の事情

何もわざわざイライラさせるようなものを出さなくてもいいんじゃないか…とお思う方もいるでしょう。AppleのUIの資料を見ても、そのようなダイアログはやめろと書いてあります。

しかし現実として、良い評価のレビューはなかなかつかないものです。

これは自分の感覚なのですが、よほど気に入って盛り上げてあげようとか、作者に感謝しているという気持ちが強くないと、わざわざAppStoreアプリを立ち上げてレビュー欄を探し出すようなことはなかなかしないです*1

反対に怒りの感情はすぐにレビュー欄に向かいます。特に作者にフィードバックス方法がアプリ内に用意されていない場合には、不具合の報告などもレビュー欄に書かれます。

アプリの作者としては、不具合の報告には真摯に向き合いながら、できるだけ良いレビューをつけて欲しいと思うものです。

おわりに

iRateはその辺りの作者たちの空気が反映された仕上がりになっています。ダイアログの文言も多国語に翻訳されているので安心です。日本語が若干おかしかったのでforkして直してみました(まだ訳っぽいのでこれでいいのかはわかりませんが…)。

https://github.com/ninjinkun/iRate

f:id:ninjinkun:20121130214807p:plain:w320

アクティブなユーザーに穏便にお願いをするというのは、他の場面でも活用できそうな戦略かもしれないと思いました。

*1:そんなことないよ、レビュー書いてるよという方、ありがとうございます!