AWS에서 집계 서비스 작업

1. 기본 요건

이 Codelab을 실행하려면 몇 가지 기본 요건이 필요합니다. 각 요구사항은 '로컬 테스트' 또는 '집계 서비스'에 필요한지 여부에 따라 적절하게 표시됩니다.

1.1. 로컬 테스트 도구 다운로드 (로컬 테스트)

로컬 테스트를 실행하려면 로컬 테스트 도구를 다운로드해야 합니다. 이 도구는 암호화되지 않은 디버그 보고서에서 요약 보고서를 생성합니다.

로컬 테스트 도구는 GitHub의 Lambda JAR 보관 파일에서 다운로드할 수 있습니다. 이름은 LocalTestingTool_{version}.jar여야 합니다.

1.2. JAVA JRE가 설치되어 있는지 확인 (로컬 테스트 및 집계 서비스)

'터미널'을 열고 java --version를 사용하여 머신에 Java 또는 openJDK가 설치되어 있는지 확인합니다.

java --version을 사용하여 Java JRE 버전 확인

Java가 설치되어 있지 않으면 Java 사이트 또는 openJDK 사이트에서 다운로드하여 설치할 수 있습니다.

1.3. 집계 가능한 보고서 변환기 (로컬 테스트 및 집계 서비스) 다운로드

집계 가능한 보고서 변환기의 사본은 개인 정보 보호 샌드박스 데모 GitHub 저장소에서 다운로드할 수 있습니다.

1.4. Ad Privacy API (로컬 테스트 및 집계 서비스) 사용 설정

브라우저에서 chrome://settings/adPrivacy로 이동하여 모든 광고 개인 정보 보호 API를 사용 설정합니다.

서드 파티 쿠키가 사용 설정되어 있는지 확인합니다.

브라우저에서 chrome://settings/cookies로 이동하여 '시크릿 모드에서 서드 파티 쿠키 차단'을 선택합니다.

서드 파티 쿠키 chromesetting

1.5. 웹 및 Android 등록 (집계 서비스)

프로덕션 환경에서 개인 정보 보호 샌드박스 API를 사용하려면 Chrome과 Android 모두에 대해 등록 및 증명을 완료해야 합니다.

로컬 테스트의 경우 Chrome 플래그 및 CLI 스위치를 사용하여 등록을 사용 중지할 수 있습니다.

데모에 Chrome 플래그를 사용하려면 chrome://flags/#privacy-sandbox-enrollment-overrides로 이동하여 사이트로 재정의를 업데이트하세요. 또는 데모 사이트를 사용할 경우 업데이트가 필요하지 않습니다.

개인 정보 보호 샌드박스 등록 chromeflag 재정의

1.6. 집계 서비스 온보딩 (집계 서비스)

집계 서비스를 사용하려면 코디네이터에게 온보딩해야 합니다. 보고 사이트 주소, AWS 계정 ID, 기타 정보를 입력하여 집계 서비스 온보딩 양식을 작성합니다.

1.7. 클라우드 제공업체 (집계 서비스)

집계 서비스에는 클라우드 환경을 사용하는 신뢰할 수 있는 실행 환경을 사용해야 합니다. 집계 서비스는 Amazon Web Services (AWS) 및 Google Cloud (GCP)에서 지원됩니다. 이 Codelab에서는 AWS 통합만 다룹니다.

AWS는 Nitro Enclaves라는 신뢰할 수 있는 실행 환경을 제공합니다. AWS 계정이 있는지 확인하고 AWS CLI 설치 및 업데이트 안내에 따라 AWS CLI 환경을 설정합니다.

AWS CLI가 새 CLI인 경우 CLI 구성 안내를 사용하여 AWS CLI를 구성할 수 있습니다.

1.7.1. AWS S3 버킷 만들기

Terraform 상태를 저장할 AWS S3 버킷과 보고서 및 요약 보고서를 저장할 다른 S3 버킷을 만듭니다. 제공된 CLI 명령어를 사용할 수 있습니다. <>의 필드를 적절한 변수로 바꿉니다.

