일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 스타트업주니어로살아남기
- 독서후기
- Codegen
- 책후기
- 아이폰
- human interface guidelines
- Failed to register bundle identifier
- Modality
- View Life Cycle
- SWIFT
- 독후감
- IOS
- SWIFTUI
- Navigation
- NumberFormatter
- UIResponder
- mvvm
- Structures and Classes
- NotificationCenter
- delegation
- Info.plist
- xcode
- Mock
- 스위프트
- 부트캠프
- roundingMode
- contentInset
- viewcontroller
- @available
- 야곰아카데미
- Today
- Total
호댕의 iOS 개발
[iOS] 사용자에게 어떻게 리뷰를 받을 수 있을까? (+ SKStoreReviewController) 본문
[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
'Software Engineering > iOS' 카테고리의 다른 글
[iOS] 섹션 별로 inset을 주고 싶다면..? TableView의 header / footer 사용기 (0) | 2023.06.14 |
---|---|
[WWDC] WWDC 2023 키노트를 보고 (0) | 2023.06.09 |
[Tuist] Tuist를 통해 파일 생성하기 (0) | 2023.01.17 |
[SwiftUI] 2. SwiftUI에 대해 더 알아보기 (Stanford CS193P) - LazyVGrid, CustomView, ScrollView 등등 (0) | 2023.01.17 |
[SwiftUI] 1. SwiftUI 시작하기 (Stanford CS193P) - some View (0) | 2023.01.15 |