본문 바로가기
개발 이야기

[iOS앱 개발] 리뷰 요청 팝업 알람 띄우기

by Jimmy_iOS 2023. 6. 8.

앱의 리뷰 팝업의 중요성

앱 출시 후 약 한 달이 지났습니다.

아직 본격적인 출시가 이루어지지 않아 다운로드 및 리뷰 횟수는 매우 적습니다.

다운로드한 유저들이 리뷰를 남기지 않는 경우가 많은데,

이때 리뷰 팝업을 띄워 유도하면 리뷰 수를 늘리고 신규 유저의 유입을 증가시킬 수 있습니다.

 

리뷰 팝업을 띄우는 방법으로는 StoreKit으로 직접 구현하는 방법이 있지만, 이는 다소 복잡합니다.

하지만 이미 쉽게 팝업을 띄울 수 있는 라이브러리가 있어 이를 사용하기로 결정했습니다.

 

SwiftRater

 

takecian/SwiftRater

A utility that reminds your iPhone app's users to review the app written in pure Swift. - takecian/SwiftRater

github.com

 

SwiftRater 라이브러리를 사용하여 앱스토어에서 앱에 대한 리뷰를 요청하는 방법은 다음과 같습니다.

  1. SwiftRater 라이브러리를 프로젝트에 추가합니다.
  2. AppDelegate 파일에 다음과 같이 코드를 추가합니다.
import SwiftRater

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    SwiftRater.daysUntilPrompt = 5 // 앱을 시작한 이후 5일이 지난 후에 리뷰 요청
	SwiftRater.usesUntilPrompt = 5 // 앱을 실행한 횟수가 5회 이상일 때 리뷰 요청
	SwiftRater.significantUsesUntilPrompt = 3 // 앱 사용자가 앱에서 새로운 기능을 사용한 횟수가 3회 이상일 때 리뷰 요청
	SwiftRater.daysBeforeReminding = 1 // 리뷰 요청을 거절한 이후 1일이 지나면 다시 리뷰 요청
	SwiftRater.showLaterButton = true // "나중에" 버튼을 보여줍니다.
    SwiftRater.debugMode = true // 테스트에 유용한 디버그 모드에서 프롬프트가 표시되는지 여부를 결정합니다.
    SwiftRater.appLaunched() // 앱이 시작되었음을 라이브러리에 알리는 데 사용됩니다.
    return true
}

위의 코드는 앱스토어에서 앱에 대한 리뷰를 요청하는 데 사용되는 SwiftRater 라이브러리의 여러 속성을 설정하고 있습니다.

  • daysUntilPrompt는 프롬프트가 표시되기 전 앱이 처음 실행된 후 몇 일이 지나야 하는지를 설정합니다.
  • usesUntilPrompt는 프롬프트가 표시되기 전 앱을 사용해야 하는 최소 횟수를 설정합니다.
  • significantUsesUntilPrompt는 프롬프트가 표시되기 전 개발자가 정의한 중요한 사용 횟수를 설정합니다.
  • daysBeforeReminding는 사용자가 "나중에 알림"을 선택한 경우 프롬프트가 다시 표시되기까지 경과해야하는 일 수를 설정합니다.
  • showLaterButton은 프롬프트에 "나중에 알림" 버튼이 표시되는지 여부를 결정합니다.
  • debugMode는 테스트에 유용한 디버그 모드에서 프롬프트가 표시되는지 여부를 결정합니다.
  • appLaunched()는 앱이 시작되었음을 라이브러리에 알리는 데 사용됩니다. 이것은 앱 사용을 추적하고 프롬프트를 표시해야하는 시점을 결정하는 데 필요합니다.

리뷰 요청 팝업이 표시되는 조건은 SwiftRater 라이브러리의 다양한 속성에 의해 결정됩니다. 

daysUntilPrompt, usesUntilPrompt, significantUsesUntilPrompt 등의 속성을 조정하여

리뷰 요청 팝업이 언제 표시되는지 결정할 수 있습니다.

리뷰 요청 팝업이 표시되는 시점은 사용자 경험에 맞게 결정하면 됩니다.

예를 들어, 앱을 처음 실행했을 때, 목표를 달성했을 때, 설정 화면에서, 앱 종료 시 등 다양한 시점에 요청할 수 있습니다.

 

SwiftRater.check() 메소드는 리뷰 요청 팝업을 수동으로 표시하는 데 사용됩니다. 

override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        SwiftRater.check()
    }

이 메소드를 호출하면, SwiftRater 라이브러리는 사용자가 significantUsesUntilPrompt 속성에 지정한 횟수만큼 앱을 사용한 후, 리뷰 요청 팝업을 표시합니다.

 

예를 들어, significantUsesUntilPrompt 속성이 3으로 설정된 경우, 사용자가 앱을 사용한 3번째 날에 리뷰 요청 팝업이 표시됩니다. 이 때, SwiftRater.check() 메소드를 호출하면, 팝업이 즉시 표시됩니다.

 

SwiftRater.check() 메소드는 앱 내에서 리뷰 요청 팝업을 미리보기하거나, 사용자에게 리뷰 작성을 권장하는 특정 시점에 사용할 수 있습니다.

보내기 버튼 비활성화 문제

실제 코드를 작성해서 시뮬레이터나 디바이스에서 실행해보면 이렇게 보내기 버튼이 비활성화 되어있는 것을 볼 수 있는데

현재 개발 버전이라 그렇고 실제 앱스토어에서 배포하게 되면 보내기 버튼이 활성화 된다고 합니다.