Version: 2018.4
COPPA Compliance
Unity Analytics DataPrivacy API

Unity Analytics 和欧盟一般数据保护条例 (GDPR)

一般数据保护条例 (General Data Protection Regulation, GDPR) 是欧盟关于规范欧盟公民数据隐私的法律。

使用 Unity Analytics 时保持对 GDPR 的遵从性是我们共同的责任。Unity 会收集数据来帮助您通过广告和游戏改善玩家体验。这些数据中的一些数据包括 GDPR 规定的涉及个人身份的信息 (PII)。Unity 提供了一些工具,让玩家可以选择退出 PII 收集以及管理 Unity 根据 GDPR 规定收集的个人数据。您的责任包括为应用程序添加一个选择退出 (opt-out) 按钮,并在您自己的隐私政策中提供 Unity 隐私政策的链接。

如果您的应用程序使用 Unity Ads,Unity 会在首次在手机上展示广告时向玩家显示通知,让他们可以选择加入或退出涉及个人身份的信息收集。后续广告也会显示一个按钮,用户可以使用该按钮来管理其数据隐私选项。有关 GDPR 和 Unity Ads SDK 的更多信息,请参阅 Unity Ads Knowledge Base:GDPR 合规性 (GDPR Compliance)

如果您同时使用 Unity Ads 和 Analytics,则 Unity Ads 的选择退出机制适用于这两种服务。

如果您不使用 Unity Ads,但使用其他 Unity 服务,例如 Unity Analytics、IAP、Multiplayer 或 Performance Reporting,则必须使用 Unity Analytics Data Privacy 插件为玩家提供选择退出选项。该插件提供了一个可添加到游戏中的按钮,此按钮可打开 Unity 网页,让玩家可在其中管理其隐私设置。玩家根据每个设备管理每个游戏的偏好设置。Unity Analytics 不会跟踪同一玩家是否在玩使用 Unity 制作的多个游戏或者在多个设备上玩同一个游戏。

以上选项涵盖 Unity 收集的用于定制广告和玩家服务的所有数据。但是,如果您自行收集涉及个人身份信息的数据,您有责任保护和管理该数据。

最佳实践:

  • 自行征求法律意见。本文档中的任何内容均不应视为法律意见。

  • 阅读并理解数据处理附录 (Data Processing Addendum, DPA) [PDF]

  • 在您的隐私政策中将 Unity 列为收集数据的第三方,并在您的隐私政策中包含 Unity 隐私政策的链接。

  • 请勿在标准或自定义事件中向 Unity Analytics 发送涉及个人身份的信息。

  • 请勿使用 Analytics.SetUserGender()Analytics.SetUserBirthYear() 将性别和年龄信息发送到 Unity Analytics。这些 API 已弃用。

Unity Analytics Data Privacy 插件

如果您不使用 Unity Ads,则必须使用 Unity Analytics Data Privacy 插件让您的玩家控制 Unity Analytics 数据收集。

Data Privacy 插件是 Unity Analytics Library 包的一部分。您可以使用 Unity Package Manager(菜单:Window > Package Manager)来仔细检查项目中是否启用了该包。

该插件支持以下平台:

  • Linux
  • Windows Phone
  • Tizen
  • Apple TV
  • Blackberry

Unity Analytics 服务会自动删除从这些平台上运行的游戏发送的涉及个人身份的信息。如有任何问题,请联系 DPO@unity3d.com

如果您的游戏显示来自 Unity Ads 网络的广告,则 Unity Ads SDK 已经向玩家显示数据收集选择退出选项,并已根据玩家的数据隐私选项配置 Unity Analytics。如果不使用 Unity Ads 服务,您只需要使用 Unity Analytics Data Privacy 插件。

注意:对于 2018.3 之前的 Unity 版本,必须使用来自 Unity Asset Store 的 Unity Analytics Data Privacy 资源包。Asset Store 版本可与 Unity 4.7、5.1+、2017.1+、2018.1 和 2018.2 一起使用。