aws s3api create-bucket --bucket <tf_bucket_name> --region us-east-1
aws s3api create-bucket --bucket <report_bucket_name> --region us-east-1

1.7.2. 사용자 액세스 키 만들기

AWS 가이드를 사용하여 사용자 액세스 키를 만듭니다. 이는 AWS에서 만든 createJobgetJob API 엔드포인트를 호출하는 데 사용됩니다.

1.7.3. AWS 사용자 및 그룹 권한

AWS에 집계 서비스를 배포하려면 서비스 배포에 사용된 사용자에게 특정 권한을 제공해야 합니다. 이 Codelab에서는 사용자가 배포에 대한 전체 권한을 보장할 수 있도록 관리자 액세스 권한이 있는지 확인합니다.

1.8. Terraform (집계 서비스)

이 Codelab에서는 Terraform을 사용하여 집계 서비스를 배포합니다. Terraform 바이너리가 로컬 환경에 설치되어 있는지 확인합니다.

Terraform 바이너리를 로컬 환경에 다운로드합니다.

Terraform 바이너리가 다운로드되면 파일의 압축을 풀고 Terraform 바이너리를 /usr/local/bin로 이동합니다.

cp <directory>/terraform /usr/local/bin

클래스 패스에서 Terraform을 사용할 수 있는지 확인합니다.

terraform -v

1.9. Postman (집계 서비스 AWS용)

이 Codelab에서는 요청 관리에 Postman을 사용합니다.

'작업공간' 상단 탐색 메뉴로 이동하여 '작업공간 만들기'를 선택하여 작업공간을 만듭니다.

postmanworkspace

'빈 작업공간'을 선택하고 다음을 클릭한 다음 '개인 정보 보호 샌드박스'라는 이름을 지정합니다. '개인'을 선택하고 '만들기'를 클릭합니다.

사전 구성된 워크스페이스 JSON 구성전역 환경 파일을 다운로드합니다.

'가져오기' 버튼을 사용하여 JSON 파일을 '내 워크스페이스'로 가져옵니다.

postman JSONfiles 가져오기

이렇게 하면 createJobgetJob HTTP 요청과 함께 개인 정보 보호 샌드박스 컬렉션이 생성됩니다.

postman importedcollection

'환경 빠른 보기'를 통해 AWS '액세스 키' 및 '보안 비밀 키'를 업데이트합니다.

Postman 환경 빠른 보기

'수정'을 클릭하고 'access_key' 및 'secret_key'의 '현재 값'을 모두 업데이트합니다. frontend_api_id는 이 문서의 3.1.4 섹션에 제공됩니다. us-east-1 리전을 사용하는 것이 좋습니다. 하지만 다른 리전에 배포하려면 출시된 AMI를 계정으로 복사하거나 제공된 스크립트를 사용하여 자체 빌드를 실행해야 합니다.

postman globalvariables

postman edit globalvariables

2. 로컬 테스트 Codelab

컴퓨터의 로컬 테스트 도구를 사용하여 집계를 실행하고 암호화되지 않은 디버그 보고서를 사용하여 요약 보고서를 생성할 수 있습니다.

Codelab 단계

2.1단계. 보고서 트리거: 보고서를 수집할 수 있도록 비공개 집계 보고를 트리거합니다.

2.2단계. 집계 가능한 디버그 보고서 만들기: 수집된 JSON 보고서를 AVRO 형식의 보고서로 변환합니다.
이 단계는 광고 기술이 API 보고 엔드포인트에서 보고서를 수집하고 JSON 보고서를 AVRO 형식 보고서로 변환하는 것과 유사합니다.

2.3단계. 디버그 보고서에서 버킷 키 파싱: 버킷 키는 광고 기술에서 설계합니다. 이 Codelab에서는 버킷이 사전 정의되어 있으므로 제공된 대로 버킷 키를 검색합니다.

2.4단계. 출력 도메인 AVRO 만들기: 버킷 키를 가져온 후 출력 도메인 AVRO 파일을 만듭니다.

