Firebase 예측을 사용한 사용자 유지 전략 실험

Firebase 예측을 사용하면 앱에서 이탈할 가능성이 높은 사용자를 식별하고 해당 사용자에게 사용자 유지 전략을 적용할 수 있습니다. 예를 들어 모바일 게임의 경우 이탈이 예측되는 사용자에게 게임 내 화폐를 선물로 증정할 수 있습니다.

이 가이드는 이러한 종류의 예측 기반 사용자 유지 전략을 구현하는 방법 및 Firebase A/B Testing 실험을 만들어 선물을 주지 않을 때와 비교하여 전략의 효과를 판단하는 방법을 보여줍니다.

시작하기 전에

예측을 사용하여 앱의 사용자 유지 전략을 결정하려면 먼저 앱에서 Firebase용 Google 애널리틱스를 사용해야 합니다. 특히 다음과 같은 작업이 필요합니다.

  • Firebase 콘솔에서 애널리틱스 데이터 공유를 사용 설정합니다.
  • 자동으로 기록되지 않는 앱 관련 애널리틱스 이벤트를 명시적으로 기록합니다. 이러한 이벤트를 기록하면 향후 분류의 품질을 높일 수 있습니다.
  • 유의미한 예측을 위해 충분히 많은 양의 Firebase 이벤트 데이터를 확보합니다. 일반적으로 월간 활성 사용자 10,000명, 긍정적 예 500개, 부정적 예 500개를 확보하면 Firebase 예측에 충분한 데이터입니다.

선물 정책을 원격으로 구성 가능하도록 설정

우선 원격 구성 매개변수의 값에 따라 플레이어에게 선물을 주도록 앱을 설정합니다. 이 선물은 한 번만 증정해야 하므로 플레이어가 이미 선물을 받았는지 여부도 추적해야 합니다.

다음 단계에서는 예측 및 A/B Testing을 구성하여 다양한 기준에 따라 원격으로 매개변수를 설정하지만, 지금은 앱에서 선물을 증정하지 않습니다.

예:

  1. 애널리틱스 및 원격 구성 SDK를 가져옵니다.

    iOS(Swift)

    Podfile에 SDK를 추가합니다.

    pod 'Firebase/Core'
    pod 'Firebase/RemoteConfig'
    

    그런 다음 가져옵니다.

    import Firebase
    

    Android

    implementation 'com.google.firebase:firebase-core:16.0.8'
    implementation 'com.google.firebase:firebase-config:16.4.0'
    
  2. 원격 구성을 초기화하고 grant_retention_gift 변수의 기본값을 false로 설정합니다. 이후에는 예측 및 A/B Testing을 설정하여 이 변수를 원격으로 설정하지만, 앱에서 기본값을 설정하면 원격 구성 변수가 검색되기 전에도 앱이 항상 올바르게 작동합니다.

    iOS(Swift)

    self.remoteConfig = RemoteConfig.remoteConfig()
    self.remoteConfig.setDefaults(["grant_retention_gift": false])
    
    // ...
    
    self.remoteConfig.fetch() { (status, error) -> Void in
        if status == .success {
          self.remoteConfig.activateFetched()
        }
    
        // Act on the retrieved parameters. For example, grant the retention gift to
        // players who haven't yet received one.
        let shouldGrantGift = self.remoteConfig["grant_retention_gift"].booleanValue
        if shouldGrantGift && !playerAlreadyReceivedGift() {
            grantGiftToPlayer()
        }
    }
    

    자바
    Android

    final FirebaseRemoteConfig config = FirebaseRemoteConfig.getInstance();
    
    Map<String, Object> remoteConfigDefaults = new HashMap<>();
    remoteConfigDefaults.put("grant_retention_gift", false);
    config.setDefaults(remoteConfigDefaults);
    
    // ...
    
    config.fetch(CACHE_EXPIRATION)
            .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        config.activateFetched();
                    }
    
                    // Act on the retrieved parameters. For example, grant the
                    // retention gift to players who haven't yet received one.
                    boolean shouldGrantGift = config.getBoolean("grant_retention_gift");
                    if (shouldGrantGift && !playerAlreadyReceivedGift()) {
                        grantGiftToPlayer();
                    }
                }
            });

    Kotlin
    Android

    val config = FirebaseRemoteConfig.getInstance()
    
    val remoteConfigDefaults = HashMap<String, Any>()
    remoteConfigDefaults["grant_retention_gift"] = false
    config.setDefaults(remoteConfigDefaults)
    
    // ...
    
    config.fetch(CACHE_EXPIRATION)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    config.activateFetched()
                }
    
                // Act on the retrieved parameters. For example, grant the
                // retention gift to players who haven't yet received one.
                val shouldGrantGift = config.getBoolean("grant_retention_gift")
                if (shouldGrantGift && !playerAlreadyReceivedGift()) {
                    grantGiftToPlayer()
                }
            }

