호댕의 iOS 개발

[iOS] 사용자에게 어떻게 리뷰를 받을 수 있을까? (+ SKStoreReviewController) 본문

Software Engineering/iOS

[iOS] 사용자에게 어떻게 리뷰를 받을 수 있을까? (+ SKStoreReviewController)

호르댕댕댕 2023. 4. 20. 15:15

앱을 사용하다보면 사용자에게 리뷰를 할지 물어보는 모달을 본 적이 있을 것이다. 

사용자에게 좋은 리뷰와 평점을 받는 것은 새로운 사용자를 유치하는데 큰 도움이 될 것이다. 

 

요런 것들을 어떻게 사용자에게 띄워줄 수 있을까??

 

일단 In-App Review의 경우 StoreKit의 SKStoreReviewController를 사용해주면 된다. 

if #available(iOS 14.0, *) {
    SKStoreReviewController.requestReview(in: windowScene)
} else {
    SKStoreReviewController.requestReview()
}

iOS 14 이전에는 requestReview() 메서드를 사용해주면 되고 14 이후에는 파라미터로 WindowScene을 받아줘야 한다. 

 

그리고 위 코드를 사용자가 앱을 사용하면서 긍정적인 느낌을 받을 수 있도록 핵심 기능 사용 후 등 특정 조건을 충족했을 때 requestReview() 메서드를 호출하도록 해주면 된다. 

 

애플의 경우 아래와 같은 조건을 권장하고 있다. 

  • 사용자가 앱을 통해 하려는 액션을 방해하지 않도록 일련의 이벤트가 끝났을 때 요청하자. 
  • 앱을 실행한 즉시 리뷰 요청을 하지 않는다. 
  • 사용자의 액션의 결과로 리뷰 요청이 표시되지 않도록 한다. 

 

이렇게 간단한 코드 만으로 인 앱 리뷰가 잘 뜨게 된다. 

 

 

이런 인 앱 리뷰의 경우 실제 프로덕트에선 1년에 최대 3회만 나오게 되며, requestReview() 메서드를 호출했다고 해서 In-App Review가 반드시 나온다는 보장은 없다. 이는 시스템에서 알아서 관리하며 따라서 특정 버튼을 눌렀을 때, 즉 UI에 대한 반응으로 리뷰 화면을 띄운다면 버튼을 누르더라도 In-App Review는 나오지 않을 수도 있다. 

 

<In-App Review가 나오게 되는 조건>

  • Dubug용 앱: 조건만 충족하면 항상 나오게 됨. 
  • TestFlight: 아예 나오지 않음 (직접 확인해보진 못함)
  • 앱스토어를 통해 받은 앱: 1년에 최대 3회만 나오게 됨.

 

그럼 꼭 특정 모달이 나오고 리뷰 하기 같은 버튼을 눌렀을 때 리뷰를 할 수 있도록 하기 위해선 어떻게 해야 할까?

 

이 때에는 SKStoreReviewController를 사용할 수 없다. 

이때 사용할 수 있는 방법은 리뷰를 할 수 있도록 앱스토어 외부 링크로 사용자를 보내주는 것이다. 

 

@IBAction func requestReviewManually() {
    guard let writeReviewURL = URL(string: "https://apps.apple.com/app/id<#Your App Store ID#>?action=write-review")
        else { fatalError("Expected a valid URL") }
    UIApplication.shared.open(writeReviewURL, options: [:], completionHandler: nil)
}

위 코드처럼 말이다. 

 

빠르게 AppStoreID를 알고 싶은 경우 리뷰가 필요한 앱의 앱스토어 URL을 보면 알 수 있다. 

 

 

이는 Apple Developer에서 앱 정보에서도 확인이 가능하다. 

요렇게 하면 1년 내에 최대 3회만 가능한 인앱리뷰와는 다르게 리뷰를 항상 요청할 수도 있다. 

 

링크 

- https://developer.apple.com/documentation/storekit/requesting_app_store_reviews

 

Requesting App Store reviews | Apple Developer Documentation

Implement best practices for prompting users to leave a review for your app in the App Store.

developer.apple.com

 

Comments