2.5단계. 로컬 테스트 도구를 사용하여 요약 보고서 만들기: 로컬 테스트 도구를 사용하여 로컬 환경에서 요약 보고서를 만들 수 있습니다.

2.6단계. 요약 보고서 검토: 로컬 테스트 도구에서 생성한 요약 보고서를 검토합니다.

2.1. 트리거 보고서

개인 정보 보호 샌드박스 데모 사이트로 이동합니다. 이렇게 하면 비공개 집계 보고서가 트리거됩니다. chrome://private-aggregation-internals에서 보고서를 볼 수 있습니다.

chrome private aggregationinternals

보고서가 '대기 중' 상태인 경우 보고서를 선택하고 '선택한 보고서 보내기'를 클릭할 수 있습니다.

send private aggregationreport

2.2. 집계 가능한 디버그 보고서 만들기

chrome://private-aggregation-internals에서 [reporting-origin]/.well-known/private-aggregation/report-shared-storage 엔드포인트에서 수신된 'Report Body'를 복사합니다.

'보고서 본문'에서 aggregation_coordinator_originhttps://publickeyservice.msmt.aws.privacysandboxservices.com가 포함되어 있는지 확인합니다. 이는 보고서가 AWS 집계 가능 보고서임을 의미합니다.

private aggregationreport

JSON 'Report Body'를 JSON 파일에 배치합니다. 이 예에서는 vim을 사용할 수 있습니다. 하지만 원하는 텍스트 편집기를 사용할 수 있습니다.

vim report.json

보고서를 report.json에 붙여넣고 파일을 저장합니다.

보고서 JSON 파일

그런 다음 보고서 폴더로 이동하여 aggregatable_report_converter.jar를 사용하여 집계 가능한 디버그 보고서를 만듭니다. 그러면 현재 디렉터리에 집계 가능한 report.avro 보고서가 생성됩니다.

java -jar aggregatable_report_converter.jar \
 --request_type convertToAvro \
 --input_file report.json \
 --debug

2.3. 디버그 보고서에서 버킷 키 파싱

집계 서비스에는 일괄 처리 시 두 개의 파일이 필요합니다. 집계 가능한 보고서 및 출력 도메인 파일 출력 도메인 파일에는 집계 가능한 보고서에서 가져올 키가 포함됩니다. output_domain.avro 파일을 만들려면 보고서에서 가져올 수 있는 버킷 키가 필요합니다.

버킷 키는 API 호출자가 설계하며 데모에는 사전 구성된 버킷 키 예시가 포함되어 있습니다. 데모에서 비공개 집계에 디버그 모드를 사용 설정했으므로 '보고서 본문'에서 디버그 일반 텍스트 페이로드를 파싱하여 버킷 키를 가져올 수 있습니다. 하지만 이 경우 사이트 개인 정보 보호 샌드박스 데모에서 버킷 키를 만듭니다. 이 사이트의 비공개 집계가 디버그 모드이므로 '보고서 본문'의 debug_cleartext_payload를 사용하여 버킷 키를 가져올 수 있습니다.

보고서 본문에서 debug_cleartext_payload를 복사합니다.

reportbody에서 일반 텍스트 페이로드 디버그

비공개 집계용 디버그 페이로드 디코더 도구를 열고 debug_cleartext_payload를 '입력' 상자에 붙여넣은 다음 '디코딩'을 클릭합니다.

payloaddecoder

페이지는 버킷 키의 십진수 값을 반환합니다. 다음은 샘플 버킷 키입니다.

payload decoderresult

2.4. 출력 도메인 AVRO 만들기

이제 버킷 키가 있으므로 버킷 키의 십진수 값을 복사합니다. 버킷 키를 사용하여 output_domain.avro를 만듭니다. 를 가져온 버킷 키로 바꿔야 합니다.

java -jar aggregatable_report_converter.jar \
 --request_type createDomainAvro \
 --bucket_key <bucket key>

