The DataPrivacy
class configures the Unity AnalyticsA data platform that provides analytics for your Unity game. More info
See in Glossary service based on the player’s data privacy management choices.
NAMESPACE: UnityEngine.Analytics
public class DataPrivacy
The DataPrivacy
class automatically fetches the player’s data privacy status and configures the Analytics service accordingly.
Use the FetchPrivacyUrl()
function to fetch the the URL of the player’s personal data management page. Open the URL to give the player the option to manage their data privacy settings.
This page details three functions:
Prepares the Data Privacy API for use.
public static void Initialize()
This function creates a hidden GameObjectThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info
See in Glossary and adds an instance of the DataPrivacy
class to it as a component.
On Unity 5.1 or earlier, call Initialize()
early in your application startup (ideally, right after you call UnityAnalytics.StartSDK (projectId)
. Newer versions of Unity call Initialize()
automatically.
Fetches the player’s current opt-out status and configures the Unity AnalyticsSee Analytics More info
See in Glossary service.
public static void FetchOptOutStatus(Action<bool> optOutAction = null)
Action<bool> optOutAction
— The Action object to invoke when Unity has fetched the player’s opt-out status. The boolean parameter passed to your Action is true
if the player has opted out of personal data collection, and false
if they have not.The function configures the Analytics service as appropriate for the player’s data collection choices. Unity caches the status for use when the player’s computer or device is offline.
Unity calls FetchOptOutStatus()
automatically when your game launches. You should also call the function when the player returns to your app after closing the data privacy management URL, to immediately apply any changes they made while on that page.
You can also use FetchOptOutStatus()
and pass an Action<bool>
function parameter to get a player’s opt-out choice. The plug-in invokes the optOutAction
function you provide when the network fetch request is complete. The boolean argument passed to your action is true
when the player has opted out and false
, if they have not. If the network request for the player’s status fails, Unity calls your optOutAction
function with the cached value (or false
, if the status has never been set).
void OnOptOutStatus(bool optOut)
{
if(optOut)
{
Debug.Log("Player has opted-out of personal data collection.");
}
}
// ...
DataPrivacy.FetchOptOutStatus(OnOptOutStatus);
Gets the URL of the player’s personal data management page.
public static void FetchPrivacyUrl(Action<string> success, Action<string> failure = null)
Action<String> success
— The Action object to invoke when the URL is successfully retrieved. The string passed to the Action contains the URL.
[optional] Action<String> failure
— The Action object to invoke when Unity cannot retrieve the URL. The string passed to the Action contains the reason for the failure.
Open the URL passed to your success
function in a browser or webview to give the player the opportunity to manage their data protection options. Use Application.OpenURL()
to open the page.
The URL is valid for a short period of time. Always fetch the URL immediately before opening it.
Call FetchOptOutStatus()
after the player returns to your game to apply any changes immediately. Otherwise, Unity applies any changes to data collection the next time the player launches your game.
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Is something described here not working as you expect it to? It might be a Known Issue. Please check with the Issue Tracker at issuetracker.unity3d.com.
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thanks for helping to make the Unity documentation better!