Unity SDK for Aptabase: Open Source, Privacy-First and Simple Analytics for Mobile, Desktop and Web Apps
21
stars
54
commits
C#
primary language
Sep 4, 2026
updated

Instrument your Unity Engine project with Aptabase, an Open Source, Privacy-First and Simple Analytics for Mobile, Desktop and Web Apps.
You can install the package via Unity Package Manager.
Go to Window > Package Manager > + > Add Package from git URL and enter https://github.com/aptabase/aptabase-unity.git
First, you need to get your App Key from Aptabase, you can find it in the Instructions menu on the left side menu.
Then you have to set it inside the settings file located at Aptabase/Resources/AptabaseSettings.Asset inside your App Key field.
Based on the key, your Host will be selected. In the case of self-hosted versions a new SelfHostURL field will appear for input.
Keys in the A-DEV-* format target a local Aptabase instance at https://localhost:3000; its self-signed development certificate is trusted automatically for loopback addresses (on WebGL, trust it in the browser instead).
App Version is automatically detected, but you can override it with the AppVersion field. You may want to provide an AppBuildNumber as it may vary across different platforms. This allows you to specify a platform-specific build number to ensure accurate version tracking and compatibility.
Events are batched and sent every 60 seconds in production and 2 seconds in development by default. You can override these values with the FlushInterval field by inputting desired time in milliseconds.
Enable EnableCrashReporting to automatically report uncaught exceptions, see Error Tracking below.
The Aptabase SDK will seamlessly run in the background as soon as your app starts up. All SDK types live in the AptabaseSDK namespace, so add using AptabaseSDK; to any script that calls it.
To effortlessly log events, you can use the following code snippet. The Props parameter is optional and can be left empty if not needed.
using AptabaseSDK;
Aptabase.TrackEvent("app_started", new Dictionary<string, object>
{
{"hello", "world"}
});
If you want to manually flush the event queue you can use:
await Aptabase.Flush();
or
Aptabase.Flush();
If you want to react to HttpStatusCodes received from the server, you can use:
Aptabase.SetResponseListener((statusCode) => UnityEngine.Debug.Log($"Aptabase response status code: {statusCode}"));
If you want to enable or disable the SDK (note: also starts/stops polling), you can use:
Aptabase.SetEnabled(enabled);
It defaults to enabled. While disabled, error reports are dropped as well.
A few important notes:
Error reporting is in beta. Reports appear on the
Errorspage of your Aptabase dashboard.
Use TrackError to report errors you've caught and handled:
using AptabaseSDK;
try
{
DoSomething();
}
catch (Exception ex)
{
Aptabase.TrackError(ex); // severity: error
}
For errors your app can't recover from, mark the report as fatal:
Aptabase.TrackError(ex, fatal: true); // severity: fatal
To also report uncaught exceptions automatically, enable EnableCrashReporting in the AptabaseSettings asset. The SDK then reports:
MonoBehaviour callbacks, coroutines, Debug.LogException, ...) as unhandledcrash with severity fatal (delivered on a best-effort basis)Task exceptions as taskExceptionA few important notes about error reporting:
error or fatal) and how it was captured (handled, unhandled, crash or taskException).Debug.LogError messages are not reported.Stack Trace player setting for the Exception log type; release IL2CPP builds may not include line numbers.When submitting your app to the Apple App Store, you'll need to fill out the App Privacy form. You can find all the answers on our How to fill out the Apple App Privacy when using Aptabase guide.
For AI/LLM integration instructions, see llms.txt
C#
100.0%
Unity SDK for Aptabase: Open Source, Privacy-First and Simple Analytics for Mobile, Desktop and Web Apps
21
stars
54
commits
C#
primary language
Sep 4, 2026
updated

Instrument your Unity Engine project with Aptabase, an Open Source, Privacy-First and Simple Analytics for Mobile, Desktop and Web Apps.
You can install the package via Unity Package Manager.
Go to Window > Package Manager > + > Add Package from git URL and enter https://github.com/aptabase/aptabase-unity.git
First, you need to get your App Key from Aptabase, you can find it in the Instructions menu on the left side menu.
Then you have to set it inside the settings file located at Aptabase/Resources/AptabaseSettings.Asset inside your App Key field.
Based on the key, your Host will be selected. In the case of self-hosted versions a new SelfHostURL field will appear for input.
Keys in the A-DEV-* format target a local Aptabase instance at https://localhost:3000; its self-signed development certificate is trusted automatically for loopback addresses (on WebGL, trust it in the browser instead).
App Version is automatically detected, but you can override it with the AppVersion field. You may want to provide an AppBuildNumber as it may vary across different platforms. This allows you to specify a platform-specific build number to ensure accurate version tracking and compatibility.
Events are batched and sent every 60 seconds in production and 2 seconds in development by default. You can override these values with the FlushInterval field by inputting desired time in milliseconds.
Enable EnableCrashReporting to automatically report uncaught exceptions, see Error Tracking below.
The Aptabase SDK will seamlessly run in the background as soon as your app starts up. All SDK types live in the AptabaseSDK namespace, so add using AptabaseSDK; to any script that calls it.
To effortlessly log events, you can use the following code snippet. The Props parameter is optional and can be left empty if not needed.
using AptabaseSDK;
Aptabase.TrackEvent("app_started", new Dictionary<string, object>
{
{"hello", "world"}
});
If you want to manually flush the event queue you can use:
await Aptabase.Flush();
or
Aptabase.Flush();
If you want to react to HttpStatusCodes received from the server, you can use:
Aptabase.SetResponseListener((statusCode) => UnityEngine.Debug.Log($"Aptabase response status code: {statusCode}"));
If you want to enable or disable the SDK (note: also starts/stops polling), you can use:
Aptabase.SetEnabled(enabled);
It defaults to enabled. While disabled, error reports are dropped as well.
A few important notes:
Error reporting is in beta. Reports appear on the
Errorspage of your Aptabase dashboard.
Use TrackError to report errors you've caught and handled:
using AptabaseSDK;
try
{
DoSomething();
}
catch (Exception ex)
{
Aptabase.TrackError(ex); // severity: error
}
For errors your app can't recover from, mark the report as fatal:
Aptabase.TrackError(ex, fatal: true); // severity: fatal
To also report uncaught exceptions automatically, enable EnableCrashReporting in the AptabaseSettings asset. The SDK then reports:
MonoBehaviour callbacks, coroutines, Debug.LogException, ...) as unhandledcrash with severity fatal (delivered on a best-effort basis)Task exceptions as taskExceptionA few important notes about error reporting:
error or fatal) and how it was captured (handled, unhandled, crash or taskException).Debug.LogError messages are not reported.Stack Trace player setting for the Exception log type; release IL2CPP builds may not include line numbers.When submitting your app to the Apple App Store, you'll need to fill out the App Privacy form. You can find all the answers on our How to fill out the Apple App Privacy when using Aptabase guide.
For AI/LLM integration instructions, see llms.txt
C#
100.0%