テスターからフィードバックを収集する

このガイドでは、オプションの Firebase App Distribution Android SDK を使用してアプリ内フィードバックを有効にし、テスターがアプリから直接フィードバック(スクリーンショットを含む)を送信できるようにする方法を説明します。

始める前に

まだ Firebase を Android プロジェクトに追加していない場合は追加します。

ステップ 1: App Distribution Tester API を有効にする

  1. Google Cloud コンソールを開き、Firebase プロジェクトを選択します。

  2. [Firebase App Testers API] で [有効にする] をクリックします。

ステップ 2: App Distribution をアプリに追加する

App Distribution Android SDK は、次の 2 つのライブラリで構成されています。

  • firebase-appdistribution-api: API のみのライブラリ。すべてのビルド バリアントに含めることができます。
  • firebase-appdistribution: SDK の完全な実装(オプション)。

API のみのライブラリを使用すると、コードから SDK を呼び出せます。SDK の完全な実装がない場合、この呼び出しは無視されます。

  1. モジュール(アプリレベル)の Gradle ファイル(通常は <project>/<app-module>/build.gradle.kts または <project>/<app-module>/build.gradle)で App Distribution Android SDK の依存関係を宣言します。

  2. SDK の完全な実装にある自己更新機能が Google Play ビルドに含まれないようにするには、App Distribution を通して配布されるビルドタイププロダクト フレーバーなどのビルド バリアントを指定します。

  3. モジュール(アプリレベル)の Gradle ファイル(通常は app/build.gradle)で App Distribution Android SDK の依存関係を宣言します。SDK の完全な実装は、リリース前のテスト専用のバリアントにのみ追加してください。

    Kotlin+KTX

    dependencies {
        // ADD the API-only library to all variants
        implementation("com.google.firebase:firebase-appdistribution-api-ktx:16.0.0-beta10")
    
        // ADD the full SDK implementation to the "beta" variant only (example)
        betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta10")
    }
    

    Java

    dependencies {
        // ADD the API-only library to all variants
        implementation("com.google.firebase:firebase-appdistribution-api:16.0.0-beta10")
    
        // ADD the full SDK implementation to the "beta" variant only (example)
        betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta10")
    }
    

ステップ 3: アプリ内フィードバックを構成する

テスターからフィードバックを収集するには、次のいずれかのトリガーを使用して、テスターがフィードバックを開始できるようにします。

  • 組み込み通知トリガー: App Distribution Android SDK では、テスターがアプリの任意の場所からタップできる継続的な通知を表示できます。このトリガーは、テストを迅速に開始し、テスターがフィードバックを提供する方法をカスタマイズする必要がない場合に使用します。

  • カスタム トリガー: アプリでボタンやメニュー アイテムをタップしたり、デバイスをシェイクしたりするなど、独自のトリガー メカニズムを指定できます。

これらのトリガーのいずれかを使用して、テスターがフィードバックを送信すると、Android SDK は次のアクションを実行します。

  1. アプリの現在のアクティビティのスクリーンショットをキャプチャします。

  2. テスターが SDK のテスト機能を有効にしていることを確認するためのチェックを実行します。テスト機能が有効になっていない場合、Android SDK はテスターに Google アカウントで App Distribution にログインするように求めます。

  3. テスターがフィードバックを作成して送信できる全画面アクティビティを開始します。

オプション 1: 通知トリガー

showFeedbackNotification() を使用すると、テスターのデバイスに永続的または継続的な通知が表示され、テスターはタップしてフィードバックを開始できます。通知を構成する際には、フィードバックを送信する前にテスターに表示されるテキストと、通知の中断レベル(通知チャネルの重要度に対応)を指定する必要があります。フィードバック データの収集と処理についてテスターに通知する場合は、テキストを使用してそのような通知を提供できます。

showFeedbackNotification() を使用していて、アプリがバックグラウンドに移動した場合、通知は非表示になります。通知を明示的に非表示にするには、cancelFeedbackNotification() を使用します。メイン アクティビティの onCreate() には showFeedbackNotification() を含めることをおすすめします。

Kotlin+KTX

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        Firebase.appDistribution.showFeedbackNotification(
            // Text providing notice to your testers about collection and
            // processing of their feedback data
            R.string.additionalFormText,
            // The level of interruption for the notification
            InterruptionLevel.HIGH)
    }
}

Java

public class MainActivity extends AppCompatActivity {
    FirebaseAppDistribution firebaseAppDistribution =
        FirebaseAppDistribution.getInstance();
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        firebaseAppDistribution.showFeedbackNotification(
            // Text providing notice to your testers about collection and
            // processing of their feedback data
            R.string.additionalFormText,
            // The level of interruption for the notification
            InterruptionLevel.HIGH);
    }
}

オプション 2: カスタム トリガー

