Контроллер SKStore Review: как обрабатываются ограничения?

Мое приложение не предлагает пользователю активно оценивать приложение в App Store, оно включает только страницу "Оценить это приложение" в настройках приложения. Таким образом, пользователь имеет доступ к странице вручную и только после того, как он нажмет на Do Rate Кнопка, он перенаправлен в App Store.

Конечно, интерфейс SKStore​Review​Controller гораздо проще, чем перенаправить пользователя в приложение App Store, чтобы оставить свой отзыв. Поэтому я просто изменил вызов URL-адреса App Store на вызов [SKStore​Review​Controller requestReview],

Это прекрасно работает во всех моих тестах: диалоговое окно рейтинга отображается каждый раз, когда я нажимаю кнопку обзора.

Однако мне интересно, как это будет вести себя вне среды отладки в реальной жизни. Согласно документам Apple, [SKStore​Review​Controller requestReview] ограничено до 3 запросов на приложение в год.

  • Как будет вести себя приложение после достижения этого предела? Будет нажатие кнопки обзора (= [SKStore​Review​Controller requestReview]) не имеют никакого эффекта или будут какие-то отзывы?
  • Как я могу узнать, могу ли я использовать подоконник [SKStore​Review​Controller requestReview] или если я должен отправить пользователя в магазин вручную?
  • Что именно означает 3 запроса на приложение в год? Это действительно для приложения или для версии приложения?
  • Есть ли ограничение на интервал между двумя [SKStore​Review​Controller requestReview] звонки? Правильно ли использовать его три дня подряд, как использовать его каждые 4 месяца?

1 ответ

отказ

Хотя я не могу процитировать официальный ответ (и я не могу гарантировать, как долго эти результаты останутся верными), я просто потратил некоторое время на обратную разработку логики, и она кажется довольно простой.

Запрос обзора:

Когда вы запрашиваете отзыв, StoreKit отправляет сообщение com.apple.itunesstored.xpc, который отвечает за соблюдение и отслеживание лимитов. Если пределы запроса не были достигнуты, процесс XPC отслеживает запрос и отвечает маркером проверки приложения. В противном случае он отвечает ноль.

После получения ответа XPC StoreKit проверяет, был ли токен нулевым. Если это не ноль, SKStoreReviewViewController создается и представляется во внутреннем UIWindow, В противном случае запрос игнорируется. Нет обратного вызова или уведомления, которые вы можете прослушать, и хотя в обработчике XPC есть некоторый код для регистрации ошибок, я не видел источников ошибок в процессе XPC.

Проверка лимитов

Что касается логики за пределами, это довольно просто. Есть два условия, которые должны быть выполнены:

  1. Пользователь не должен запрашиваться более трех раз за последние 365 дней, независимо от версии приложения.

  2. Пользователь не должен получать запрос, если он оценил приложение по предварительному запросу, кроме случаев, когда:

    • Их последний рейтинг был более 365 дней назад
    • И версия приложения изменилась

Несмотря на то, что Apple рекомендует подождать еще несколько недель, прежде чем запрашивать другое приглашение, на данный момент нет логики, которая мешает вам трижды запросить у пользователя подсказки. Эти подсказки будут учитываться для всех трех ваших подсказок на следующие 365 дней.

ТЛ; др

  • StoreKit будет игнорировать любые лишние запросы, и вы не сможете определить, когда это произойдет.

  • Хотя вы можете отслеживать свои запросы самостоятельно, чтобы знать, когда вам нужно перенаправить в App Store, а не запрашивать проверку, Apple может изменить логику в любой момент времени. Нет способа программно запросить ваши лимиты.

  • Три запроса в год означают три запроса в течение последних 365 дней, независимо от версии приложения. (Обновление приложения отменяет требование "никогда больше не запрашиваться".)

  • Интервал между двумя вызовами для просмотра запросов не ограничен.

В вашей ситуации я бы порекомендовал использовать новый URL-адрес App Store, который выводит пользователей непосредственно на экран составления обзора. Это будет работать более последовательно, все еще следуя рекомендациям HIG (так как это в ответ на нажатие кнопки).

Чтобы автоматически открыть страницу, на которой пользователи могут написать отзыв в App Store, добавьте параметр запроса action=write-review к URL вашего продукта.

Другие вопросы по тегам