Version: 2018.1
Unity Analytics and the EU General Data Protection Regulation (GDPR)
Analytics Metrics, Segments, and Terminology

Unity Analytics DataPrivacy API

The DataPrivacy class configures the Unity Analytics 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:

Initialize()

Prepares the Data Privacy API for use.

Declaration

    public static void Initialize()

Details

This function creates a hidden GameObject 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.

FetchOptOutStatus(Action<bool>)

Fetches the player’s current opt-out status and configures the Unity Analytics service.

Declaration

    public static void FetchOptOutStatus(Action<bool> optOutAction = null)

Parameters

  • [optional] 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.

Details

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);

FetchPrivacyUrl(Action<String>, Action<String>)

Gets the URL of the player’s personal data management page.

Declaration

    public static void FetchPrivacyUrl(Action<string> success, Action<string> failure = null)

Parameters

  • 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.

Details

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.


  • 2018–05–18 Page published with limited editorial review
  • Removed Editor menu command for inserting the Data Privacy button. Added the Data Privacy Button prefab.
  • New feature in Unity 2018.1
Unity Analytics and the EU General Data Protection Regulation (GDPR)
Analytics Metrics, Segments, and Terminology