
スマートグルーピング
同一 Fingerprint のクラッシュが自動的にグループ化され、何千もの重複レポートではなく 1 つの対処可能な問題として表示されます。
Breadcrumb トレイル
クラッシュ直前の最大 50 件の Breadcrumb イベントにより、プレイヤーが何をしていたかを正確に把握し、問題を確実に再現できます。
クラッシュフリーセッション率
クラッシュなしで完了したセッションの割合を追跡し、問題を解決するたびに改善を確認できます。
クイック統合
ゲーム実行中
// Unity C#: Crash Reporting
using System;
using System.Collections.Generic;
using PM.horizOn.Cloud.Manager;
// Once at startup: registers the crash session and catches unhandled exceptions
CrashManager.Instance.StartCapture();
CrashManager.Instance.SetUserId(UserManager.Instance.CurrentUser.UserId);
// Context that is sent with the next report
CrashManager.Instance.RecordBreadcrumb("scene", "Entered world_3");
// Report a handled exception as NON_FATAL
try { LoadTextures(); }
catch (Exception ex)
{
CrashManager.Instance.RecordException(ex, new Dictionary<string, string> { ["asset"] = "boss_texture" });
}# REST API: Crash Reporting
# Create a crash session at app start
curl -X POST https://horizon.pm/api/v1/app/crash-reports/session \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"sessionId":"SESSION_ID","appVersion":"1.2.3","platform":"Android"}'
# Report a crash (type CRASH, NON_FATAL or ANR)
curl -X POST https://horizon.pm/api/v1/app/crash-reports/create \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "SESSION_ID",
"type": "CRASH",
"message": "NullReferenceException in PlayerController",
"fingerprint": "PlayerController.NullRef",
"appVersion": "1.2.3",
"sdkVersion": "1.0.0",
"platform": "Android",
"os": "Android 14",
"deviceModel": "Pixel 8"
}'これらの例では、Unity SDK(C#)とREST APIを使っています。GodotとUnrealでも、それぞれのSDKで同じ呼び出しができます: クイックスタートを参照