向玩家提供选择退出选项

Data Privacy 插件包含一个 Unity UI 按钮预制件,您可以将其放置在用户界面的合适位置。当玩家单击此按钮时,它会在 Web 浏览器中打开 Player Data Privacy 页面。玩家可以在此页面中选择退出 Unity 的数据收集,还可以查看 Unity 过去收集的数据。您还可以提供自己的用户界面并使用 API 打开 Player Data Privacy 页面。

重要信息:如果玩家启用了浏览器弹出窗口阻止程序,则其浏览器可能阻止打开数据隐私页面。有些浏览器会提示某个页面已被阻止,但其他浏览器根本没有提供任何提示。因此,应考虑在您的用户界面中添加一条消息,告知玩家弹出窗口阻止程序可能会阻止打开页面。

方法 1:使用 Unity UI

  1. 如果场景中还没有 Canvas 游戏对象,请添加一个。在添加 Canvas 时,Unity 会自动添加一个 EventSystem

  2. DataPrivacyButton 预制件拖到场景中的 Canvas 游戏对象上。在 Project 窗口的 Packages/Analytics Library/DataPrivacy 文件夹中找到该预制件。

  3. 根据需要调整按钮的位置、图形和文本。

  4. 该按钮已连接到 Data Privacy API,因此在玩家单击该按钮时会打开玩家的个人数据管理页面。此页面将在 Web 浏览器中打开。

注意:位于 Packages 文件夹下的按钮预制件版本是只读的。您可以在 Scene 层级视图中更改按钮实例,但无法将这些更改保存回原始预制件。

方法 2:使用您自己的 UI

要使用您自己的用户界面创建该按钮,您可以请求用户数据选择退出页面的 URL,然后在浏览器或 Web 视图中打开该 URL:

  1. 创建您自己的 UI 控件,告知玩家可以选择退出数据收集。

    注意:Data Privacy 插件在 Packages/Analytics Library/DataPrivacy 文件夹中包含一个图标。Unity 鼓励您在 Data Privacy 按钮(或类似控件)上使用此图标,从而给在 Unity 游戏中遇到数据隐私控件的玩家提供一致的图形提示。

  2. 为了响应玩家对此控件的单击操作或与此控件的交互,调用 DataPrivacy.FetchPrivacyUrl() 函数。此函数采用在网络请求完成时调用的 Action<string> 对象。还可以选择传入第二个 Action<string> 函数来处理网络请求失败的情况。

  3. FetchPrivacyUrl() 请求的处理程序中,请使用 Application.OpenURL() 打开在浏览器中收到的 URL。

例如,以下脚本将打开 Player Data Privacy 页面来响应对游戏对象的单击:

using System;
using UnityEngine;
using UnityEngine.Analytics;
    
public class OptOutHandler : MonoBehaviour {

    static void OnFailure(string reason)
    {
        Debug.LogWarning(String.Format("Failed to get data privacy page URL: {0}", reason));
    }

    void OnURLReceived(string url)
    {
        Application.OpenURL(url);
    }

    public void OpenDataURL()
    {
        DataPrivacy.FetchPrivacyUrl(OnURLReceived, OnFailure);
    }
    
    void OnMouseOver(){
        if(Input.GetMouseButtonUp(0)){
            OpenDataURL();
        }
    }
}

想了解更多相关信息,请参阅 Unity Analytics DataPrivacy API


  • 2018–09–21 页面已发布并只进行了有限的编辑审查
  • 在 2018.3+ 版中将 Data Privacy 插件整合到 Analytics 包中。
  • 删除了用于插入 Data Privacy 按钮的 Editor 菜单命令。添加了 Data Privacy Button 预制件。
  • Unity 2018.1 中的新功能
COPPA Compliance
Unity Analytics DataPrivacy API