유럽 사용자의 동의 요청

기본 요건

User Messaging Platform SDK를 지원하는 GMA Flutter 플러그인 버전 1.3.0으로 시작하기를 완료합니다.

IAB 요구사항이 EU 동의 메시지에 미치는 영향

소개

UMP SDK는 게시자가 개인 맞춤 광고에 대한 동의를 요청하고 Apple의 앱 추적 투명성(ATT) 요구사항을 처리할 수 있는 도구를 제공합니다. 모든 구성은 Ad Manager 개인 정보 보호 및 메시지

Google EU 사용자 동의 정책에 따라 영국과 유럽 경제 지역(EEA)의 사용자에게 특정 정보를 공개하고, 쿠키 또는 기타 로컬 저장소의 사용(법적으로 필요한 경우) 및 광고 게재에 개인 정보(예: AdID)를 사용한다는 데 대한 동의를 얻어야 합니다. 이 정책에는 EU 온라인 개인 정보 보호 지침 및 개인 정보 보호법 (GDPR)의 요구사항이 반영되어 있습니다.

게시자가 이 정책에 따른 의무를 준수할 수 있도록 Google에서는 사용자 메시지 플랫폼 (UMP) SDK를 제공합니다. UMP SDK는 최신 IAB 표준을 지원하도록 업데이트되었습니다. 동의 양식을 설정하고 광고 파트너를 등록하는 과정도 간단해졌습니다. 이제 이러한 모든 구성을 Ad Manager 개인 정보 보호 및 메시지

이 가이드에서는 SDK를 설치하고, IAB 솔루션을 구현하고, 테스트 기능을 사용 설정하는 방법을 설명합니다.

앱 추적 투명성 (iOS만 해당)

UMP SDK를 사용하여 Apple의 앱 추적 투명성 요구사항을 처리할 계획이라면 Ad Manager 개인 정보 보호 및 메시지

UMP SDK가 맞춤 알림 메시지를 표시하도록 하려면 Info.plist을 업데이트하여 사용을 설명하는 맞춤 메시지 문자열과 함께 NSUserTrackingUsageDescription 키를 추가합니다.

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

동의 양식을 제공할 때 사용 설명이 ATT 대화상자의 일부로 표시됩니다.

다음으로 AppTrackingTransparency 프레임워크를 연결해야 합니다.

requestTrackingAuthorization:는 일회성 요청이므로 테스트 중에는 Apple의 요구사항에 따라 IDFA ATT 대화상자가 한 번만 표시됩니다. 알림이 두 번째로 표시되도록 하려면 테스트 기기에서 앱을 제거했다가 다시 설치해야 합니다.

SDK 사용

SDK는 선형 방식으로 사용되도록 설계되었습니다. SDK를 사용하는 단계는 다음과 같습니다.

  1. 최신 동의 정보를 요청합니다.
  2. 동의가 필요한지 확인합니다.
  3. 양식을 사용할 수 있는지 확인하고, 있으면 양식을 로드합니다.
  4. 양식을 제시합니다.
  5. 사용자가 동의를 변경할 수 있는 방법을 제공합니다.

앱을 실행할 때마다 동의 정보 업데이트를 요청하는 것이 좋습니다. 이에 따라 사용자의 동의가 필요한지 여부가 결정됩니다.

final params = ConsentRequestParameters();
ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    // The consent information state was updated.
    // You are now ready to check if a form is available.
  },
  (FormError error) {
    // Handle the error
  },
);

가능한 경우 양식 로드

동의를 얻기 위한 양식은 Ad Manager UI에서 생성됩니다. 사용자에게 동의를 요청하겠다고 결정했다면 다음 단계는 양식을 사용할 수 있는지 확인하는 것입니다. 양식을 사용할 수 없는 이유는 다음과 같이 다양합니다.

  • 사용자가 광고 추적 제한을 사용 설정했습니다.
  • 사용자를 동의 연령 미만으로 태그했습니다.

양식을 사용할 수 있는지 확인하려면 ConsentInformation 인스턴스에서 isConsentFormAvailable() 메서드를 사용합니다. 양식을 로드하기 위한 래퍼 메서드를 추가합니다.

final params = ConsentRequestParameters();
ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    if (await ConsentInformation.instance.isConsentFormAvailable()) {
      loadForm();
    }
  },
  (FormError error) {
    // Handle the error
  },
);

양식을 로드하려면 ConsentForm 클래스의 정적 loadConsentForm() 메서드를 사용합니다. loadForm() 메서드를 다음과 같이 변경합니다.

void loadForm() {
  ConsentForm.loadConsentForm(
    (ConsentForm consentForm) async {
      // Present the form
    },
    (FormError formError) {
      // Handle the error
    },
  );
}

필요한 경우 양식 제공

