Firebase Predictions を使用してユーザー定着戦略をテストする

Firebase Predictions を使用して、アプリの利用を停止する可能性のあるユーザーを特定し、それらのユーザーにユーザー定着戦略を適用できます。たとえば、モバイルゲームを配信している場合、利用停止が予測されるユーザーにゲーム内通貨のギフトを付与するといったことができます。

このガイドでは、このような予測ベースのユーザー定着戦略を実装する方法に加え、A/B テストを作成して、戦略の有効性をギフトの付与をしない場合、および一定の目標(レベル 2 への到達など)を達成したユーザーへギフトを付与する場合と比較検討する方法を示します。

準備

Predictions を活用してユーザー定着ポリシーを策定するには、あらかじめアプリで Firebase 向け Google アナリティクスを有効にする必要があります。具体的な要件は以下のとおりです。

  • Firebase コンソールアナリティクスのデータ共有を有効にします。
  • 自動的にログに記録されない、アプリに関連するアナリティクス イベントを明示的に記録します。これらのイベントを記録することで、将来の分類の品質を向上させることができます。
  • Firebase で意味のある予測をするのに十分なイベントデータ量を保持します。Firebase Predictions に必要なデータ量の目安は、月間アクティブ ユーザー 10,000 人、正例データと負例データそれぞれ 500 件です。

ユーザー チャーンの予測を開始する

最初に、Firebase プロジェクトを設定して、ユーザーがいつ利用を停止するかの予測を開始します。

  1. Firebase コンソールで、[Predictions] セクションを開きます。Predictions の利用規約に同意していない場合は、同意してください。

    利用規約に同意すると、プロジェクトで Predictions が有効になります。Firebase コンソールの [Predictions] セクションでは、カスタム予測を定義できます。ただし、チャーン予測の場合、組み込まれている予測を使用できます。これは、アナリティクス イベントの集計に基づいています。これらの予測は、Predictions を有効にして基準となる支出イベントの記録を開始してから約 24 時間で利用可能になります。

  2. churn 予測に対応する Remote Config パラメータを追加します。

    1. Firebase コンソールで、[Remote Config] をクリックします。
    2. たとえば、will_churn という名前の新しいパラメータを追加します。churn が予測されたときに適用される、このパラメータの新しい条件を作成します。次に、新しい条件の値を true に設定し、デフォルト値を false に設定します。

ユーザー定着戦略のテストを作成する

次に、3 つのユーザー定着戦略をテストする A/B テストを作成します。

  • ギフトを付与しない(コントロール グループ)
  • プレーヤーが一定の目標(レベル 2 への到達など)を達成したときにギフトを付与する
  • プレーヤーが解約すると予測されたときにギフトを付与する

テストを作成するには:

  1. Firebase コンソールで、[Remote Config] セクションを開きます。
  2. [A/B テスト] ボタンをクリックします。
  3. 新しいテストを作成します。

    1. リストからアプリを選択し、テストに含めるユーザーの数を指定します。高額購入者などの特定のユーザー カテゴリをテストから除外することもできます。

    2. ユーザー定着戦略ごとに 1 つずつ、3 つのパターンを定義します。

      次に、gift_policy パラメータを作成し、値 gift_never をコントロール グループ パターンに、gift_achievement を 2 番目のパターンに、gift_likelychurn を予測ベースのパターンにそれぞれ割り当てます。アプリではこのパラメータを使用して、特定のユーザーにギフトを付与するかどうか、およびいつ付与するかを決定します。

    3. 目標指標のリストから [定着(1 日)] を選択し、追跡する追加指標(購入の収益、長期定着、1 日のエンゲージメントなど)を選択します。

      最後に、[詳細オプション] セクションで、アプリで明示的に記録する gift_policy_set アナリティクス イベントを選択します。このイベントは、一度ログに記録されるまでリストに表示されません。

ユーザー定着戦略をアプリに実装する

Firebase コンソールで予測とテストを設定したので、それぞれのテストパターンからユーザー定着戦略を実装します。

  1. アナリティクスおよび Remote Config SDK をインポートします。

    iOS - Swift

    Podfile に SDK を追加します。

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

    次に、それらをインポートします。

    import Firebase
    

    Android

    compile 'com.google.firebase:firebase-core:15.0.0'
    compile 'com.google.firebase:firebase-config:15.0.0'
    
  2. Remote Config を使用して現在のユーザーのギフトポリシーを取得します。

    iOS - Swift

    self.remoteConfig = RemoteConfig.remoteConfig()
    self.remoteConfig.setDefaults(["gift_policy": "gift_never"])
    
    // ...
    
    self.remoteConfig.fetch() { (status, error) -> Void in
        if status == .success {
          self.remoteConfig.activateFetched()
        }
    
        // Act on the retrieved parameters
    
        // Execute the gift policy retrieved with Remote Config
        self.executeGiftPolicy()
    
        // ...
    }
    

    Android

    mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
    
    Map remoteConfigDefaults = new HashMap<String, Object>();
    remoteConfigDefaults.put("gift_policy", "gift_never");
    mFirebaseRemoteConfig.setDefaults(remoteConfigDefaults);
    
    // ...
    
    mFirebaseRemoteConfig.fetch(cacheExpiration)
        .addOnCompleteListener(this, new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful()) {
                    mFirebaseRemoteConfig.activateFetched();
                }
    
                // Act on the retrieved parameters
    
                // Execute the gift policy retrieved with Remote Config
                executeGiftPolicy();
    
                // ...
            }
        });
    
  3. 最後に、取得したパラメータに基づいて、アプリのギフトポリシーを実行します。また、この時点で、ユーザーがテストに参加しているとみなせることを示すために gift_policy_set イベントを記録します。

    iOS - Swift

    func executeGiftPolicy() {
        let giftPolicy = self.remoteConfig["gift_policy"].stringValue
        let willChurn = self.remoteConfig["will_churn"].booleanValue
    
        if giftPolicy == "gift_achievement" {
            grantGiftOnLevel2()
        } else if (giftPolicy == "gift_likelychurn") && willChurn {
            grantGiftNow()
        }
    
        Analytics.logEvent("gift_policy_set", parameters: nil)
    }
    

    Android

    private void executeGiftPolicy() {
        String giftPolicy = mFirebaseRemoteConfig.getString("gift_policy");
        boolean will_churn = mFirebaseRemoteConfig.getBoolean("will_churn");
    
        if (giftPolicy.equals("gift_achievement") {
          grantGiftOnLevel2();
        } else if (giftPolicy.equals("gift_likelychurn") && will_churn) {
          grantGiftNow();
        }
    
        FirebaseAnalytics.getInstance(this).logEvent("gift_policy_set", null);
    }
    

数日経過後に結果が出始め、ユーザーにギフトを付与することが定着に影響するかどうかを把握するとともに、このデータに基づいて決定を下すことが可能になります。結果に納得した場合は、テストを停止して gift_policy パラメータを固定値に設定することで、最適な動作を 100% のユーザーに適用できます。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。