스크립트가 현재 폴더에 output_domain.avro 파일을 만듭니다.

2.5. 로컬 테스트 도구를 사용하여 요약 보고서 만들기

1.1 섹션에서 다운로드한 LocalTestingTool_{version}.jar를 사용하여 요약 보고서를 만듭니다. 다음 명령어를 사용합니다. LocalTestingTool_{version}.jar를 LocalTestingTool용으로 다운로드한 버전으로 바꿔야 합니다.

다음 명령어를 실행하여 로컬 개발 환경에서 요약 보고서를 생성합니다.

java -jar LocalTestingTool_{version}.jar \
--input_data_avro_file report.avro \
--domain_avro_file output_domain.avro \
--output_directory .

명령어를 실행하면 다음과 같은 이미지가 표시됩니다. 이 작업이 완료되면 보고서 output.avro가 생성됩니다.

로컬 테스트 요약 보고서 avrofile

2.6. 요약 보고서 검토

생성된 요약 보고서는 AVRO 형식입니다. 이를 읽으려면 AVRO에서 JSON 형식으로 변환해야 합니다. 이상적으로는 광고 기술이 AVRO 보고서를 JSON으로 다시 변환하도록 코딩해야 합니다.

이 Codelab에서는 제공된 aggregatable_report_converter.jar 도구를 사용하여 AVRO 보고서를 JSON으로 다시 변환합니다.

java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file output.avro

그러면 다음 이미지와 유사한 보고서가 반환됩니다. 같은 디렉터리에 생성된 보고서 output.json와 함께

tojson으로 변환된 요약 Avro 파일

원하는 편집기에서 JSON 파일을 열어 요약 보고서를 검토합니다.

3. 집계 서비스 배포

집계 서비스를 배포하려면 다음 단계를 따르세요.

3단계. 집계 서비스 배포: AWS에 집계 서비스 배포
3.1단계 집계 서비스 저장소 클론
3.2단계 사전 빌드된 종속 항목 다운로드
3.3단계 개발 환경 만들기
3.4단계 집계 서비스 배포

3.1. 집계 서비스 저장소 클론

로컬 환경에서 집계 서비스 GitHub 저장소를 클론합니다.

git clone https://github.com/privacysandbox/aggregation-service.git

3.2. 사전 빌드된 종속 항목 다운로드

집계 서비스 저장소를 클론한 후 저장소의 Terraform 폴더와 해당하는 클라우드 폴더로 이동합니다. cloud_provider가 AWS인 경우 /terraform/aws로 진행할 수 있습니다.

cd <repository_root>/terraform/aws

/terraform/aws에서 download_prebuilt_dependencies.sh를 실행합니다.

bash download_prebuilt_dependencies.sh

3.3. 개발 환경 만들기

/terraform/aws/environments에서 개발 환경을 만듭니다. dev라는 폴더를 만듭니다.

mkdir dev

demo 폴더 콘텐츠를 dev 폴더에 복사합니다.

