Singular SDK를 통한 동의 관리: 의사결정 프레임워크

Singular SDK를 통한 동의 관리: 의사결정 프레임워크

이 문서는 Singular가 제공하는 개인정보 보호 제어 기능과 여러 고객사에서 관찰되는 구현 패턴을 설명하고, 이를 하나의 동의 아키텍처로 구성하는 프레임워크를 제시합니다. 각 개별 제어 기능은 자체 문서에 설명되어 있으며, 이 페이지에서는 이들이 어떻게 함께 작동하는지 설명합니다.

시작하기 전에: 동의 플로우는 귀사의 법무 및 개인정보 보호팀이 통제하며, 각 관할권에서 앱에 어떤 태도를 적용할지 결정할 책임이 있습니다. 이 문서는 제품 동작만을 설명하며 법률 자문이 아닙니다.

모든 동의 플로우가 귀결되는 두 가지 결정

Singular의 개인정보 보호 제어는 두 가지 독립적인 결정을 중심으로 구성됩니다. 이 둘을 분리해 두면 하나의 동의 프롬프트로 규정을 준수하는 구현이 가능합니다.

결정 1: 추적. Singular가 이 사용자를 인식하는가? 이는 SDK를 초기화할지 여부와 시점에 따라 제어됩니다. 초기화는 첫 세션을 전송하고, 설치 레코드를 생성하며, 어트리뷰션 처리를 트리거합니다. SDK가 전혀 초기화되지 않으면 Singular는 해당 기기에 대해 아무것도 수신하지 않습니다. 이는 사용 가능한 가장 엄격한 제어입니다.

결정 2: 공유. Singular가 사용자를 인식하는 경우, 해당 데이터를 광고 파트너와 공유해도 되는가? 이는 Limit Data Sharing (LDS) 플래그로 제어됩니다. LDS를 사용하면 퍼스트파티 분석(세션, 리텐션, 이벤트, 리포팅)은 유지하면서 포스트백으로 파트너에게 전달되는 내용을 제한할 수 있습니다. 의미와 파트너 동작은 Limit Data Sharing FAQ를 참조하세요.

동의 프레임워크가 측정 동의와 광고 또는 리타겟팅 동의를 구분하는 경우(EEA에서 일반적) 매핑은 직접적입니다. 측정 동의는 초기화를 게이트하고, 광고 동의는 LDS를 설정합니다. 한 번 해결된 하나의 프롬프트가 두 레버를 모두 구동합니다.

가장 낮은 제한에서 가장 높은 제한 순의 제어 목록

제어 수행하는 작업 수행하지 않는 작업
limitDataSharing (config 또는 런타임) 사용자의 공유 기본 설정을 표시합니다. 파트너 포스트백 동작은 파트너별 구성을 따릅니다. Singular의 추적을 중단하지 않습니다. 파트너 수준 제한이 구성되어 있지 않으면 포스트백을 변경하지 않습니다.
제한된 식별자 모드 SDK가 IDFA 또는 GAID를 수집하지 않고 대신 IDFV 또는 ASID를 사용합니다. 비광고 식별자의 추적이나 공유를 중단하지 않습니다.
stopAllTracking() 즉시 그리고 지속적으로 모든 전송을 중단하며, resumeAllTracking()가 호출될 때까지 유지됩니다. 이미 전송된 설치 및 이벤트를 취소하지 않습니다. 초기화가 이미 어트리뷰션을 트리거했습니다.
초기화하지 않음 Singular가 해당 기기에 대해 아무것도 수신하거나 처리하지 않습니다. 이러한 사용자에게는 디퍼드 딥링크와 어트리뷰션을 사용할 수 없습니다.
trackingOptIn() 레거시: 동의 알림 이벤트만 기록합니다. 추적이나 데이터 처리에 기능적 효과가 없습니다. 이를 기반으로 동의 로직을 구축하지 마세요.

