집계 서비스는 집계 가능한 원시 보고서에서 상세한 전환 데이터 및 도달범위 측정의 요약 보고서를 생성합니다. 사용자 데이터를 비공개로 안전하게 보호하기 위해 집계 서비스는 개인 정보 차등 보호 (DP)를 지원하는 프레임워크를 사용하여 이러한 보고서에서 개인 사용자에 관해 공개하는 정보의 양을 수치화하고 제한합니다.
이 가이드에서는 개별 사용자에 관한 데이터를 안전하게 보호하는 데 도움이 되는 집계 가능한 보고서를 만드는 도구와 전략을 설명합니다.
- 노이즈가 추가된 요약 보고서 만들기
- 참여 예산 설정
- 보고서 일괄 처리 전략
- 사전 선언된 집계 키 사용
노이즈가 추가된 요약 보고서
집계 가능한 보고서를 일괄 처리하면 집계 서비스에서 요약 보고서를 만듭니다. 이 요약 보고서는 사전 정의된 모든 도메인 키의 모든 기여도를 통계적 노이즈와 함께 집계한 것입니다.
보고서에 추가되는 노이즈는 집계된 보고서 수, 개별 보고서 값 또는 집계된 보고서 값에 종속되지 않습니다. 노이즈는 라플라스 분포의 불연속 버전에서 가져오며, 해당 측정 API 및 개인 정보 보호 매개변수 epsilon
에 따라 클라이언트에서 적용하는 기여도 예산 (L1
민감도)으로 조정됩니다.
노이즈 및 보고서 데이터에 미치는 영향에 대해 자세히 알아보려면 요약 보고서의 노이즈 이해하기를 참고하세요.
기여도 예산
요약 보고서의 민감도를 제어하기 위해 호출 시 전달된 참여 수는 특정 참여도 제한 한도(참여도 예산이라고도 함)에 연결됩니다. 기여도 예산은 Attribution Reporting API를 사용하는지 Private Aggregation API를 사용하는지에 따라 다릅니다.
각 API의 기여도 예산을 설정하는 방법에 관한 자세한 내용은 다음 API 문서 섹션을 참고하세요.
- Attribution Reporting API 기여도 제한 및 예산 설정
- Private Aggregation API 기여도 한도
- Private Aggregation API 기여도 제한 및 예산 편성
보고서 일괄 처리 전략
집계 가능한 보고서를 일괄 처리할 때는 개인 정보 보호 제한이 초과되지 않도록 일괄 처리 전략을 최적화하는 것이 중요합니다. 보고서를 올바르게 일괄 처리하는 데 중요한 두 가지 개념은 '중복 없음' 규칙과 일치하지 않는 일괄 처리입니다.
'중복 금지' 규칙
집계 서비스는 '중복 없음' 규칙을 적용합니다. 이 규칙에 따라 report_id
로 고유하게 식별되는 집계 가능한 보고서는 단일 배치에 한 번만 표시될 수 있습니다. 집계 가능한 보고서가 일괄 처리당 두 번 이상 표시되면 첫 번째 보고서가 집계에 포함되고 동일한 report_id
가 있는 후속 보고서는 삭제되며 일괄 처리가 성공적으로 완료됩니다.
또한 동일한 공유 ID가 두 개 이상의 일괄 처리에 표시될 수 없다고 규정되어 있습니다. 공유 ID가 이전에 성공적으로 처리된 일괄 처리에 이미 포함된 경우 동일한 공유 ID가 포함된 후속 일괄 처리는 실패합니다.