동의 양식을 표시하려면 ConsentForm 클래스의 show() 메서드를 사용하세요. 양식을 제시하기 전에 사용자의 동의가 필요한지 확인해야 합니다. 동의가 필요한지 확인하려면 ConsentInformation 객체에서 getConsentStatus()를 호출합니다. 이 메서드는 ConsentStatus 유형의 enum을 반환합니다. ConsentStatus에 가능한 값은 4가지입니다.

  • unknown: 동의 상태를 알 수 없습니다.
  • required: 사용자 동의가 필요하지만 아직 얻지 못했습니다.
  • notRequired: 사용자 동의가 필요하지 않습니다. 예를 들어 사용자가 EEA 또는 영국에 거주하지 않습니다.
  • obtained: 사용자 동의를 얻었습니다. 맞춤설정이 정의되지 않았습니다.

loadForm 메서드를 다음과 같이 변경합니다.

void loadForm() {
  ConsentForm.loadConsentForm(
    (ConsentForm consentForm) async {
      var status = await ConsentInformation.instance.getConsentStatus();
      if (status == ConsentStatus.required) {
        consentForm.show(
          (FormError formError) {
            // Handle dismissal by reloading form
            loadForm();
          },
        );
      }
    },
    (formError) {
      // Handle the error
    },
  );
}

동의가 필요하지 않은 경우 사용자가 동의 상태를 변경할 수 있도록 양식 참조를 유지할 수 있습니다.

테스트

지역 강제 설정

UMP SDK는 ConsentDebugSettings.debugGeography를 사용하여 기기가 EEA에 위치한 것처럼 앱의 동작을 테스트할 수 있는 방법을 제공합니다.

디버그 기능을 사용하려면 앱의 디버그 설정에 테스트 기기의 해시된 ID를 제공해야 합니다. 이 값을 설정하지 않고 requestConsentInfoUpdate()를 호출하면 실행 시 앱에서 필요한 ID 해시를 로깅합니다.

ConsentDebugSettings debugSettings = ConsentDebugSettings(
  debugGeography: DebugGeography.debugGeographyEea,
  testIdentifiers: ['TEST-DEVICE-HASHED-ID']);

ConsentRequestParameters params = ConsentRequestParameters(
  consentDebugSettings: debugSettings);

ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () {},
  (error) {});

SDK가 기기를 EEA 또는 영국에 있지 않은 것처럼 취급하도록 하려면 DebugGeography.debugGeographyNotEea를 사용합니다. 디버그 설정은 테스트 기기에서만 작동합니다. 에뮬레이터는 기본적으로 테스트가 사용 설정되어 있으므로 기기 ID 목록에 추가할 필요가 없습니다.

UMP SDK로 앱을 테스트할 때 사용자의 첫 설치 환경을 시뮬레이션할 수 있도록 SDK의 상태를 재설정하는 것이 도움이 될 수 있습니다. SDK는 이를 위한 reset 메서드를 제공합니다.

ConsentInformation.instance.reset();

UMP SDK를 프로젝트에서 완전히 삭제하기로 결정한 경우에도 재설정을 호출해야 합니다.

미디에이션

미디에이션을 사용하는 경우 앱에서 사용할 동의 프레임워크에 따라 미디에이션 파트너에 대한 동의를 다르게 처리해야 합니다. Google은 IAB 동의 프레임워크를 지원하지만 자체 맞춤 동의 솔루션을 사용할 수도 있습니다. 아래에는 이러한 각 옵션에서 미디에이션을 처리하는 방법이 자세히 나와 있습니다. Google의 동의 솔루션에 대해 자세히 알아보기

게시된 GDPR 메시지에 미디에이션 파트너를 추가 하는 것이 좋습니다.

UMP SDK와 모바일 광고 SDK는 동의 정보를 미디에이션 파트너에게 전달하지 않습니다. 대신 IAB 솔루션을 사용할 때 UMP SDK는 동의 상태 정보를 로컬 저장소에 기록하며, 각 미디에이션 파트너의 SDK에서 적절한 키를 읽어야 합니다. 각 서드 파티 네트워크에서 IAB 솔루션을 지원하는지 확인하세요.

맞춤 동의 솔루션을 사용하는 경우 개발자는 서드 파티 SDK에 앱의 동의 상태를 알려야 합니다. 각 미디에이션 네트워크에는 동의 처리를 위한 자체 API가 있으며, 이 API는 AndroidiOS용으로 설명되어 있습니다.

Dart에서 이러한 API를 호출하는 방법을 알아보려면 네트워크별 API 사용을 참고하세요.

Google 모바일 광고 SDK의 기본 동작은 개인 맞춤 광고를 게재하는 것입니다. 사용자가 개인 맞춤이 아닌 광고만 수신하는 데 동의한 경우에는 개인 맞춤이 아닌 광고만 요청하도록 다음 코드로 AdManagerAdRequest 객체를 구성할 수 있습니다.

final AdManagerAdRequest = AdManagerAdRequest(nonPersonalizedAds: true);

Google의 EU 사용자 동의 정책에 따라 서드 파티 미디에이션 솔루션을 사용하여 Google에 광고 요청을 보내는 경우에도 개인 맞춤 광고를 게재하기 전에 게시자 ID에 구성된 광고 기술 제공업체 의 전체 목록에 대한 동의를 수집해야 합니다.