세 가지 동의 플로우 모델

  • 옵트아웃 기본값(먼저 초기화): SDK가 앱 실행 시 초기화되고, 온보딩 중에 동의가 제시되며, 거부 시 stopAllTracking()을 트리거하거나 LDS를 true로 설정합니다. 완전한 어트리뷰션 정확도와 신속한 SAN 포스트백을 제공합니다. 사용자가 응답하기 전에 설치 시점이 캡처되므로, 이 모델은 명시적 선택 이전의 수집을 허용하는 법적 태도가 필요합니다. 미국 대상 사용자에게 일반적입니다.
  • 옵트인 기본값(먼저 동의): 사용자가 명시적으로 동의할 때까지 SDK가 초기화되지 않습니다. 동의하지 않은 사용자에 대해서는 아무것도 전송되지 않습니다. GDPR 대상 사용자에게 표준입니다. 결정을 저장하고 이후 실행 시 모든 앱 진입점에서 즉시 초기화하세요.
  • 하이브리드(즉시 초기화하고 초기화 시 LDS 확정): 앱 실행 시 동의 화면을 해결한 다음, config 객체에 limitDataSharing가 이미 설정된 상태로 초기화합니다. 설치 시점부터 모든 레코드가 사용자가 선언한 상태를 담게 되며, 의도는 있으나 아직 적용되지 않은 구간이 없습니다. 실행 시점에 동의를 표시할 수 있는 개인정보 민감 고객에게 권장하는 패턴입니다.

대부분의 다지역 앱은 관할권 또는 CMP에 따라 런타임에 선택되는 둘 이상의 모델을 실행합니다.

계획해야 할 타이밍 관련 결과

  • 초기화가 동일한 앱 세션 내에서 이루어지면 지연 초기화가 설치를 잃게 하지 않습니다. Android install referrer가 기기에 유지되어 어트리뷰션 요청이 정상적으로 완료됩니다.
  • 초기화가 오랫동안 지연되면(다단계 동의 플로우, 여러 날에 걸친 간격) SAN 매칭률이 저하됩니다. 첫 실행 게이트는 빠른 단일 화면으로 유지하세요.
  • SKAdNetwork 포스트백은 설치 시점에 OS가 생성하며 SDK 초기화 타이밍의 영향을 받지 않습니다.
  • 디퍼드 딥링크는 초기화와 어트리뷰션이 완료되어야 합니다. 엄격한 옵트인 모델에서는 동의한 사용자에게만 디퍼드 딥링크를 사용할 수 있습니다.
  • 초기화 완료 콜백은 없습니다. 사용자 지정 이벤트 시퀀싱을 구축하는 경우 초기화 시점의 동의 상태를 스냅샷으로 저장하세요.
  • 설치 레코드는 초기화 시점에 적용된 LDS 값을 고정합니다. 이후 업데이트는 후속 이벤트에만 적용되며, 이미 전송된 포스트백은 회수되지 않습니다. 법적 태도가 요구하지 않는 한 결정하지 않은 사용자를 LDS true로 기본 설정하지 마세요. 동의를 먼저 확정하거나 사용자가 응답할 때까지 LDS를 unset으로 두세요.

일반적인 함정

  • 설정되지 않은 LDS는 제한되지 않음으로 처리됩니다. 사용자를 제한하려 하지만 아직 플래그를 설정하지 않은 연동은 Singular 관점에서 제한되지 않은 사용자입니다.
  • LDS true 자체로는 아무것도 바꾸지 않습니다. LDS 사용자의 포스트백 동작은 파트너별, 앱별로 파트너 구성에서 정의됩니다(전송 안 함 / PII 없이 전송 / 평소대로 전송). 플래그를 설정하고 적용을 구성하세요.
  • ATT는 동의 프레임워크가 아닙니다. ATT는 IDFA 공개만 관장합니다. ATT 거부가 LDS true도 의미해야 하는지는 귀사 개인정보 보호팀의 정책 결정입니다.
  • GDPR 삭제는 옵트아웃이 아닙니다. OpenDSR API는 수집된 데이터를 삭제하지만 SDK가 향후 이벤트를 전송하는 것을 중단시키지는 않습니다. 같은 사용자 플로우에서 삭제와 stopAllTracking()을 함께 처리하세요.

관련 문서