startFeedback() メソッドを使用して、任意のメカニズムでフィードバックを開始します。たとえば、フィードバックをトリガーするには、アプリのアクション メニューに「フィードバックを送信」メニュー項目を追加するか、テスターがデバイスを振るまたはスクリーンショットを撮るようにします。フィードバックをトリガーする際、フィードバックの送信前にテスターに表示されるテキストを指定します。フィードバック データの収集と処理についてテスターに通知する場合は、テキストを使用してそのような通知を提供できます。

Kotlin+KTX

Firebase.appDistribution.startFeedback(R.string.feedbackMessage)

Java

FirebaseAppDistribution.getInstance().startFeedback(R.string.feedbackMessage);

ステップ 4: 実装をビルドしてテストする

ローカルテスト

最初にアプリを配布することなく実装をテストするには、次の手順を行います。

  1. ローカル デバイスでデベロッパー モードを有効にします。

    adb shell setprop debug.firebase.appdistro.devmode true
    
  2. App Distribution ライブラリ全体を含むプレリリース バリアントとしてアプリをビルドし、ステップ 3: アプリ内フィードバックを構成するで実装したメカニズムを使用してフィードバックをトリガーできることをテストします。デベロッパー モードではフィードバックは送信されません。

  3. テストの後、デバイスでデベロッパー モードを無効にできます。

    adb shell setprop debug.firebase.appdistro.devmode false
    

エンドツーエンドのテスト

アプリでフィードバックを送信できるかをテストするには、App Distribution ライブラリ全体を含むプレリリース バリアントとしてアプリをビルドし、次の手順で実装をテストします。

  1. 新しいアプリのリリースを App Distribution にアップロードします。

  2. アクセス権限のあるアカウントにアプリのリリースを配布します。

  3. App Distribution のウェブまたは Android のテスターアプリからアプリをダウンロードします。

  4. ステップ 3: アプリ内フィードバックを構成するで実装したメカニズムを使用してフィードバックをトリガーします。

  5. アプリのリリースを配布したアカウントと同じアカウントでログインし、フィードバックを送信します。

  6. Firebase コンソールの新しいリリースのカードでフィードバックを確認します。

テスターがアプリでフィードバックを開始できない場合など、一般的な問題の解決方法については、SDK でテスト機能を有効にするをご覧ください。

ステップ 5: テスターのフィードバックを管理する

テスターがフィードバックを送信できるようにしたら、次のツールを使用してフィードバックを確認し、対応できます。

Firebase コンソールでフィードバックを表示、削除する

スクリーンショットを含むユーザー フィードバックを確認したり削除したりするには、Firebase コンソールで特定のリリースの下にある [テスターのフィードバック] タブを開きます。ユーザー フィードバックはリリースごとに整理されているため、フィードバックが適用されるバージョンを確認できます。

確認が済んだユーザー フィードバックは、[フィードバックを削除] ボタンをクリックして削除できます。削除したフィードバックはリリースから削除されます。

新しいフィードバックに関するメール通知アラートを受信する

新しいテスターのフィードバックを積極的に把握できるようにするために、テスターがフィードバックを送信したときにメール通知アラートを受け取ることができます。メール通知アラートには、テスターから提供されたフィードバックの内容と、送信されたスクリーンショットへのリンクが含まれています。

このデフォルトのメカニズムを使用して App Distribution のメール通知アラートを受信するには、firebase.projects.update 権限が必要です。この必要とされる権限は、Firebase 管理者、プロジェクトのオーナーまたは編集者のロールにデフォルトで含まれています。

デフォルトでは、新しいフィードバック レポートが送信されると、メール通知アラートを受信するために必要な権限を持つすべてのプロジェクト メンバーがメール通知アラートを受け取ります。プロジェクト メンバーは、このようなアラートを個別に無効にできます。

メール通知アラートを無効にするには、Firebase アラートを受信するをご覧ください。

サードパーティ ツールに新しいフィードバックを送信する

Cloud Functions for Firebase を使用して、App-Distribution のアラートを独自の通知チャネルに送信することもできます。たとえば、関数を作成して、新しいアプリ内フィードバックのアラート イベントをキャプチャし、アラート情報を Discord、Slack、Jira などのサードパーティのサービスに送信するようなことができます。

Cloud Functions for Firebase を使用して高度なアラート機能を設定するには、次の手順を行います。

  1. Cloud Functions for Firebase を設定します。これには、次のタスクが含まれます。

    1. Node.js と npm をダウンロードします。

    2. Firebase CLI をインストールしてログインします。

    3. Firebase CLI を使用して Cloud Functions for Firebase を初期化します。

  2. App Distribution からアプリ内フィードバックのアラート イベントをキャプチャし、イベントのペイロードを処理する(たとえば Discord のメッセージにアラート情報を投稿する)関数を記述してデプロイします。

Jira に新しいフィードバックを送信する方法の例については、こちらのサンプルをご覧ください。

キャプチャできるすべてのアラート イベントについては、App Distribution のアラートのリファレンス ドキュメントをご覧ください。