이 시점에서 App Store 또는 Play 스토어에 게임을 배포할 수 있습니다. 지금은 플레이어에게 기본 동작이 적용되므로 선물이 증정되지 않지만, 선물 정책은 원격 구성 변수에 의해 제어되므로 사용자에게 앱 업데이트를 배포하지 않아도 Firebase 콘솔만 사용하여 유지 전략을 바꿔가며 실험해 볼 수 있습니다.

사용자 앱 제거 예측 시작

다음으로, Firebase 프로젝트를 설정하여 사용자의 이탈 시점을 예측하기 시작합니다.

Firebase 콘솔에서 예측 섹션을 엽니다. 예측 서비스 약관에 아직 동의하지 않았다면 동의합니다.

서비스 약관에 동의하면 프로젝트에 예측이 사용 설정됩니다. Firebase 콘솔의 예측 섹션에서 맞춤 예측을 정의할 수 있지만, 앱 제거 예측의 경우에는 애널리틱스 이벤트를 집계하여 사용자의 앱 사용 중지 가능성을 예측하는 기본 제공 예측을 사용할 수 있습니다. 예측을 사용 설정하고 애널리틱스 이벤트가 몇 주 정도 로깅된 후에 이러한 예측이 제공됩니다.

사용자 유지 전략 실험 만들기

다음으로, 선물이 사용자 유지에 주는 효과를 테스트하는 A/B Testing 실험을 만듭니다.

실험을 만드는 방법은 다음과 같습니다.

  1. Firebase 콘솔에서 A/B Testing 섹션을 엽니다.

  2. 새 실험을 만듭니다.

    1. 실험 만들기 > 원격 구성을 클릭합니다.

    2. 목록에서 앱을 선택하고 실험에 포함할 사용자 수를 지정합니다. 고액 지출자 등 특정 사용자 카테고리를 실험에서 제외하도록 선택할 수도 있습니다.

    3. 목표 측정항목 목록에서 유지(2~3일)를 선택하고 추가로 추적할 측정항목(예: 사용자 참여, 앱 삭제, 광고 클릭)을 선택합니다.

    4. 2가지 변수를 정의합니다.

      • 선물 증정 안 함(통제그룹)
      • 앱 제거 예측 시 선물 증정

      통제그룹에서 grant_retention_gift 매개변수를 만들고 (no change)로 설정합니다. 통제그룹에 할당된 사용자에게는 선물을 증정하지 않는 기본 동작이 적용됩니다.

      앱 제거 예측 시 선물 증정 변수에서 grant_retention_gift 매개변수를 true로 설정하고 사용자 부분집합을 예측: 앱 제거(중간 위험 허용 범위)로 설정합니다. 이 변수에 할당된 사용자에게는 앱 제거가 예측될 경우 선물이 증정됩니다.

실험을 시작하고, A/B Testing에서 주요 변수가 판명될 때까지 며칠 정도 실행합니다. 실험에서 주요 변수가 판명되지 않은 경우 더 많은 사용자를 대상으로 실험을 확대해야 할 수 있습니다.

가장 뛰어난 변수를 모든 사용자에게 적용

A/B Testing에서 주요 변수(이 경우 유지가 극대화되는 변수)를 판명하기에 충분한 정보가 수집되었으면 가장 성적이 좋은 변수 또는 다른 변수를 모든 사용자에게 적용할지 여부를 결정할 수 있습니다.

Firebase 콘솔A/B Testing 섹션에서 완료된 실험의 세부정보 뷰를 엽니다. 뷰에서 목표 측정항목 및 선택한 보조 측정항목에 따른 각 변수의 성과를 확인할 수 있습니다. 이 정보를 근거로 주요 변수 또는 다른 변수의 전체 적용 여부를 결정할 수 있습니다.

모든 사용자에게 변수를 적용하려면 실험의 세부정보 페이지에서 more_vert > 주요 변수 구현을 클릭합니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.