About this project

## Unity Engine SDK for Aptabase This package instruments Unity Engine projects with Aptabase, an open-source, privacy-first analytics platform for mobile, desktop, and web apps. ### Installation Install via Unity Package Manager by adding the git URL https://github.com/aptabase/aptabase-unity.git through Window > Package Manager > Add Package from git URL. ### Configuration After obtaining an App Key from Aptabase, set it in `Aptabase/Resources/AptabaseSettings.Asset`. The host is auto-selected based on the key; for self-hosted deployments a `SelfHostURL` field appears. Keys prefixed with `A-DEV-*` target a local Aptabase instance at `https://localhost:3000`. Optional settings include overriding the app version (`AppVersion`), specifying a platform-specific build number (`AppBuildNumber`), adjusting event flush intervals (`FlushInterval`), and enabling automatic crash reporting (`EnableCrashReporting`). ### Event Tracking Events are logged via `Aptabase.TrackEvent()` within the `AptabaseSDK` namespace. Custom properties accept only strings and numbers. Events are batched and sent every 60 seconds in production or 2 seconds in development. Manual flushing is available via `Aptabase.Flush()`. The SDK auto-enriches events with OS, app version, and other metadata. No events are tracked automatically — all recording must be done manually. ### Error Tracking (Beta) Use `Aptabase.TrackError(ex)` for handled exceptions and `Aptabase.TrackError(ex, fatal: true)` for unrecoverable errors. With `EnableCrashReporting`, the SDK automatically reports: - Caught exceptions from MonoBehaviour callbacks, coroutines, and `Debug.LogException` as `unhandled` - Process-terminating exceptions as `crash` with `fatal` severity - Unobserved Task exceptions as `taskException` Each report includes exception type, message, stack trace, severity, and capture method. Up to 100 unique errors per session are reported. Native crashes are not captured. ### Additional Features - Response listener via `SetResponseListener()` for HTTP status codes - Enable/disable the SDK with `SetEnabled()` - Apple App Store privacy form guidance provided