cp -R demo/* dev

dev 폴더로 이동합니다.

cd dev

main.tf 파일을 업데이트하고 inputi를 눌러 파일을 수정합니다.

vim main.tf

#을 삭제하고 버킷 및 키 이름을 업데이트하여 빨간색 상자의 코드 주석을 삭제합니다.

AWS main.tf의 경우:

AWS 기본 tffile

주석 처리가 삭제된 코드는 다음과 같습니다.

backend "s3" {
  bucket = "<tf_state_bucket_name>"
  key    = "<environment_name>.tfstate"
  region = "us-east-1"
}

업데이트가 완료되면 업데이트를 저장하고 esc -> :wq!를 눌러 편집기를 종료합니다. 이렇게 하면 main.tf에 업데이트가 저장됩니다.

그런 다음 example.auto.tfvars 이름을 dev.auto.tfvars로 바꿉니다.

mv example.auto.tfvars dev.auto.tfvars

dev.auto.tfvars를 업데이트하고 inputi를 눌러 파일을 수정합니다.

vim dev.auto.tfvars

이미지의 빨간색 상자에 있는 필드를 집계 서비스 온보딩, 환경, 알림 이메일 중에 제공된 올바른 AWS ARN 매개변수로 업데이트합니다.

edit dev auto tfvarsfile

업데이트가 완료되면 esc -> :wq!를 누릅니다. 이렇게 하면 dev.auto.tfvars 파일이 저장되며 다음 이미지와 같이 표시됩니다.

dev auto tfvarsfile 업데이트됨

3.4. 집계 서비스 배포

집계 서비스를 배포하려면 동일한 폴더 /terraform/aws/environments/dev에서 Terraform을 초기화합니다.

terraform init

다음과 비슷한 이미지가 반환됩니다.

terraforminit

Terraform이 초기화되면 Terraform 실행 계획을 만듭니다. 추가할 리소스 수와 다음 이미지와 유사한 기타 추가 정보를 반환합니다.

terraform plan

다음은 '계획' 요약입니다. 새 배포인 경우 추가할 리소스 수와 변경할 리소스 수 0, 삭제할 리소스 수 0이 표시됩니다.

terraformplan

이 작업이 완료되면 Terraform을 적용할 수 있습니다.

terraform apply

Terraform에서 작업 실행을 확인하라는 메시지가 표시되면 값에 yes를 입력합니다.

terraform applyprompt

terraform apply가 완료되면 createJobgetJob의 다음 엔드포인트가 반환됩니다. 섹션 1.9에서 Postman에서 업데이트해야 하는 frontend_api_id도 반환됩니다.

terraform applycomplete

4. 집계 서비스 입력 생성

집계 서비스에서 일괄 처리를 위한 AVRO 보고서를 만듭니다.

4단계: 집계 서비스 입력 생성: 집계 서비스에 일괄 처리되는 집계 서비스 보고서를 만듭니다.
4.1단계. 보고서 트리거
4.2단계 집계 가능한 보고서 수집
4.3단계 보고서를 AVRO로 변환합니다.
4.4단계 출력 도메인 AVRO 만들기

4.1. 트리거 보고서

개인 정보 보호 샌드박스 데모 사이트로 이동합니다. 이렇게 하면 비공개 집계 보고서가 트리거됩니다. chrome://private-aggregation-internals에서 보고서를 볼 수 있습니다.

chrome private aggregationinternals

보고서가 '대기 중' 상태인 경우 보고서를 선택하고 '선택한 보고서 보내기'를 클릭할 수 있습니다.

send private aggregationreport

4.2. 집계 가능한 보고서 수집

해당 API의 .well-known 엔드포인트에서 집계 가능한 보고서를 수집합니다.

  • 비공개 집계
    [reporting-origin] /.well-known/private-aggregation/report-shared-storage
  • 기여 분석 보고 - 요약 보고서
    [reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution

이 Codelab에서는 보고서 수집을 수동으로 실행합니다. 프로덕션에서는 광고 기술이 프로그래매틱 방식으로 보고서를 수집하고 변환해야 합니다.

chrome://private-aggregation-internals에서 [reporting-origin]/.well-known/private-aggregation/report-shared-storage 엔드포인트에서 수신된 'Report Body'를 복사합니다.

'보고서 본문'에서 aggregation_coordinator_originhttps://publickeyservice.msmt.aws.privacysandboxservices.com가 포함되어 있는지 확인합니다. 이는 보고서가 AWS 집계 가능 보고서임을 의미합니다.

private aggregationreport

JSON 'Report Body'를 JSON 파일에 배치합니다. 이 예에서는 vim을 사용할 수 있습니다. 하지만 원하는 텍스트 편집기를 사용할 수 있습니다.

vim report.json

보고서를 report.json에 붙여넣고 파일을 저장합니다.

보고서 JSON 파일

4.3. 보고서를 AVRO로 변환

.well-known 엔드포인트에서 수신된 보고서는 JSON 형식이며 AVRO 보고서 형식으로 변환해야 합니다. JSON 보고서가 있으면 보고서 폴더로 이동하여 aggregatable_report_converter.jar를 사용하여 집계 가능한 디버그 보고서를 만듭니다. 그러면 현재 디렉터리에 집계 가능한 report.avro 보고서가 생성됩니다.

java -jar aggregatable_report_converter.jar \
 --request_type convertToAvro \
 --input_file report.json

4.4. 출력 도메인 AVRO 만들기

output_domain.avro 파일을 만들려면 보고서에서 가져올 수 있는 버킷 키가 필요합니다.

버킷 키는 광고 기술에서 설계합니다. 하지만 이 경우 사이트 개인 정보 보호 샌드박스 데모에서 버킷 키를 만듭니다. 이 사이트의 비공개 집계가 디버그 모드이므로 '보고서 본문'의 debug_cleartext_payload를 사용하여 버킷 키를 가져올 수 있습니다.

보고서 본문에서 debug_cleartext_payload를 복사합니다.

reportbody에서 일반 텍스트 페이로드 디버그

goo.gle/ags-payload-decoder를 열고 debug_cleartext_payload를 'INPUT' 상자에 붙여넣은 후 'Decode'를 클릭합니다.

payloaddecoder

페이지는 버킷 키의 십진수 값을 반환합니다. 다음은 샘플 버킷 키입니다.

payload decoderresult

이제 버킷 키가 있으므로 output_domain.avro를 만들어 보겠습니다. 를 가져온 버킷 키로 바꿔야 합니다.

java -jar aggregatable_report_converter.jar \
 --request_type createDomainAvro \
 --bucket_key <bucket key>

스크립트가 현재 폴더에 output_domain.avro 파일을 만듭니다.

4.5. 보고서를 AWS 버킷으로 이동

AVRO 보고서 (3.2.3 섹션) 및 출력 도메인 (3.2.4 섹션)이 생성되면 보고서와 출력 도메인을 보고 S3 버킷으로 이동합니다.

로컬 환경에 AWS CLI가 설정되어 있는 경우 다음 명령어를 사용하여 보고서를 해당 S3 버킷 및 보고서 폴더에 복사합니다.

aws s3 cp report.avro s3://<report_bucket_name>/<report_folder>/
aws s3 cp output_domain.avro s3://<report_bucket_name>/<output_domain_folder>/

5. 집계 서비스 사용량

terraform apply에서 create_job_endpoint, get_job_endpoint, frontend_api_id가 반환됩니다. frontend_api_id를 복사하여 기본 요건 섹션 1.9에서 설정한 Postman 전역 변수 frontend_api_id에 배치합니다.

5단계. 집계 서비스 사용: 집계 서비스 API를 사용하여 요약 보고서를 만들고 요약 보고서를 검토합니다.
5.1단계. createJob 엔드포인트를 사용하여 일괄 처리
5.2단계 getJob 엔드포인트를 사용하여 일괄 처리 상태 검색
5.3단계. 요약 보고서 검토

5.1. createJob 엔드포인트를 사용하여 일괄 처리

Postman에서 '개인 정보 보호 샌드박스' 컬렉션을 열고 'createJob'을 선택합니다.

'Body'를 선택하고 'raw'를 선택하여 요청 페이로드를 배치합니다.

postman createJob requestbody

createJob 페이로드 스키마는 github에서 사용할 수 있으며 다음과 유사합니다. <>를 적절한 필드로 바꿉니다.

{
  "job_request_id": "<job_request_id>",
  "input_data_blob_prefix": "<report_folder>/<report_name>.avro",
  "input_data_bucket_name": "<bucket_name>",
  "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
  "output_data_bucket_name": "<bucket_name>",
  "job_parameters": {
    "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
    "output_domain_bucket_name": "<bucket_name>",
    "attribution_report_to": "<reporting origin of report>",
    "reporting_site": "<domain of reporting origin(s) of report>", // Only one of attribution_report_to or reporting_site is required as of v2.7.0
    "report_error_threshold_percentage": "10",
    "debug_run": "true"
  }
}

'보내기'를 클릭하면 job_request_id로 작업이 생성됩니다. 집계 서비스에서 요청을 수락하면 HTTP 202 응답이 수신됩니다. 가능한 다른 반환 코드는 HTTP 응답 코드를 참고하세요.

postman createJob requeststatus

5.2. getJob 엔드포인트를 사용하여 일괄 처리 상태 검색

작업 요청 상태를 확인하려면 getJob 엔드포인트를 사용하면 됩니다. '개인 정보 보호 샌드박스' 컬렉션에서 'getJob'을 선택합니다.

'Params'에서 job_request_id 값을 createJob 요청에서 전송된 job_request_id로 업데이트합니다.

postman getJobrequest

getJob의 결과는 HTTP 상태 200으로 작업 요청 상태를 반환해야 합니다. 요청 'Body'에는 job_status, return_message, error_messages (작업에 오류가 발생한 경우)와 같은 필수 정보가 포함됩니다.

postman getJob requeststatus

생성된 데모 보고서의 보고 사이트가 AWS ID의 온보딩된 사이트와 다르므로 PRIVACY_BUDGET_AUTHORIZATION_ERROR return_code가 포함된 응답이 수신될 수 있습니다. 이는 보고서의 보고 출처 사이트가 AWS ID에 온보딩된 보고 사이트와 일치하지 않으므로 정상적인 현상입니다.

{
    "job_status": "FINISHED",
    "request_received_at": "2023-12-07T22:50:58.830956Z",
    "request_updated_at": "2023-12-07T22:51:10.526326456Z",
    "job_request_id": "<job_request_id>",
    "input_data_blob_prefix": "<report_folder>/<report_name>.avro",
    "input_data_bucket_name": "<input_bucket_name>",
    "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
    "output_data_bucket_name": "<output_bucket_name>",
    "postback_url": "",
    "result_info": {
        "return_code": "PRIVACY_BUDGET_AUTHORIZATION_ERROR",
        "return_message": "Aggregation job successfully processed",
        "error_summary": {
            "error_counts": [],
            "error_messages": []
        },
        "finished_at": "2023-12-07T22:51:10.517730898Z"
    },
    "job_parameters": {
        "debug_run": "true",
        "output_domain_bucket_name": "<output_domain_bucket_name>",
        "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
        "attribution_report_to": "https://privacy-sandbox-demos-dsp.dev",
        "reporting_site": "<domain of reporting origin(s) of report>", // Only one of attribution_report_to or reporting_site is required as of v2.7.0
    },
    "request_processing_started_at": "2023-12-07T22:51:06.034472697Z"
}

5.3. 요약 보고서 검토

출력 S3 버킷에 요약 보고서가 수신되면 로컬 환경에 다운로드할 수 있습니다. 요약 보고서는 AVRO 형식이며 JSON으로 다시 변환할 수 있습니다. 다음 명령어를 사용하여 aggregatable_report_converter.jar로 보고서를 읽을 수 있습니다.

java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file <summary_report_avro>

그러면 다음 이미지와 유사한 각 버킷 키의 집계된 값의 JSON이 반환됩니다.

summaryreport

createJob 요청에 debug_runtrue로 포함된 경우 output_data_blob_prefix에 있는 디버그 폴더에서 요약 보고서를 수신할 수 있습니다. 보고서는 AVRO 형식이며 이전 명령어를 사용하여 JSON으로 변환할 수 있습니다.

보고서에는 버킷 키, 노이즈 제거된 측정항목, 노이즈 제거된 측정항목에 추가되어 요약 보고서를 형성하는 노이즈가 포함됩니다. 보고서는 다음 이미지와 유사합니다.

디버그 summaryreport

주석에는 다음을 의미하는 in_reportsin_domain도 포함됩니다.

  • in_reports - 집계 가능한 보고서 내에서 버킷 키를 사용할 수 있습니다.
  • in_domain - 버킷 키는 output_domain AVRO 파일 내에서 사용할 수 있습니다.