'중복 없음' 규칙이 없으면 공격자가 단일 일괄 처리 또는 여러 일괄 처리에 보고서의 중복 사본을 포함하여 일괄 처리의 콘텐츠를 조작하여 특정 일괄 처리의 콘텐츠에 대한 유용한 정보를 얻을 수 있습니다.
보고서 일괄 처리 내에서 또는 여러 일괄 처리 간에 '중복 없음' 규칙을 적용하는 방법에 대한 자세한 내용은 일괄 처리 내 중복 보고서를 참고하세요.
일치하지 않는 배치
일괄 처리 간에 중복되는 상황이 발생하지 않도록 집계 서비스는 일괄 처리가 중복되지 않도록 적용합니다. 즉, 두 개 이상의 일괄 처리에 공통 공유 ID를 공유하는 보고서를 포함할 수 없습니다. 공유 ID는 집계 가능한 보고서의 shared_info
필드에서 수집된 데이터와 작업 요청의 필터링 ID를 조합한 것입니다. 필터링 ID를 지정하지 않으면 기본값 0이 사용됩니다.
다음 shared_info
필드 예시에서 API, attribution_destination
(기여 분석용), reporting_origin
, scheduled_report_time
, source_registration_time
(기여 분석용), version
를 확인할 수 있습니다. report_id
를 제외한 이러한 필드는 작업 요청의 필터링 ID와 함께 공유 ID에 기여합니다.
"shared_info": {
"API": "attribution-reporting",
"attribution_destination": "https://privacy-sandbox-demos-shop.dev",
"report_id": "5b052748-f5fb-4f14-b291-de03484ed59e",
"reporting_origin": "https://privacy-sandbox-demos-dsp.dev",
"scheduled_report_time": "1707786751",
"source_registration_time": "0",
"version": "0.1"
}
source_registration_time
은 일 단위로 자르고 scheduled_report_time
은 시간 단위로 자르므로 공유 ID가 동일한 보고서가 있습니다. 이 예시에서 Report1과 Report2는 공유 정보 필드를 보유하고 있습니다. 두 보고서 모두 API, 버전, attribution_destination
, reporting_origin
, source_registration_time
가 동일합니다. report_id
는 공유 ID의 일부가 아니므로 이 차이는 무시해도 됩니다.
다음 예시에서 Report1과 Report2의 scheduled_report_time
값은 동일합니다.
Report1님이 공유한 정보:
"shared_info": {
"API": "attribution-reporting",
"attribution_destination": "https://shop.dev",
"report_id": "5b052748-...",
"reporting_origin": "https://dsp.dev",
"scheduled_report_time": "1708376890",
"source_registration_time": "0",
"version": "0.1"
}
Report2님이 공유한 정보:
"shared_info": {
"API": "attribution-reporting",
"attribution_destination": "https://shop.dev",
"report_id": "5b052748-...",
"reporting_origin": "https://dsp.dev",
"scheduled_report_time": "1708376890",
"source_registration_time": "0",
"version": "0.1"
}
예약된 보고서 시간은 Report1의 경우 '2024년 2월 19일 오후 9시 8분 10초'이고 Report2의 경우 '2024년 2월 19일 오후 9시 55분 10초'입니다. scheduled_report_time
필드의 값은 시간으로 잘리므로 두 보고서 모두 scheduled_report_time
필드의 값으로 1708376890
('2024년 2월 19일 오후 9시'의 인코딩된 값)을 사용합니다.
다른 모든 필드와 필터링 ID가 동일하므로 두 보고서의 공유 ID도 동일합니다. 두 보고서의 공유 ID가 동일하므로 두 보고서를 모두 동일한 일괄 처리에 포함해야 합니다.
Report1이 이전에 성공한 배치에서 일괄 처리되었고 Report2가 후속 배치에서 처리되면 Report2가 포함된 배치가 PRIVACY_BUDGET_EXHAUSTED
오류와 함께 실패합니다. 이 경우 이전 일괄 처리에서 성공적으로 일괄 처리된 공유 ID가 있는 보고서를 삭제하고 다시 시도합니다. 이 오류에 관한 자세한 내용은 집계 서비스의 오류 코드 및 완화 조치를 참고하세요.

사전 선언된 집계 키
집계 서비스에 일괄 항목을 제출할 때는 보고 출처에서 수신된 집계 가능한 보고서와 출력 도메인 파일을 모두 포함해야 합니다. 출력 도메인에는 집계 가능한 보고서에서 가져온 키 또는 버킷이 포함됩니다.
개인 정보 보호 관점에서는 실제 보고서가 특정 키와 일치하지 않더라도 출력 도메인에 사전 선언된 모든 키에 노이즈가 추가됩니다. 출력 도메인을 지정하면 출력에 키가 포함되어 단일 사용자 또는 이벤트에 관한 정보를 유출하는 공격을 방지할 수 있습니다. 예를 들어 한 사용자에게만 캠페인을 표시한 경우 출력에서 키를 수신하면 노이즈가 추가되었더라도 사용자가 나중에 전환했음을 알 수 있습니다. 이 도메인을 먼저 지정하면 사용자 참여에 관한 정보를 공개하지 않을 수 있습니다.
Attribution Reporting API 또는 Private Aggregation API에서 이러한 128비트 키를 선언하고 추적하려는 측정기준을 인코딩하는 데 사용할 수 있습니다.
사전 선언된 키만 집계 대상으로 간주되어 요약 보고서에 포함됩니다. 요약 보고서의 버킷 집계 값에는 통계적 노이즈가 추가되며 이는 생성된 요약 보고서에 반영됩니다.

집계 키가 출력 도메인 파일에 포함되어 있지만 일괄 보고서에는 포함되어 있지 않은 경우 집계된 값이 0이더라도 개인 정보를 보호하기 위해 추가된 노이즈로 인해 최종 요약 보고서의 값이 0이 아닐 수 있습니다.