User Reporting についての理解

User Reporting のセットアップ を完了すると、Unity Dashboard にユーザーレポートが表示されます。表示されない場合は、レポートのサイズが 10MB を超えていないことを確認してください。

ユーザーレポートの表示

  1. Unity ID で Unity Dashboard にサインインします。
  2. 該当するプロジェクトを選択します。
  3. メインメニューから、DevOps > Cloud Diagnostics > User Reporting を選択します。
  4. レポートを選択して、その詳細を表示します。

User Reporting ページには、受信したレポートが表示されます。ユーザーレポートを選択して、その詳細を開きます。

Dimensions (ディメンション) および Value (値) ドロップダウンメニューを使用して、レポートをフィルター処理できます。フィルターを適用するには、Apply (適用) を選択します。レポートのフィルターを削除するには、Clear (消去) を選択します。カスタムディメンションの作成の詳細については、User Reporting の設定 を参照してください。

User Reporting ページの上部には、利用している Unity プランに応じて、現在のレポートの制限と使用容量が表示されます。レポート数の制限と使用容量を引き上げるには、Unity Pro 以上で Advanced Cloud Diagnostics にアップグレード してください。

ユーザーレポートの詳細の理解

User Reporting ページからユーザーレポートを選択して、その詳細を開きます。

次のページに、選択したレポートの詳細なデータが表示されます。そのページの上部に、レポートを受信した日付とサマリーの説明が表示されます。

レポートを削除またはダウンロードするには、Report actions (レポートのアクション) ドロップダウンメニューを使用します。

User Report Details (ユーザーレポートの詳細) セクションには、指標、スクリーンショット、フィールド、デバイスメタデータ、イベントなどのデータも含まれています。

  • Metrics (指標): レポートの Metrics (指標) セクションには、指標が収集されたフレーム番号の範囲、指標の平均値、特定の指標の値の範囲が表示されます。
  • Screenshots (スクリーンショット): このセクションには、レポートと共に送信されたスクリーンショットが含まれます。画像を選択すると、スクリーンショットの詳細が表示されます。
  • Fields (フィールド): このセクションには、レポートと共に送信されたユーザー定義のディメンション値フィールドが表示されます。
  • Attachments (添付ファイル): このセクションには、レポートと共に送信された添付ファイルが含まれます。添付ファイルをダウンロードするには、ダウンロードアイコンまたは添付ファイル名を選択します。
  • Metadata (メタデータ): このセクションでは、レポートの作成元のデバイスとアプリケーションに関する詳細情報が、追加したカスタムメタデータを含めて表示されます。
  • Events (イベント): このセクションには、コンソールログメッセージまたは開発者が手動で提供したメッセージが表示されます。イベントエントリーは以下のもので構成されます。
    • Event (イベント): 発生したイベントのサマリー。
    • Frame (フレーム): イベントが発生したフレーム。
    • Date and time (日時): イベントが発生した日時。
    • Status (ステータス): イベントのステータス。ステータスには、情報 (青の円)、成功 (緑の円)、警告 (黄色の三角形に感嘆符)、エラー (赤の円に感嘆符) があります。

未処理の例外からのユーザーレポートの送信

ノート: このアプローチは可能ですが、未処理の例外を処理するには Cloud Diagnostics の クラッシュと例外のレポート 機能を使用することを強くお勧めします。この機能では、未処理の例外の完全なスタックトレース、イベントからのログ、追跡した発生、検出したパターンを Unity Dashboard から表示できます。クラッシュと例外のレポートは、クラッシュのレポートと例外のレポートを集約したものです。

未処理の例外が発生したときにユーザーレポートを送信して、ログファイルやより有用なデータを取得できます。

以下のスクリプトを User Reporting パッケージのサンプルシーンに追加します。

void OnEnable()
{
    Application.logMessageReceived += UhandledExceptionCallback;
}
 
void OnDisable()
{
    Application.logMessageReceived -= UnhandledExceptionCallback;
}
 
void UnhandledExceptionCallback(string condition, string stackTrace, LogType type)
{
    if (type == LogType.Exception)
    {
         // Insert your desired behavior here, such as creating and sending a user report.
    }
}

このアプローチは、未処理の例外も含めたさまざまな状況でトリガーされる Application.logMessageReceived C# イベントに由来します。メッセージの LogType が Exception であることをチェックすることで、未処理の例外が発生したときのみコードが実行されます。パフォーマンスを考慮して、応答が不要になった場合はこのイベントからのコールバックを削除するようにしてください。