
智能分组
具有相同指纹的崩溃会自动归类,让你看到的是一个可操作的问题,而非成千上万的重复报告。
Breadcrumb 轨迹
崩溃前多达 50 个 Breadcrumb 事件,精确还原玩家操作过程,帮助你可靠地复现问题。
无崩溃会话率
追踪无崩溃完成的会话比例,随着问题逐步修复,观察指标持续改善。
快速集成
游戏运行中
// Unity C# - Crash Reporting
using HorizOn;
var horizon = new HorizonClient("YOUR_API_KEY");
// Create a crash session at app start
var sessionId = Guid.NewGuid().ToString();
await horizon.Crashes.CreateSession(sessionId, "1.2.3", "Android");
// Report a fatal crash
await horizon.Crashes.Report(new CrashReport {
SessionId = sessionId,
Type = CrashType.Crash,
Message = "NullReferenceException in PlayerController",
Fingerprint = "PlayerController.NullRef",
StackTrace = System.Environment.StackTrace,
AppVersion = "1.2.3",
Platform = "Android",
Os = "Android 14",
DeviceModel = SystemInfo.deviceModel
});
// Report a non-fatal exception
await horizon.Crashes.Report(new CrashReport {
SessionId = sessionId,
Type = CrashType.NonFatal,
Message = "Failed to load texture asset",
Fingerprint = "AssetLoader.TextureFail",
AppVersion = "1.2.3"
});# REST API - Crash Reporting
# Create a crash session at app start
curl -X POST https://eu.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
curl -X POST https://eu.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"
}'