|Singular Unity SDK|
||Singular Unity SDK version 1.4.0|
|Sample App||Review our sample app for an example of a complete SDK integration based on best practices.|
Note: Uninstall tracking is only available to Enterprise customers.
Android Uninstall Tracking
To enable uninstall tracking for your Android app, first configure the app in the Singular platform as detailed in Setting Up Uninstall Tracking. Then follow the instructions below.
Note: Google deprecated the GCM APIs on April 2018. Use FCM for uninstall tracking.
Enabling Uninstall Tracking Using Firebase Cloud Messaging (FCM)
1. Integrate with FCM:
To track uninstalls, you can use the services of the Firebase Cloud Messaging (FCM) platform. If you are not already using FCM follow Google's instructions on how to Set up a Firebase Cloud Messaging client app on Android.
FCM Requirements (source)
FCM clients require devices running Android 4.1 or higher that also have the Google Play Store app installed, or an emulator running Android 4.1 with Google APIs. Note that you are not limited to deploying your Android apps through Google Play Store.
Users/devices who are not running on supported versions of Android will not be available for Singular uninstall tracking.
2. Update the AndroidManifest.xml File:
Update your AndroidManifest.xml file to add the necessary intent filter for your app (replace MyFirebaseMessagingService with your class that implements the Firebase Service):
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter> </service> <service android:name=".java.MyFirebaseMessagingService" android:exported="false"> intent-filter> action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service>
3. Register and Send the FCM Device Token:
Finally, set the FCM device token after your SingularConfig is initialized in OnCreate(), as follows:
iOS Uninstall Tracking
Uninstall tracking on iOS is based on Apple push-notification technology. If your app doesn't currently support push notifications, see Apple's guide. If your app already supports push notifications, all you need to do is pass the device token returned from APNS using the RegisterDeviceTokenForUninstall method, after the SDK is initialized.
|Description||Pass the device token returned from APNS. Note that the APNS token is usually binary data in the native form, but you need to pass it as a string.|
Adding Global Properties
The Singular SDK lets you define custom additional properties that you want to send to the Singular servers with every session and event sent from the app. These properties can represent any information you want about the user, the app mode or status, or anything else. Once you set these properties, they are available as dimensions in your reports and you can use them to break down your data.
For example, if you have a gaming app, you can define a property called "Level" and set it initially to "0". Any session and event sent from the app will be sent with "Level": "0". Once the user levels up you reset the property to "1" and so on. You can then get your reports, including sessions, event counts, and revenue data, broken down by user level.
- You can define up to 5 global properties.
- They persist between app runs (with the latest value you gave them) until you unset them or the user uninstalls the app.
- Each property name and value can be up to 200 characters long. If you pass a longer property name or value, it will be truncated to 200 characters.
Setting Global Properties before Initialization
You can use the SetGlobalProperty method to set global properties through SingularSDK before initializing the SDK. Make sure to turn off the `Initialize On awake` flag if you want your global properties to be included in the session.
Note that since global properties and their values persist between app runs, the property that you are setting may already be set to a different value. Use the overrideExisting parameter to tell the SDK whether to override an existing property with the new value or not.
Setting Global Properties After Initialization
Use the following methods to set, unset, and retrieve global properties at any time in the app's run.
Set a global property to a given value.
|Signature||public static bool SetGlobalProperty(string key, string value, bool overrideExisting)|
|Description||Retrieve all the global properties and their current values as a Map.|
|Signature||public static Dictionary<string, string> GetGlobalProperties()|
|Description||Remove a global property.|
|Signature||public static void UnsetGlobalProperty(string key)|
|Description||Remove all global properties.|
|Signature||public static void ClearGlobalProperties()|
The Singular SDK provides several methods to help you comply with GDPR policies and let Singular know about user consent or non-consent for tracking.
|Description||Notify Singular of user consent (opt-in) for tracking.|
|Description||Notify Singular that a user is a minor (under 13).|
|Description||Stop all tracking activities for this user on this app.
Note: Calling this method effectively disables the SDK, even after the app restarts (the state is persistent)! The only way to re-enable tracking is by calling resumeAllTracking().
|Description||Resume tracking for this user on this app.|
|Description||Check the tracking status for this user on this app. Returns true if tracking has been stopped using StopAllTracking() and not resumed.|