User Reporting についての理解
User Reporting のセットアップ を完了すると、Unity Dashboard にユーザーレポートが表示されます。表示されない場合は、レポートのサイズが 10MB を超えていないことを確認してください。
ユーザーレポートの表示
- Unity ID で Unity Dashboard にサインインします。
- 該当するプロジェクトを選択します。
- メインメニューから、DevOps > Cloud Diagnostics > User Reporting を選択します。
- レポートを選択して、その詳細を表示します。
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
であることをチェックすることで、未処理の例外が発生したときのみコードが実行されます。パフォーマンスを考慮して、応答が不要になった場合はこのイベントからのコールバックを削除するようにしてください。