PIPL 규정 준수

중요 참고 사항: UGS Analytics에는 Unity Ads와 별도의 개인정보 보호 솔루션을 구현해야 합니다. 즉, Unity Ads와 UGS Analytics를 모두 사용하더라도 Unity Ads의 거부 메커니즘이 두 서비스 모두에 적용되는 것은 아닙니다.

중요 참고 사항: 다음 지침은 SDK 버전 4.4.2 이하에 적용됩니다. 가능한 한 빨리 버전 5.0.0으로 업그레이드하는 것을 권장합니다. 자세한 내용은 마이그레이션 가이드를 참고하십시오.

중국의 새로운 데이터 개인정보 보호법인 PIPL(개인정보 보호법)이 2021년 11월 1일부로 시행되었습니다. 개인정보는 이름이나 주소와 같이 개인을 식별할 수 있는 데이터로, 전자적 방법 등으로 저장됩니다. 민감한 개인정보란 생체 정보, 성 정체성, 종교적 신념, 병력, 재무 정보와 더불어 14세 미만 미성년자의 모든 개인정보를 의미합니다.

PIPL은 분석 데이터가 개인정보를 침해하는지 여부와 관계없이 동의를 원칙으로 하는 법으로, 플레이어가 개인정보의 수집과 중국 외부로의 개인정보 전송에 동의해야 합니다. 분석 서비스 제공업체로서 Unity는 지리적 위치 API 호출을 통해 사용자가 현재 중국에 있으며 사용자 동의를 요청해야 하는지 판단합니다. 동의가 제공되면 플래그를 설정하여 데이터 수집을 활성화할 수 있습니다.

SDK의 레거시 버전(버전 3.0 이하)에서는 더 이상 영향을 받는 영역의 사용자로부터 데이터를 수집하지 않으며, 이는 엄격히 지리적 위치를 기반으로 결정됩니다. 집계된 과거 데이터는 손실되지 않지만, 해당 영역에 플레이어가 있는 경우 DAU와 같은 핵심 지표가 감소합니다.

버전 3.0 이상에서는 데이터 수집에 동의하는 플레이어에 대한 적절한 동의 플래그를 Analytics 패키지에 전달하는 함수를 개발자에게 제공합니다.

참고: REST API를 사용하는 경우 PIPL 동의 전송을 참고하십시오.

PIPL 동의

PIPL은 동의를 원칙으로 하는 법입니다. PIPL의 경우에도 GDPR 및 CCPA와 마찬가지로 CheckForRequiredConsents가 필요합니다. 다음과 같이 if 문을 추가해야 합니다.

string consentIdentifier;
bool isOptInConsentRequired;
async void Start()
   {
       try
       {
           await UnityServices.InitializeAsync();
           List<string> consentIdentifiers = await AnalyticsService.Instance.CheckForRequiredConsents();
           if (consentIdentifiers.Count > 0)
           {
               consentIdentifier = consentIdentifiers[0];
               isOptInConsentRequired = consentIdentifier == "pipl";
           }
       }
       catch (ConsentCheckException e)
       {
           // Something went wrong when checking the GeoIP, check the e.Reason and handle appropriately
       }
   }

결과가 PIPL이면 이 함수는 단일 문자열 식별자 ‘pipl’을 포함하는 목록을 반환합니다.

그러면 먼저 사용자에게 동의를 요청해야 SDK에서 다른 행동을 트리거할 수 있습니다. 동의는 다음과 같이 ProvideOptInConsent 메서드를 사용하여 제공되거나 거부될 수 있습니다.

public void CheckUserConsent()
   {
       try
       {
           if (isOptInConsentRequired)
           {
               // Show a PIPL consent flow
               // ...

               // If consent is provided for both use and export
               AnalyticsService.Instance.ProvideOptInConsent(consentIdentifier, true);

               // If consent is not provided
               AnalyticsService.Instance.ProvideOptInConsent(consentIdentifier, false);
           }
       }
       catch (ConsentCheckException e)
       {
           // Handle the exception by checking e.Reason
       }
   }
}

PIPL에 대한 Unity의 접근 방식에 대한 자세한 내용은 Unity의 법적 고지 사항 페이지를 참고하십시오.

거부

사용자가 나중에 거부하기를 원한다면 public void OptOut() 메서드를 모든 해당 규정에 동일하게 사용하면 됩니다.

bool consentHasBeenChecked;
public void OptOut()
    {
        try
        {
            if (!consentHasBeenChecked)
            {
                // Show a GDPR/COPPA/other opt-out consent flow
                // If a user opts out
                AnalyticsService.Instance.OptOut();
             }
             // Record that we have checked a user's consent, so we don't repeat the flow unnecessarily.
             // In a real game, use PlayerPrefs or an equivalent to persist this state between sessions
            consentHasBeenChecked = true;
        }
        catch (ConsentCheckException e)
        {
            // Handle the exception by checking e.Reason
        }
  }

개인정보 보호 URL

사용자에게 개인정보 보호 URL도 제공해야 합니다.

개인정보 보호 URL을 가져오려면 Application.OpenURL(AnalyticsService.Instance.PrivacyUrl);을 사용합니다.

다시 동의하기

다시 동의하는 방법은 세 가지입니다.

  1. PlayerPrefs를 삭제하고 애플리케이션을 다시 시작합니다.
  2. 애플리케이션의 모든 데이터와 캐시를 지웁니다.
  3. 애플리케이션을 제거하고 다시 설치합니다.

참고: geoIP 호출이 PIPL을 반환하면 SDK는 명시적 동의가 제공될 때까지 휴면 상태로 유지됩니다. PIPL인 경우에만 최종 사용자에게 표시됩니다. 다른 법률은 내부적으로 수락되어 기본적으로 동의하고 거부는 명시적으로 지정하는 상황을 가정합니다.