일반 개인정보보호 규정(GDPR)은 EU 국민의 개인정보 보호를 위해 유럽연합에서 제정한 법입니다(https://www.eugdpr.org).
Unity 및 GDPR과 관련한 일반적인 정보는 https://unity3d.com/legal/gdpr에서 확인하십시오.
Unity 자체의 개인정보 취급방침은 https://unity3d.com/legal/privacy-policy에서 확인하십시오.
Unity 애널리틱스를 사용할 때는 항상 GDPR을 준수해야 합니다. Unity는 광고와 게임플레이에 대한 플레이어 경험을 향상하기 위해 데이터를 수집합니다. 일부 데이터에는 GDPR의 적용을 받는 개인식별정보(PII)가 포함되어 있습니다. Unity는 플레이어가 PII 수집에 동의하지 않고 GDPR 규정에 따라 Unity가 수집한 개인정보를 관리할 수 있도록 다양한 툴을 제공합니다. 개발자들은 개인정보 수집 거부 버튼을 표시하고 자체 개인정보 보호정책에 Unity 개인정보 보호정책 링크를 제공해야 합니다.
Unity 애즈를 이용 중이라면 Unity는 플레이어의 휴대전화에서 광고가 처음 나타날 때 플레이어에게 고지 사항을 표시하여 개인 식별 정보 수집에 동의하거나 거부할 수 있는 옵션을 제공합니다. 또한 이후 광고에서도 사용자가 개인정보 보호 옵션을 관리할 때 사용할 수 있는 버튼도 표시합니다. GDPR과 Unity 애즈 SDK에 대한 자세한 내용을 보려면 Unity 애즈 기술 자료: GDPR 준수(Unity Ads Knowledge base: GDPR Compliance)를 참조하십시오.
Unity 애즈와 애널리틱스를 둘 다 사용 중이라면 Unity 애즈가 제공하는 데이터 수집 거부 방식이 두 서비스 모두에 적용됩니다.
Unity 애즈는 사용하지 않고 Unity 애널리틱스, IAP, 멀티플레이어, 퍼포먼스 리포팅 등의 다른 Unity 서비스를 사용 중이라면 Unity 애널리틱스 개인정보 보호 플러그인을 사용하여 플레이어에게 데이터 수집을 거부할 수 있는 옵션을 제공해야 합니다. 이 플러그인을 사용하면 플레이어가 자신의 개인정보 설정을 관리하는 Unity 웹 페이지를 여는 버튼을 게임에 추가할 수 있습니다. 플레이어는 게임별, 기기별로 원하는 환경 설정을 관리할 수 있습니다. Unity 애널리틱스는 동일한 플레이어가 Unity로 만들어진 게임을 2개 이상 플레이하는지 아니면 여러 기기에서 동일한 게임을 플레이하는지 여부를 추적하지 않습니다.
위 옵션은 광고와 플레이어 서비스를 커스터마이즈하기 위해 Unity가 수집하는 모든 데이터에 적용됩니다. 그러나 개발자가 직접 개인 식별 정보를 수집한다면 그렇게 수집한 데이터를 보호하고 관리하는 데 대한 책임은 개발자가 직접 져야 합니다.
베스트 프랙티스:
법률 자문이 필요하시다면 직접 받으셔야 합니다. 이 문서의 어떠한 내용도 법률 자문을 목적으로 하지 않습니다.
데이터 처리 부록(DPA) (https://unity3d.com/profiles/unity3d/themes/unity/images/pages/gdpr/Controller-Controller-DPA–5–2–2018.pdf)을 읽고 내용을 이해하십시오.
자체 개인정보 취급방침에 데이터를 수집하는 제3자로 Unity를 표시하고 Unity의 개인정보 취급방침(https://unity3d.com/legal/privacy-policy) 링크를 포함하십시오.
스탠다드 이벤트나 커스텀 이벤트에서 개인 식별 정보를 Unity 애널리틱스로 전송하지 마십시오.
Analytics.SetUserGender()
또는 Analytics.SetUserBirthYear()
를 사용하여 Unity 애널리틱스에 성별 및 나이 정보를 전송하지 마십시오. 이 API는 지원이 중단될 예정입니다.
Unity 에셋 스토어에서 Unity 애널리틱스 개인정보 보호 플러그인을 다운로드할 수 있습니다. 이 플러그인은 다음의 Unity 버전에서 사용할 수 있습니다.
이 플러그인은 Linux, Windows Phone, Unity 5.5 이전의 유니버설 Windows 플랫폼(UWP), Tizen, Apple TV, Blackberry 등의 플랫폼을 지원하지 않습니다. 이제 Unity 애널리틱스 서비스는 이러한 플랫폼에서 실행되는 게임에서 전송되는 데이터 중에서 개인 식별 정보를 자동으로 삭제합니다. 궁금한 점이 있으시면 DPO@unity3d.com으로 문의하십시오.
참고: Unity 애즈 네트워크의 광고가 게임에 표시되는 경우에는 Unity 애즈 SDK가 이미 플레이어에게 데이터 수집 거부 옵션을 표시하는 것을 처리하고 플레이어가 선택한 개인정보 보호 설정에 따라 Unity 애널리틱스를 설정합니다. Unity 애즈 서비스를 사용하지 않을 때에는 Unity 애널리틱스 개인정보 보호 플러그인을 사용해야 합니다.
Unity 애즈를 사용하지 않을 때에는 Unity 애널리틱스 개인정보 보호 플러그인을 게임에 통합하여 플레이어가 Unity 애널리틱스 데이터 수집을 제어할 수 있게 해야 합니다.
플러그인을 통합하는 절차는 다음과 같습니다.
Unity 애널리틱스 개인정보 보호 에셋 패키지를 프로젝트로 임포트합니다.
버튼이나 기타 UI 컨트롤을 사용하여 플레이어에게 데이터 수집 거부 옵션을 제공합니다.
Unity 애널리틱스 개인정보 보호 플러그인에는 Unity 애널리틱스 서비스를 자동으로 쿼리하여 현재 플레이어의 데이터 수집 거부 상태를 확인하는 코드가 포함되어 있습니다. 이를 통해 플러그인은 플레이어의 선호도에 따라 Unity 애널리틱스를 설정할 수 있습니다. 또한 Unity UI 버튼 프리팹도 포함하고 있습니다. 이 버튼을 누르면 플레이어의 개인정보 보호 페이지가 열리며, 여기에서 Unity의 데이터 수집을 거부하고 Unity가 과거에 수집한 데이터를 확인할 수 있습니다.
중요: 플레이어가 브라우저의 팝업 차단 기능을 사용 중이라면 브라우저에서 개인정보 보호 페이지가 열리지 않을 수 있습니다. 브라우저에 따라서는 페이지가 차단되었음을 알리기도 하고, 아무런 알림을 표시하지 않는 브라우저도 있습니다. 팝업 차단 기능이 설정되어 있으면 페이지가 열리지 않을 수 있음을 플레이어에게 알리는 메시지를 사용자 인터페이스에 추가하는 것도 좋습니다.
플러그인을 프로젝트로 임포트하는 절차는 다음과 같습니다.
Unity 에셋 스토어에서 Unity 애널리틱스 개인정보 보호 플러그인 페이지로 이동합니다.
페이지에서 내 에셋에 추가(Add to My Assets) 버튼을 클릭합니다.
Unity 프로젝트에서 Asset Store 창(메뉴: Window > Asset Store)을 엽니다.
창 상단의 다운로드(Downloads) 아이콘을 클릭합니다.
내 구매 내역(My Purchased) 을 선택합니다.
Unity 애널리틱스 데이터 수집 거부 플러그인의 다운로드(Download) 버튼을 클릭합니다.
Unity 패키지 임포트(Import Unity Package) 창에서 임포트(Import) 를 클릭합니다.
이 플러그인에는 Unity UI 버튼 프리팹이 포함되어 있습니다. 플레이어가 이 버튼을 클릭하면 웹 브라우저에 플레이어 개인정보 보호 페이지가 열립니다. 또한 자체 사용자 인터페이스를 제공하여 개인정보 보호 페이지를 수동으로 열 수도 있습니다.
방법 1: Unity UI 사용
에셋 패키지를 프로젝트에 임포트합니다.
Unity 5.1 이전 버전으로 프로젝트를 빌드하는 경우에는 DataPrivacy.Initialize()
를 호출해야 합니다. 이후 버전의 Unity에서는 Initialize()
가 자동으로 호출됩니다.
씬에 캔버스 오브젝트가 아직 없다면 새로 추가합니다. (또한 EventSystem이 필요하므로, 캔버스를 추가할 때 자동으로 추가해야 합니다.)
DataPrivacyButton 프리팹을 씬의 Canvas 오브젝트로 드래그합니다. DataPrivacy/Runtime 폴더의 Project 창에서 프리팹을 찾습니다.
버튼의 포지션, 그래픽스, 텍스트를 적절히 조절합니다.
버튼은 이미 Data Privacy API에 연결되어 있으므로 클릭하면 플레이어의 개인정보 관리 페이지가 열립니다. 페이지는 웹 브라우저에서 열립니다.
방법 2: 자체 UI 사용
자체 사용자 인터페이스를 버튼에 사용하려면 사용자의 데이터 수집 거부 페이지의 URL을 요청한 후 그 URL을 브라우저 또는 웹 뷰에서 엽니다.
에셋 패키지를 프로젝트에 임포트합니다.
플레이어에게 데이터 수집을 거부할 수 있는 옵션이 있음을 알려주는 자체 UI 컨트롤을 만듭니다.
참고: 개인정보 보호 플러그인의 DataPrivacy/Runtime 폴더에는 아이콘이 들어 있습니다. Unity는 이 아이콘을 개인정보 보호 버튼(또는 유사 컨트롤 기능)에 사용할 것을 권장합니다. 그러면 Unity 게임에서 개인정보 보호 컨트롤 기능을 접하는 플레이어들에게 시각적 일관성을 제공할 수 있습니다.
Unity 5.1 이전 버전으로 프로젝트를 빌드하는 경우에는 DataPrivacy.Initialize()
를 호출해야 합니다. 이후 버전의 Unity에서는 Initialize()
가 자동으로 호출됩니다.
플레이어의 클릭 행위 또는 이 컨트롤과의 인터랙션에 대한 반응으로 DataPrivacy.FetchPrivacyUrl()
함수를 호출합니다. 이 함수는 네트워크 요청이 완료되면 호출되는 Action<string>
오브젝트를 가져옵니다. (실패 사례를 처리하기 위해 두 번째 Action<string>
함수를 선택적으로 통과할 수 있습니다.)
FetchPrivacyUrl()
요청에 대한 핸들러에서 브라우저에 수신된 URL을 엽니다. Application.OpenURL()
을 사용할 수 있습니다.
예를 들어, 다음 스크립트는 게임 오브젝트 클릭에 대한 반응으로 플레이어 개인정보 보호 페이지를 엽니다.
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.GetMouseButtonDown(0)){
OpenDataURL();
}
}
}
Unity 5.2 이전 버전의 Unity에서는 Unity 에셋 스토어 에셋 패키지를 통해 애널리틱스 지원을 제공했습니다. 이러한 이전 버전의 Unity 애널리틱스에서 개인정보 보호 플러그인을 사용할 수 있지만, 다른 함수를 호출하기 전에 그리고 플레이어가 개인정보 보호(Data Privacy) 버튼을 클릭하기 전에 개인정보 보호 플러그인을 초기화해야 합니다. 플러그인을 초기화할 최적의 시점은 애널리틱스 플러그인을 초기화하기 위해 UnityAnalytics.StartSDK()
를 호출한 직후입니다.
using UnityEngine;
using UnityEngine.Cloud.Analytics;
using UnityEngine.Analytics;
public class UnityAnalyticsIntegration : MonoBehaviour {
void Start () {
const string projectId = "SAMPLE-UNITY-PROJECT-ID";
UnityAnalytics.StartSDK (projectId);
DataPrivacy.Initialize ();
}
}
참고: Unity 5.2 이후 버전에서는 DataPrivacy.Initialize()
가 자동으로 호출됩니다. 따라서 애널리틱스 지원을 위해 에셋 스토어 패키지를 사용하는 때를 제외하고는 이 함수를 직접 호출할 필요가 없습니다.
DataPrivacy 클래스는 플레이어의 개인정보 관리 선택 옵션에 따라 Unity 애널리틱스 서비스를 설정합니다.
네임스페이스: UnityEngine.Analytics
public class DataPrivacy
DataPrivacy 클래스는 플레이어의 개인정보 보호 설정을 가져와서 이에 기반하여 애널리틱스 서비스를 자동으로 설정합니다.
FetchPrivacyUrl()
함수를 사용하여 플레이어의 개인정보 관리 페이지의 URL을 가져옵니다. URL을 열고 플레이어에게 개인정보 보호 설정 관리 옵션을 제공합니다.
사용할 Data Privacy API를 준비합니다.
선언
public static void Initialize()
참고 사항
이 함수는 숨겨진 게임 오브젝트를 만들고 DataPrivacy 클래스의 인스턴스를 게임 오브젝트의 컴포넌트로 추가합니다.
Unity 5.1 이전 버전에서는 애플리케이션을 시작할 때 UnityAnalytics.StartSDK (projectId)
를 호출한 직후 Initialize()
를 호출합니다. 최신 버전의 Unity에서는 Initialize()
가 자동으로 호출됩니다.
플레이어의 현재 데이터 수집 거부 설정을 가져와서 Unity 애널리틱스 서비스를 설정합니다.
선언
public static void FetchOptOutStatus(Action<bool> optOutAction = null)
파라미터
Action<bool> optOutAction
— Unity에서 플레이어의 데이터 수집 거부 설정을 가져올 때 호출하는 액션 오브젝트. 플레이어가 개인정보 수집을 거부했을 때 사용자 액션에 전달되는 부울 파라미터는 ’true’이며, 수집을 허락했을 때 전달되는 부울 파라미터는 ’false’입니다.참고 사항
이 함수는 플레이어의 데이터 수집 거부 설정에 따라 애널리틱스 서비스를 설정합니다. 설정 상태는 캐시에 저장되므로, 플레이어의 컴퓨터나 기기가 오프라인 상태일 때에도 사용할 수 있습니다.
게임이 시작되면 FetchOptOutStatus()
가 자동으로 호출됩니다. 플레이어가 해당 페이지에서 변경한 내용을 즉시 적용할 수 있도록 개인정보 보호 관리 URL을 연 후에 플레이어가 게임으로 복귀할 때도 함수를 호출해야 합니다.
Action<bool>
함수 파라미터를 전달하여 플레이어의 데이터 수집 거부 설정을 가져오기 위해 FetchOptOutStatus()
를 사용할 수도 있습니다. 플러그인은 네트워크 페치 요청이 완료되면 사용자가 제공하는 optOutAction
함수를 호출합니다. 플레이어가 데이터 수집을 거부했을 때 사용자의 액션에 전달된 부울 인수는 true
이고, 반대의 경우에는 false
입니다. 플레이어 설정 상태에 대한 네트워크 요청이 실패하면 optOutAction
함수가 캐시에 저장된 값과 함께 호출됩니다(상태가 설정된 적이 없는 경우에는 false
).
void OnOptOutStatus(bool optOut)
{
if(optOut)
{
Debug.Log("Player has opted-out of personal data collection.");
}
}
// ...
DataPrivacy.FetchOptOutStatus(OnOptOutStatus);
플레이어의 개인정보 관리 페이지의 URL을 가져옵니다.
선언
public static void FetchPrivacyUrl(Action<string> success, Action<string> failure = null)
파라미터
Action<String> success
— URL을 성공적으로 검색하여 가져오면 호출되는 액션 오브젝트. 액션에 전달되는 문자열에 URL이 포함됩니다.
[옵션] Action<String> failure
— Unity가 URL을 검색하여 가져올 수 없을 때 호출되는 액션 오브젝트. 액션에 전달되는 문자열에 실패 이유가 포함됩니다.
참고 사항
브라우저 또는 웹뷰에서 성공 함수에 전달된 URL을 열고 플레이어에게 개인정보 보호 옵션을 관리할 기회를 제공합니다. Application.OpenURL()
을 사용하여 페이지를 열 수 있습니다.
URL은 일정 시간 동안만 유효합니다. 반드시 URL을 열기 직전에 URL을 가져와야 합니다.
플레이어가 게임으로 돌아와 변경 사항을 즉시 적용한 후 FetchOptOutStatus()
를 호출합니다. 그렇지 않으면 플레이어가 다음에 게임을 시작할 때 데이터 수집에 대한 변경 사항이 적용됩니다.