Unity

If you have previously used the Unity SDK version 2+, you need to delete the following files and folders in the "Assets" folder of your project:
2. Create a script with the following code and attach it to the GameObject that will survive the entire life cycle of the app.
using DevToDev.Analytics;
using UnityEngine;
public class DTDObject : MonoBehaviour
{
void Start()
{
#if UNITY_ANDROID
DTDAnalytics.Initialize("androidAppID");
#elif UNITY_IOS
DTDAnalytics.Initialize("IosAppID");
#elif UNITY_WEBGL
DTDAnalytics.Initialize("WebAppID");
#elif UNITY_STANDALONE_WIN
DTDAnalytics.Initialize("winAppID");
#elif UNITY_STANDALONE_OSX
DTDAnalytics.Initialize("OsxAppID");
#elif UNITY_WSA
DTDAnalytics.Initialize("UwpAppID");
#endif
}
}
You can find the AppID in the settings of the respective app in devtodev (Settings → SDK → Integration → Credentials).
config - an object instance of DTDAnalyticsConfiguration, which is used for specifying additional properties during the initialization.
DTDAnalyticsConfiguration
Parameter
Type
Description
CurrentLevel
Integer
The player level at the moment of devtodev SDK initialization. It’s optional but we recommend using it for improving data accuracy.
UserId
String
A custom user ID assigned by the developer. In the case of default calculation by device IDs, the identifier can be used for searching users in devtodev. In case the project uses calculation by user IDs, the parameter is mandatory because it becomes the principal calculation ID in devtodev.
TrackingAvailability
DTDTrackingStatus (enum)
The property allows or disallows devtodev tracking of the user. By default, it is set to DTDTrackingStatus.Enable. SDK stores the previously assigned value. Pass DTDTrackingStatus.Disable if the user opted out of tracking in line with GDPR.
LogLevel
DTDLogLevel (enum)
The level of logging the SDK activity. The DTDLogLevel.No value is used by default. For troubleshooting during integration, it is recommended to set it to DTDLogLevel.Debug, and either switch it off DTDLogLevel.No or use it only for error handling DTDLogLevel.Error in the release version.
ApplicationVersion
String
The app version during the devtodev SDK initialization. Use the property on the WinStandalone platform only. For all other platforms, data is collected automatically.
Example:
var config = new DTDAnalyticsConfiguration
{
ApplicationVersion = "1.2.3",
LogLevel = DTDLogLevel.Debug,
TrackingAvailability = DTDTrackingStatus.Enable,
CurrentLevel = 1,
UserId = "unique_userId"
};
using DevToDev.Analytics;
using UnityEngine;
public class DTDObject : MonoBehaviour
{
void Start()
{
#if UNITY_ANDROID
DTDAnalytics.Initialize("androidAppID", config);
#elif UNITY_IOS
DTDAnalytics.Initialize("IosAppID", config);
#elif UNITY_WEBGL
DTDAnalytics.Initialize("WebAppID", config);
#elif UNITY_STANDALONE_WIN
DTDAnalytics.Initialize("winAppID", config);
#elif UNITY_STANDALONE_OSX
DTDAnalytics.Initialize("OsxAppID", config);
#elif UNITY_WSA
DTDAnalytics.Initialize("UwpAppID", config);
#endif
}
}

SDK Activity
The SDK can’t control app activity in case you use Windows Standalone therefore this responsibility is shifted to the developer. While initializing the SDK, the activity starts automatically and after that, the activity status will not auto-change. To track app activity, the developer can use the following methods: DTDAnalytics.StartActivity and DTDAnalytics.StopActivity. It is recommended to use the DTDAnalytics.StopActivity method to stop activity when the app goes into the background or gets closed. You can use the DTDAnalytics.StartActivity method to resume activity when the app gets reopened from the taskbar.
For other platforms, there is no need to manually call the DTDAnalytics.StartActivity and DTDAnalytics.StopActivity methods.

In the version 2019.2, the Executable Only option was added to the Build Type. This option is incompatible with the SDK because the SDK needs access to the project file in order to register the DevToDev.Background service.

Add the following strings to proguard.txt (read more about Unity proguard here):
-keep class com.devtodev.** { *; }
-dontwarn com.devtodev.**

To integrate with Xcode, the SDK uses PostProcessBuild in the DTDPostProcessAnalytics and DTDPostProcessMessaging scripts. If you use custom PostProcessBuild scripts, add them callbackOrder of less than 98 to avoid conflicts.
Your app must request tracking authorization before it can get the advertising identifier. See the detailed instruction on how to request it.
If you want to disable tracking of advertising identifiers, you need to open the DTDPostProcesssAnalytics.cs file and comment out the line 39: project.AddFrameworkToProject(targetGuid, "AppTrackingTransparency.framework", true);
Last modified 1mo ago
Export as PDF
Copy link
On this page
SDK Initialization
Specific integration features of certain platforms
Windows Standalone
Universal Windows Platform (WSA)
Android
iOS