1. Wymagania wstępne
Aby wykonać to ćwiczenie w Codelabs, musisz spełnić kilka wymagań wstępnych. Każdy wymóg jest odpowiednio oznaczony, niezależnie od tego, czy jest wymagany w przypadku „testów lokalnych” czy „usługi agregacji”.
1.1. Pobierz narzędzie do testowania lokalnego (testowanie lokalne)
Testy lokalne będą wymagały pobrania narzędzia do testowania lokalnego. Narzędzie wygeneruje raporty podsumowujące na podstawie niezaszyfrowanych raportów debugowania.
Narzędzie do testowania lokalnego jest dostępne do pobrania z archiwów Lambda JAR w GitHub. Powinien mieć nazwę LocalTestingTool_{version}.jar
.
1.2. Sprawdź, czy zainstalowano JAVA JRE (Usługa testowania i agregacji)
Otwórz „Terminal” i użyj java --version
, by sprawdzić, czy na komputerze jest zainstalowana przeglądarka Java lub openJDK.
Jeśli nie jest, możesz go pobrać i zainstalować z witryny Java lub strony openJDK.
1.3. Pobierz narzędzie do konwertowania raportów z możliwością agregacji (lokalna usługa testowania i agregacji)
Kopię narzędzia do agregacji raportów możesz pobrać z repozytorium wersji demonstracyjnej Piaskownicy prywatności na GitHubie.
1.4 Włącz interfejsy API Piaskownicy prywatności (usługa testowania lokalnego i agregacji)
W przeglądarce otwórz chrome://flags/#privacy-sandbox-ads-apis
i włącz interfejsy API Piaskownicy prywatności.
Upewnij się, że pliki cookie innych firm są włączone.
W przeglądarce otwórz stronę chrome://settings/cookies
i wybierz „Blokuj pliki cookie innych firm w trybie incognito”.
1.5. Rejestracja w przeglądarce i na Androidzie (usługa agregująca)
Aby korzystać z interfejsów API Piaskownicy prywatności w środowisku produkcyjnym, musisz przeprowadzić rejestrację i zaświadczenie dotyczące Chrome i Androida.
W przypadku testów lokalnych rejestrację można wyłączyć za pomocą flagi Chrome i przełącznika interfejsu wiersza poleceń.
Aby użyć flagi Chrome w wersji demonstracyjnej, wejdź na chrome://flags/#privacy-sandbox-enrollment-overrides
i zaktualizuj zastąpienie w swojej witrynie. Jeśli będziesz korzystać z naszej witryny demonstracyjnej, nie musisz nic aktualizować.
1.6. Wprowadzenie do usługi agregacji (usługa agregująca)
Usługa agregacji wymaga wprowadzenia koordynatorów, aby mogli z niej korzystać. Wypełnij formularz wprowadzający usługi agregacji, podając adres witryny raportowania, identyfikator konta AWS i inne informacje.
1.7 Dostawca chmury (usługa agregacji)
Usługa agregacji wymaga użycia zaufanego środowiska wykonawczego, które korzysta ze środowiska chmury. Usługa agregacji jest obsługiwana w Amazon Web Services (AWS) i Google Cloud (GCP). To ćwiczenie w Codelabs będzie dotyczyć tylko integracji z AWS.
AWS udostępnia enklawy Nitro w zaufanym środowisku wykonawczym. Sprawdź, czy masz konto AWS, a następnie postępuj zgodnie z instrukcjami instalacji i aktualizacji interfejsu AWS CLI, aby skonfigurować środowisko AWS CLI.
Jeśli Twój interfejs wiersza poleceń AWS jest nowy, możesz go skonfigurować za pomocą instrukcji konfiguracji interfejsu wiersza poleceń.
1.7.1. Tworzenie zasobnika AWS S3
Utwórz zasobnik AWS S3 do przechowywania stanu Terraform oraz kolejny zasobnik S3 do przechowywania raportów i raportów podsumowujących. Możesz użyć podanego polecenia interfejsu wiersza poleceń. Zastąp pole w tabeli <>
odpowiednimi zmiennymi.
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. Utwórz klucz dostępu użytkownika
Utwórz klucze dostępu użytkowników, korzystając z przewodnika AWS. Będzie ona używana do wywoływania punktów końcowych interfejsu API createJob
i getJob
utworzonych w AWS.
1.7.3. Uprawnienia użytkowników i grup AWS
Aby wdrożyć usługę agregacji w AWS, musisz przyznać użytkownikowi określone uprawnienia używane do wdrażania tej usługi. W przypadku tych ćwiczeń z programowania sprawdź, czy użytkownik ma dostęp administratora, aby zapewnić pełne uprawnienia we wdrożeniu.
1.8 Terraform (usługa agregacji)
To ćwiczenie w Codelabs używa Terraform do wdrożenia usługi agregacji. Upewnij się, że plik binarny Teraform jest zainstalowany w środowisku lokalnym.
Pobierz plik binarny Teraform do środowiska lokalnego.
Po pobraniu pliku binarnego Terraform rozpakuj go i przenieś plik binarny Terraform do /usr/local/bin
.
cp <directory>/terraform /usr/local/bin
Sprawdź, czy Terraform jest dostępne w ścieżce klasy.
terraform -v
1.9 Postman (dla usługi agregacji AWS)
Na potrzeby tych ćwiczeń z programowania użyj aplikacji Postman do zarządzania żądaniami.
Aby utworzyć obszar roboczy, kliknij górny element nawigacyjny „Obszary robocze” i wybierz „Utwórz obszar roboczy”.
Wybierz „Pusty obszar roboczy”, kliknij Dalej i nadaj mu nazwę „Piaskownica prywatności”. Wybierz „Osobiste” i kliknij „Utwórz”.
Pobierz wstępnie skonfigurowaną konfigurację JSON i środowisko globalne obszaru roboczego.
Zaimportuj pliki JSON do „Mojego obszaru roboczego”, klikając przycisk „Importuj”.
Spowoduje to utworzenie kolekcji Piaskownicy prywatności wraz z żądaniami HTTP createJob
i getJob
.
Zaktualizuj „Klucz dostępu” i „Tajny klucz” AWS za pomocą Szybkiego spojrzenia na środowisko.
Kliknij „Edytuj” i zaktualizuj wartość w polu „Bieżąca wartość” atrybutów „access_key” i „secret_key”. Uwaga: frontend_api_id
zostanie podane w sekcji 3.1.4 tego dokumentu. Zalecamy też użycie regionu us-east-1. Jeśli jednak chcesz przeprowadzić wdrożenie w innym regionie, skopiuj udostępniony interfejs AMI na swoje konto lub samodzielnie skompiluj aplikację, korzystając z udostępnionych skryptów.
2. Ćwiczenia z programowania dotyczące testowania lokalnego
Za pomocą niezaszyfrowanego raportu debugowania możesz użyć lokalnego narzędzia do testowania na swoim komputerze, aby agregować dane i wygenerować raporty podsumowujące.
Etapy ćwiczenia w Codelabs
Krok 2.1. Wygeneruj raport: aktywuj raportowanie agregacji prywatnej, by wygenerować raport.
Krok 2.2 Utwórz raport zbiorczy z możliwością zagregowania danych na potrzeby debugowania: przekonwertuj zebrany raport JSON na raport w formacie AVRO.
Ten krok będzie podobny do zbierania raportów z punktów końcowych raportowania interfejsu API i konwersji raportów JSON na raporty w formacie AVRO.
Krok 2.3 Przeanalizuj klucz zasobnika z raportu debugowania: klucze zasobnika są projektowane przez specjalistów ds. technologii reklamowych. Ponieważ zasobniki są wstępnie zdefiniowane, w ramach tych ćwiczeń z programowania pobierz klucze zasobników w sposób podany.
Krok 2.4 Utwórz domenę wyjściową AVRO: po pobraniu kluczy zasobnika utwórz plik AVRO domeny wyjściowej.
Krok 2.5. Tworzenie raportów podsumowujących za pomocą lokalnego narzędzia do testowania: narzędzie do testowania lokalnego umożliwia tworzenie raportów podsumowujących w środowisku lokalnym.
Krok 2.6. Przejrzyj raport podsumowujący: przejrzyj raport podsumowujący utworzony przez narzędzie do testowania lokalnego.
2.1. Raport wyzwalacza
Otwórz stronę demonstracji Piaskownicy prywatności. Spowoduje to aktywowanie prywatnego raportu agregacji. Raport jest dostępny na chrome://private-aggregation-internals
.
Jeśli raport ma stan „Oczekujący”, możesz go wybrać i kliknąć „Wyślij wybrane raporty”.
2.2. Tworzenie zbiorczego raportu na temat debugowania
W programie chrome://private-aggregation-internals
skopiuj tekst „Treść raportu” otrzymany w punkcie końcowym [reporting-origin]/.well-known/private-aggregation/report-shared-storage
.
Upewnij się, że w polu „Report Body” (Treść raportu) pole aggregation_coordinator_origin
zawiera wartość https://publickeyservice.msmt.aws.privacysandboxservices.com
, co oznacza, że raport jest raportem agregowanym AWS.
Umieść „Report Body” w formacie JSON w pliku JSON. W tym przykładzie możesz użyć vim. Możesz jednak użyć dowolnego edytora tekstu.
vim report.json
Wklej raport do usługi report.json
i zapisz plik.
Gdy to zrobisz, przejdź do folderu raportów i użyj polecenia aggregatable_report_converter.jar
, aby utworzyć raport zbiorczy na potrzeby debugowania. Spowoduje to utworzenie w bieżącym katalogu raportu zbiorczego o nazwie report.avro
.
java -jar aggregatable_report_converter.jar \
--request_type convertToAvro \
--input_file report.json \
--debug
2.3. Analizowanie klucza zasobnika z raportu debugowania
Usługa agregacji wymaga 2 plików do grupowania. Raport zbiorczy i wyjściowy plik domeny. Wyjściowy plik domeny zawiera klucze, które chcesz pobrać z raportów zbiorczych. Aby utworzyć plik output_domain.avro
, potrzebujesz kluczy zasobnika, które można pobierać z raportów.
Klucze zasobnika są projektowane przez element wywołujący interfejs API, a w wersji demonstracyjnej znajdują się wstępnie skonstruowane przykładowe klucze zasobnika. Ponieważ w wersji demonstracyjnej włączono tryb debugowania na potrzeby agregacji prywatnej, możesz przeanalizować ładunek tekstowy na potrzeby debugowania z pola „Treść raportu”, aby pobrać klucz zasobnika. W takim przypadku klucze zasobnika tworzy jednak prezentacja Piaskownicy prywatności. Agregacja prywatna tej witryny jest w trybie debugowania, więc możesz uzyskać klucz zasobnika, korzystając z metody debug_cleartext_payload
z sekcji „Treść raportu”.
Z treści raportu skopiuj debug_cleartext_payload
.
Otwórz narzędzie Debuguj dekoder ładunku na potrzeby agregacji prywatnej, wklej debug_cleartext_payload
w polu „INPUT” i kliknij „Decode”.
Strona zwróci wartość dziesiętną klucza zasobnika. Poniżej znajdziesz przykładowy klucz zasobnika.
2.4. Tworzenie AVRO domeny wyjściowej
Skoro masz już klucz zasobnika, możesz skopiować jego wartość dziesiętną. Kontynuuj tworzenie output_domain.avro
przy użyciu klucza zasobnika. Pamiętaj, aby zastąpić
pobranym kluczem zasobnika.
java -jar aggregatable_report_converter.jar \
--request_type createDomainAvro \
--bucket_key <bucket key>
Skrypt utworzy plik output_domain.avro
w bieżącym folderze.
2.5 Tworzenie raportów podsumowujących za pomocą lokalnego narzędzia do testowania
Do tworzenia raportów podsumowujących użyjemy pliku LocalTestingTool_{version}.jar
pobranego w sekcji 1.1. Użyj tego polecenia. Zastąp LocalTestingTool_{version}.jar
wersją pobraną do narzędzia LocalTestingTool.
Aby wygenerować raport podsumowujący w lokalnym środowisku programistycznym, uruchom następujące polecenie:
java -jar LocalTestingTool_{version}.jar \
--input_data_avro_file report.avro \
--domain_avro_file output_domain.avro \
--output_directory .
Po uruchomieniu polecenia powinien pojawić się obraz podobny do tego poniżej. Po zakończeniu tego procesu zostanie utworzony raport output.avro
.
2.6 Przeglądanie raportu podsumowującego
Tworzony raport podsumowujący ma format AVRO. Aby można było odczytać te dane, musisz przekonwertować dane z AVRO na format JSON. Najlepiej kodować w przypadku technologii reklamowych, aby przekonwertować raporty AVRO z powrotem do formatu JSON.
W ramach ćwiczenia z programowania użyjemy udostępnionego narzędzia aggregatable_report_converter.jar
, aby przekonwertować raport AVRO z powrotem na format JSON.
java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file output.avro
Spowoduje to zwrócenie raportu podobnego do tego poniżej. Wraz z raportem output.json
utworzonym w tym samym katalogu.
Otwórz plik JSON w wybranym edytorze, aby przejrzeć raport podsumowujący.
3. Wdrożenie usługi agregacji
Aby wdrożyć usługę agregacji, wykonaj te czynności:
Krok 3. Wdrożenie usługi agregacji: wdrożenie usługi agregacji w AWS
Krok 3.1. Sklonowanie repozytorium usługi agregacji
Krok 3.2. Pobierz gotowe zależności
Krok 3.3. Utwórz środowisko programistyczne
Krok 3.4. Wdrażanie usługi agregacji
3.1. Klonowanie repozytorium usługi agregacji
W środowisku lokalnym skopiuj repozytorium usługi agregacji na GitHubie.
git clone https://github.com/privacysandbox/aggregation-service.git
3.2. Pobierz gotowe zależności
Po sklonowaniu repozytorium usługi agregacji otwórz folder Terraform repozytorium i odpowiedni folder w chmurze. Jeśli Twoim dostawcą cloud_provider jest AWS, możesz przejść do:
cd <repository_root>/terraform/aws
W języku
uruchom polecenie download_prebuilt_dependencies.sh
.
bash download_prebuilt_dependencies.sh
3.3. Tworzenie środowiska programistycznego
Utwórz środowisko programistyczne w usłudze
. Utwórz folder o nazwie dev
.
mkdir dev
Skopiuj zawartość folderu demo
do folderu dev
.
cp -R demo/* dev
Przenieś do folderu dev
.
cd dev
Zaktualizuj plik main.tf
i naciśnij i
, aby przejść do edycji pliku input
.
vim main.tf
Usuń znacznik komentarza z kodu w czerwonym polu. W tym celu usuń znak # i zaktualizuj nazwy zasobnika oraz kluczy.
W przypadku pliku AWS main.tf:
Kod bez komentarza powinien wyglądać tak:
backend "s3" {
bucket = "<tf_state_bucket_name>"
key = "<environment_name>.tfstate"
region = "us-east-1"
}
Po zakończeniu aktualizacji zapisz zmiany i zamknij edytor, naciskając esc
-> :wq!
. Spowoduje to zapisanie aktualizacji w witrynie main.tf
.
Następnie zmień nazwę elementu example.auto.tfvars
na dev.auto.tfvars
.
mv example.auto.tfvars dev.auto.tfvars
Zaktualizuj plik dev.auto.tfvars
i naciśnij i
, aby przejść do edycji pliku input
.
vim dev.auto.tfvars
Zaktualizuj pola w czerwonym polu poniżej, podając prawidłowe parametry ARN AWS podane podczas wprowadzenia do usługi agregacji, środowiska i e-maila z powiadomieniem.
Po zakończeniu aktualizacji naciśnij esc
-> :wq!
. Spowoduje to zapisanie pliku dev.auto.tfvars
. Powinien on wyglądać podobnie do poniższego obrazu.
3.4. Wdrażanie usługi agregacji
Aby wdrożyć usługę agregacji, zainicjuj Terraform w tym samym folderze
.
terraform init
Powinien pojawić się obraz podobny do tego:
Po zainicjowaniu Terraform utwórz plan wykonania Terraform. Gdzie zwraca liczbę zasobów do dodania i inne informacje dodatkowe podobne do tego na obrazie poniżej.
terraform plan
Informacje o tym znajdziesz w podsumowaniu w sekcji „Plan”. Jeśli jest to nowe wdrożenie, powinna wyświetlić się liczba zasobów do dodania – wpisz 0, aby zmienić, i 0 do zniszczenia.
Gdy to zrobisz, możesz zastosować Terraform.
terraform apply
Gdy pojawi się prośba o potwierdzenie wykonania działań przez Terraform, wpisz w wartości yes
.
Gdy terraform apply
zakończy działanie, zwracane są podane niżej punkty końcowe dla funkcji createJob
i getJob
. Zwracany jest także frontend_api_id
, który musisz zaktualizować w Postman w sekcji 1.9.
4. Tworzenie danych wejściowych usługi agregacji
Przejdź dalej, aby utworzyć raporty AVRO do grupowania w usłudze agregacji.
Krok 4. Utworzenie danych wejściowych usługi agregacji: utwórz raporty usługi agregacji grupowane na potrzeby usługi agregacji.
Krok 4.1. Uruchom raport
Krok 4.2. Zbieranie raportów zbiorczych
Krok 4.3. Przekonwertuj raporty na AVRO
Krok 4.4. Tworzenie AVRO domeny wyjściowej
4.1. Raport wyzwalacza
Otwórz stronę demonstracyjną Piaskownicy prywatności. Spowoduje to aktywowanie prywatnego raportu agregacji. Raport jest dostępny na chrome://private-aggregation-internals
.
Jeśli raport ma stan „Oczekujący”, możesz go wybrać i kliknąć „Wyślij wybrane raporty”.
4.2. Zbieranie raportów zbiorczych
Zbieraj raporty możliwe do zagregowania z punktów końcowych .well-known
odpowiedniego interfejsu API.
- Agregacja prywatna
[reporting-origin] /.well-known/private-aggregation/report-shared-storage
- Raporty atrybucji – raport zbiorczy
[reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution
W przypadku tych ćwiczeń z programowania ręcznie utworzysz zbieranie raportów. W środowisku produkcyjnym technologie reklamowe powinny automatycznie zbierać i konwertować raporty.
W programie chrome://private-aggregation-internals
skopiuj tekst „Treść raportu” otrzymany w punkcie końcowym [reporting-origin]/.well-known/private-aggregation/report-shared-storage
.
Upewnij się, że w polu „Report Body” (Treść raportu) pole aggregation_coordinator_origin
zawiera wartość https://publickeyservice.msmt.aws.privacysandboxservices.com
, co oznacza, że raport jest raportem agregowanym AWS.
Umieść „Report Body” w formacie JSON w pliku JSON. W tym przykładzie możesz użyć vim. Możesz jednak użyć dowolnego edytora tekstu.
vim report.json
Wklej raport do usługi report.json
i zapisz plik.
4.3. Konwertowanie raportów na AVRO
Raporty odbierane z punktów końcowych .well-known
mają format JSON i trzeba je przekonwertować na format raportu AVRO. Po wygenerowaniu raportu JSON przejdź do folderu raportów i użyj polecenia aggregatable_report_converter.jar
, aby utworzyć raport możliwy do zagregowania na potrzeby debugowania. Spowoduje to utworzenie w bieżącym katalogu raportu zbiorczego o nazwie report.avro
.
java -jar aggregatable_report_converter.jar \
--request_type convertToAvro \
--input_file report.json
4.4. Tworzenie AVRO domeny wyjściowej
Aby utworzyć plik output_domain.avro
, potrzebujesz kluczy zasobnika, które można pobierać z raportów.
Klucze zasobnika są projektowane przez specjalistów ds. reklam. W tym przypadku jednak klucze zasobnika tworzy prezentacja Piaskownicy prywatności. Agregacja prywatna tej witryny jest w trybie debugowania, więc możesz uzyskać klucz zasobnika, korzystając z metody debug_cleartext_payload
z sekcji „Treść raportu”.
Skopiuj debug_cleartext_payload
z treści raportu.
Otwórz goo.gle/ags-payload-decoder, wklej debug_cleartext_payload
w polu „INPUT” i kliknij „Decode”.
Strona zwróci wartość dziesiętną klucza zasobnika. Poniżej znajdziesz przykładowy klucz zasobnika.
Masz już klucz zasobnika, więc możesz utworzyć output_domain.avro
. Pamiętaj, aby zastąpić
pobranym kluczem zasobnika.
java -jar aggregatable_report_converter.jar \
--request_type createDomainAvro \
--bucket_key <bucket key>
Skrypt utworzy plik output_domain.avro
w bieżącym folderze.
4.5 Przenieś raporty do zasobnika AWS
Po utworzeniu raportów AVRO (z sekcji 3.2.3) i domeny wyjściowej (z sekcji 3.2.4) przenieś raporty i domenę danych wyjściowych do zasobników raportowania S3.
Jeśli masz interfejs wiersza poleceń AWS skonfigurowany w środowisku lokalnym, skopiuj raporty do odpowiedniego zasobnika S3 i folderu raportów za pomocą poniższych poleceń.
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. Wykorzystanie usługi agregacji
Z: terraform apply
otrzymasz: create_job_endpoint
, get_job_endpoint
i frontend_api_id
. Skopiuj frontend_api_id
i umieść go w globalnej zmiennej postman frontend_api_id
skonfigurowanej w sekcji wymagań wstępnych 1.9.
Krok 5. Wykorzystanie usługi agregacji: użyj interfejsu Aggregation Service API, aby tworzyć raporty podsumowujące i przeglądać raporty podsumowujące.
Krok 5.1. Użycie punktu końcowego createJob do przetwarzania wsadowego
Krok 5.2. Użycie punktu końcowego getJob do pobrania stanu wsadu
Krok 5.3. Przeglądanie raportu podsumowującego
5.1. Do wsadu używam punktu końcowego createJob
W aplikacji Postman otwórz kolekcję „Piaskownica prywatności” i wybierz „createJob”.
Wybierz „Body” (Treść), a następnie „raw” (Nieprzetworzony), by umieścić żądanie w odpowiedzi.
Schemat ładunku createJob
jest dostępny w github i wygląda podobnie do tego poniżej. Zastąp <>
odpowiednimi polami.
{
"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>",
"job_parameters": {
"output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
"output_domain_bucket_name": "<output_domain_bucket_name>",
"attribution_report_to": "<reporting origin of report>",
"report_error_threshold_percentage": "10",
"debug_run": "true"
}
}
Gdy klikniesz „Wyślij”, zostanie utworzone zadanie z job_request_id
. Po zaakceptowaniu żądania przez usługę agregacji powinna dotrzeć do Ciebie odpowiedź HTTP 202. Inne możliwe kody zwrotne znajdziesz w kodach odpowiedzi HTTP.
5.2. Używanie punktu końcowego getJob do pobierania stanu wsadu
Aby sprawdzić stan żądania zadania, możesz użyć punktu końcowego getJob
. Wybierz „getJob” w kolekcji „Piaskownica prywatności”.
W sekcji „Params” zaktualizuj wartość activity_request_id – job_request_id
, która została wysłana w żądaniu createJob
.
Wynik polecenia getJob
powinien zwracać stan żądania o stanie HTTP 200. Żądanie „Body” zawiera niezbędne informacje, takie jak job_status
, return_message
i error_messages
(jeśli w zadaniu wystąpił błąd).
Witryna raportowania wygenerowanego raportu demonstracyjnego różni się od witryny zarejestrowanej w Twoim identyfikatorze AWS, możesz więc otrzymać odpowiedź z kodem zwrotnym PRIVACY_BUDGET_AUTHORIZATION_ERROR
. To normalne, ponieważ witryna źródła raportowania raportu nie odpowiada witrynie raportowania zarejestrowanej dla identyfikatora AWS.
{
"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-news.dev"
},
"request_processing_started_at": "2023-12-07T22:51:06.034472697Z"
}
5.3. Przeglądanie raportu podsumowującego
Gdy otrzymasz raport podsumowujący w wyjściowym zasobniku S3, możesz go pobrać do środowiska lokalnego. Raporty podsumowujące mają format AVRO i można je przekonwertować z powrotem na plik JSON. Możesz użyć aggregatable_report_converter.jar
, aby odczytać raport za pomocą następującego polecenia.
java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file <summary_report_avro>
Zwraca on plik JSON ze zagregowanymi wartościami każdego klucza zasobnika, który wygląda podobnie do tego obrazu poniżej.
Jeśli Twoje żądanie createJob
zawiera wartość debug_run
jako true
, raport podsumowujący znajdziesz w folderze debugowania znajdującym się w sekcji output_data_blob_prefix
. Raport ma format AVRO i można go przekonwertować za pomocą poprzedniego polecenia na format JSON.
Raport zawiera klucz zasobnika, dane bez zaszumionych danych i szum dodawany do tych danych w celu utworzenia raportu podsumowującego. Raport jest podobny do tego poniżej.
Adnotacje zawierają też in_reports
i in_domain
, co oznacza, że:
- in_reports – klucz zasobnika jest dostępny w raportach podlegających agregacji.
- in_domain – klucz zasobnika jest dostępny wewnątrz pliku AVRO domeny wyjściowej.