Attention: Cloud Diagnostics Advanced is officially deprecated. On October 31, 2024, all existing customers will be able to migrate to Backtrace. You will be able to complete the migration process by clicking a link in the Unity Cloud Dashboard. Migration instructions have been emailed to existing customers. After this date, you will no longer be able to access your Backtrace dashboard in the Unity Cloud Dashboard. Unity and Backtrace will support existing customers through the migration and end of their current annual subscription. Contact us if you are interested in a crash and error reporting tool.
Setup
Add Cloud Diagnostics Advanced to your Unity project to automatically detect and report errors and crashes in your game.
After you've completed the steps on this page, the reporting client for Cloud Diagnostics Advanced installs and sets with the default configuration settings.
What you need
You need a project and a submission token. You must have an active Cloud Diagnostics Advanced subscription to access token generation. By default, a submission token is generated for your project. If you need additional submission tokens, you can generate them as required.
To generate a submission token, go to your project in the Unity Dashboard and open the Cloud Diagnostics Advanced Diagnostic page.
From your dashboard project go to Products > Cloud Diagnostics Advanced > Diagnostic > Settings.
From Settings, go to > Error submission > Submission tokens, and select the Add (+) button.
Set up for non made with Unity solutions
To use Cloud Diagnostics Advanced with the Unreal engine, see Unreal setup.
System requirements
- Unity Editor version 2018.4 or higher
- Scripting Backend: Mono or IL2CPP
- API Compatibility Level: .NET 4.0 or .NET Standard 2.0
Migration from Cloud Diagnostics to Cloud Diagnostics Advanced
If Cloud Diagnostics Advanced is purchased as an upgrade to Cloud Diagnostic, as part of the creation of your Organization in the new service, we import 90 days of data from the current Cloud Diagnostic instance. It’s possible to start using Cloud Diagnostics Advanced with your current data while you implement the SDK for the new service in your game.
The same information is still available in the Cloud Diagnostic dashboard.
Disable crash and exception reporting
To use Cloud Diagnostics Advanced, you need to replace the implementation of Cloud Diagnostic. Make sure the Crash and Exception Reporting service is disabled:
- Open your project in the Unity Editor.
- From the Unity Editor menu, select Window > General > Services to open the Services window.
- From the Services window, select Cloud Diagnostics.
- Use the toggle beside Crashes and exceptions to turn off the service.
Install SDK
To use the full features of Cloud Diagnostic Advanced, you need to install the Backtrace Unity SDK.
The following methods are available to install the Backtrace Unity SDK.
OpenUPM
Install openupm-cli
npm install -g openupm-cli
Go to your Unity project directory
cd YOUR_UNITY_PROJECT_DIR
Install the latest io.backtrace.unity package
openupm add io.backtrace.unity
Unity package manager
- Download the latest version of the Backtrace Unity SDK from GitHub.
- Unzip the package and save it locally.
- Open your project in the Unity Editor.
- From the Unity Editor menu, select Window > Package Manager.
- Complete the steps in Installing a package from a local folder in the Unity documentation.
Git
This installation method is supported for Unity 2018.3 or higher.
- Clone the source project’s Git URL.
- Open your project in the Unity Editor.
- From the Unity Editor menu, select Window > Package Manager.
- Complete the steps in Installing from a Git URL in the Unity documentation.
Initialize the Backtrace client with GameObject
In this step, you create the Backtrace Configuration asset, create a new GameObject, add the Backtrace Client component to the GameObject, then add the Backtrace Configuration to the Backtrace Client component.
You can add the Backtrace Client component to any GameObject in your game scene.
- Open your project in the Unity Editor.
- From the Unity Editor menu, select Assets > Backtrace > Configuration. (Note: if no Backtrace option appears under Assets then close and reopen the project, and confirm the package is installed correctly.)
- Go to GameObject > Create Empty.
- Enter a name for the new GameObject.
- In the Inspector, select Add Component.
- Search for “Backtrace”, then select Backtrace Client.
- From the Assets folder, drag the Backtrace Configuration file to the Backtrace Configuration field.
Additional fields now display for the Backtrace client configuration and database configuration options.
To change Backtrace client and database options, we recommend that you change these values in the Unity UI with the Backtrace Configuration file. Alternatively, you can also make changes to the configuration in the C# code for your Unity project.
For more information about the available configuration options, see Configuration.
Configure the server address
The server address is required to submit errors and crashes to your Cloud Diagnostics Advanced instance.
Obtaining your server address
From your dashboard project go to Products > Cloud Diagnostics Advanced > Diagnostic > Settings.
From Settings, go to > Error submission > Submission tokens.
To obtain the server address for a token, open the More (⋮) menu next to the Enabled toggle, then select Copy server address to copy it to your clipboard.
Configuring your Unity Editor project
- Open your project in the Unity Editor.
- Select the Backtrace Configuration asset.
- In the Server Address field, enter the URL for the server address.
Verify the setup
At this point, you installed and set up the Backtrace client to automatically capture crashes and exceptions in your Unity game. To test the integration, use a try/catch block to throw an exception and start sending reports.
First, include the Backtrace dependencies:
using Backtrace.Unity;
using Backtrace.Unity.Model;
In an appropriate location such as the Start method of a new script, use the following to verify the setup:
//Read from manager BacktraceClient instance
var backtraceClient = GameObject.Find("manager name").GetComponent<BacktraceClient>();
//Set custom client attribute
backtraceClient["attribute"] = "attribute value";
//Read from manager BacktraceClient instance
var database = GameObject.Find("manager name").GetComponent<BacktraceDatabase>();
try {
//throw exception here
}
catch(Exception exception) {
var report = new BacktraceReport(exception);
backtraceClient.Send(report);
}