1. Wymagania wstępne
Aby wykonać to ćwiczenie, musisz spełnić kilka warunków wstępnych. Każde wymaganie jest odpowiednio oznaczone, czy jest wymagane w przypadku „testów lokalnych” czy „usługi agregacji”.
1.1. Pobieranie narzędzia do testowania lokalnego (testowanie lokalne)
Testowanie lokalne wymaga pobrania narzędzia do testowania lokalnego. Na podstawie niezaszyfrowanych raportów debugowania narzędzie wygeneruje raporty podsumowujące.
Narzędzie do testowania lokalnego można pobrać z archiwów JAR usługi Lambda na GitHub. Powinien nazywać się LocalTestingTool_{version}.jar
.
1.2. Sprawdź, czy zainstalowano środowisko wykonawcze JAVA JRE (usługa lokalna do testowania i zbiorczości)
Otwórz „Terminal” i użyj polecenia java --version
, aby sprawdzić, czy na komputerze jest zainstalowana Java lub openJDK.
Sprawdzanie wersji Java JRE za pomocą polecenia „java --version”.
Jeśli nie jest zainstalowana, możesz ją pobrać i zainstalować z witryny Java lub witryny openJDK.
1.3. Pobieranie konwertera raportów zbiorczych (usługa testowania lokalnego i agregacji)
Kopie konwertera raportów umożliwiającego agregację możesz pobrać z repozytorium GitHub z przykładami dotyczącymi Piaskownicy prywatności.
1.4. Włączanie interfejsów API Ad Privacy (interfejsów API do testowania lokalnego i zbiorczości)
W przeglądarce otwórz stronę chrome://settings/adPrivacy
i włącz wszystkie interfejsy Ad Privacy API.
Sprawdź, czy pliki cookie innych firm są włączone.
W przeglądarce otwórz chrome://settings/cookies
i kliknij Blokuj pliki cookie innych firm w trybie incognito.
Ustawienia plików cookie innych firm w Chrome.
1.5. Rejestracja w internecie i na Androida (usługa do agregacji)
Aby używać interfejsów API Piaskownicy prywatności w sytuacji produkcyjnej, musisz dokończyć rejestrację i weryfikację w przypadku zarówno Chrome, jak i Androida.
W przypadku testów lokalnych rejestrację można wyłączyć za pomocą flagi Chrome i przełącznika w interfejsie wiersza poleceń.
Aby użyć flagi Chrome w naszym pliku demonstracyjnym, otwórz chrome://flags/#privacy-sandbox-enrollment-overrides
i zaktualizuj zastąpienie w swojej witrynie. Jeśli zamiast tego chcesz użyć naszej witryny demonstracyjnej, nie musisz niczego aktualizować.
Flaga Chrome do zastąpienia rejestracji w piaskownicy prywatności.
1.6. Wdrażanie usługi do agregacji (usługa do agregacji)
Usługa agregacji wymaga wdrożenia dla koordynatorów, aby można było z niej korzystać. Wypełnij formularz rejestracji usługi agregacji, podając adres witryny z raportami, identyfikator konta AWS i inne informacje.
1.7. Dostawca usług w chmurze (usługa agregacji)
Usługa agregacji wymaga użycia zaufanego środowiska wykonawczego, które korzysta z środowiska chmurowego. Usługa agregacji jest obsługiwana w Amazon Web Services (AWS) i Google Cloud (GCP). To Codelab dotyczy tylko integracji z AWS.
AWS udostępnia zaufane środowisko wykonawcze o nazwie Nitro Enclaves. Sprawdź, czy masz konto AWS, i skonfiguruj środowisko AWS CLI, wykonując instrukcje instalacji i aktualizacji AWS CLI.
Jeśli masz nowy interfejs AWS CLI, możesz go skonfigurować, korzystając z instrukcji konfiguracji CLI.
1.7.1. Tworzenie zasobnika AWS S3
Utwórz zasobnik AWS S3 do przechowywania stanu Terraform oraz inny zasobnik S3 do przechowywania raportów i raportów podsumowujących. Możesz użyć podanego polecenia wiersza poleceń. Zastąp pole w pozycji <>
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. Tworzenie klucza dostępu użytkownika
Utwórz klucze dostępu użytkownika, korzystając z tego przewodnika AWS. Będzie on używany 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 używanemu do wdrażania usługi określone uprawnienia. W tym ćwiczeniu Codelab sprawdź, czy użytkownik ma dostęp administratora, aby mieć pewność, że ma pełne uprawnienia do wdrożenia.
1.8. Terraform (usługa do agregacji)
W tym Codelab do wdrożenia usługi agregacji używamy Terraform. Sprawdź, czy plik binarny Terraform jest zainstalowany w Twoim środowisku lokalnym.
Pobierz plik binarny Terraform do środowiska lokalnego.
Po pobraniu pliku binarnego Terraform wyodrębnij go i przenieś do folderu /usr/local/bin
.
cp <directory>/terraform /usr/local/bin
Sprawdź, czy Terraform jest dostępny w classpath.
terraform -v
1.9. Postman (dla usługi AWS Aggregation)
W tym Codelab do zarządzania żądaniami użyj Postmana.
Aby utworzyć obszar roboczy, kliknij element menu u góry „Obszary robocze” i wybierz „Utwórz obszar roboczy”.
Obszar roboczy Postmana
Wybierz „Pusty obszar roboczy”, kliknij Dalej i nadaj mu nazwę „Privacy Sandbox”. Wybierz „Osobiście” i kliknij „Utwórz”.
Pobierz wstępnie skonfigurowany obszar roboczy, konfigurację JSON i pliki Global Environment.
Zaimportuj pliki JSON do „Mojego środowiska pracy” za pomocą przycisku „Importuj”.
Importuj pliki JSON z postmana.
Spowoduje to utworzenie kolekcji Piaskownicy prywatności wraz z żądaniami HTTP createJob
i getJob
.
Kolekcja zaimportowana z Postmana.
Zaktualizuj „Klucz dostępu” i „Klucz tajny” w AWS za pomocą „Szybki przegląd środowiska”.
Krótki opis środowiska Postman.
Kliknij Edytuj i zaktualizuj „Obecna wartość” zarówno w przypadku „access_key”, jak i „secret_key”. Informacje o frontend_api_id
znajdziesz w sekcji 3.1.4 tego dokumentu. Zalecamy użycie regionu us-east-1. Jeśli jednak chcesz wdrożyć AMI w innym regionie, sprawdź, czy skopiowałeś opublikowany AMI na swoje konto, lub samodzielnie skompiluj AMI, korzystając z dostępnych skryptów.
Zmienne globalne Postmana.
Edytuj zmienne globalne w Postman.
2. Testowanie lokalne – Codelab
Za pomocą lokalnego narzędzia testowego na komputerze możesz wykonać agregację i wygenerować raporty podsumowujące na podstawie niezaszyfrowanych raportów debugowania.
Kroki w ćwiczeniach w Codelab
Krok 2.1. Wyzwalanie raportu: wyzwala raportowanie Private Aggregation, aby można było zebrać dane do raportu.
Krok 2.2. Tworzenie agregowalnego raportu debugowania: zmapuj zebrany raport w formacie JSON na raport w formacie AVRO.
Ten krok będzie podobny do tego, gdy specjaliści ds. technologii reklamowych zbierają raporty z punktów końcowych raportowania interfejsu API i konwertują raporty w formacie JSON na raporty w formacie Avro.
Krok 2.3. Przeanalizuj klucz zasobnika z raportu debugowania: klucze zasobników są tworzone przez dostawców technologii reklamowych. W tym ćwiczeniu zasobniki są zdefiniowane wstępnie, więc pobierz klucze zasobników zgodnie z ich nazwami.
Krok 2.4. Utwórz plik AVRO domeny wyjściowej: po pobraniu kluczy zasobnika utwórz plik AVRO domeny wyjściowej.
Krok 2.5. Tworzenie raportów podsumowania za pomocą narzędzia do testowania lokalnego: za pomocą narzędzia do testowania lokalnego możesz tworzyć raporty podsumowania w środowisku lokalnym.
Krok 2.6. Sprawdzanie raportu podsumowującego: zapoznaj się z raportami podsumowującymi utworzonymi przez narzędzie do testowania lokalnego.
2.1. Raport o aktywacji
Otwórz stronę demo Piaskownicy prywatności. Spowoduje to wygenerowanie prywatnego raportu zbiorczego. Raport możesz wyświetlić na stronie chrome://private-aggregation-internals
.
Wewnętrzne mechanizmy prywatnego agregatora w Chrome.
Jeśli raport ma stan „Oczekuje”, możesz go wybrać i kliknąć „Wyślij wybrane raporty”.
Wyślij prywatny raport zbiorczy.
2.2. Tworzenie raportu umożliwiającego agregację danych na potrzeby debugowania
W chrome://private-aggregation-internals
skopiuj „treść raportu”, który został przesłany w punkcie końcowym [reporting-origin]/.well-known/private-aggregation/report-shared-storage
.
Upewnij się, że w sekcji „Treść raportu” element aggregation_coordinator_origin
zawiera wartość https://publickeyservice.msmt.aws.privacysandboxservices.com
, co oznacza, że raport jest raportem zbiorczym AWS.
Raport prywatny.
Umieść w pliku JSON element „Report Body”. W tym przykładzie możesz użyć programu vim. Możesz jednak użyć dowolnego edytora tekstu.
vim report.json
Wklej raport w miejscu report.json
i zapisz plik.
Plik JSON raportu.
Następnie otwórz folder raportów i użyj narzędzia aggregatable_report_converter.jar
, aby utworzyć raport debugowania, który można agregować. Spowoduje to utworzenie w bieżącym katalogu raportu o nazwie report.avro
, który można agregować.
java -jar aggregatable_report_converter.jar \
--request_type convertToAvro \
--input_file report.json \
--debug
2.3. Przeanalizuj klucz zbioru z raportu debugowania.
Usługa do agregacji wymaga 2 plików podczas zbiorczego przetwarzania. Raport możliwy do zsumowania i plik domeny wyjściowej. Plik domeny wyjściowej zawiera klucze, które chcesz pobrać z raportów podlegających agregacji. Aby utworzyć plik output_domain.avro
, musisz mieć klucze zasobników, które można pobrać z raportów.
Klucze zasobników są projektowane przez wywołującego interfejs API, a demo zawiera gotowe przykładowe klucze zasobników. Ponieważ w tym przykładzie włączony jest tryb debugowania prywatnego agregowania, możesz przeanalizować niezaszyfrowany ładunek debugowania z sekcji „Treść raportu”, aby pobrać klucz zbiornika. W tym przypadku jednak witryna demo Piaskownicy prywatności tworzy klucze puli. Ponieważ prywatna agregacja danych w przypadku tej witryny jest w trybie debugowania, możesz użyć wartości debug_cleartext_payload
z sekcji „Treść raportu”, aby uzyskać klucz zbioru.
Skopiuj debug_cleartext_payload
z treści raportu.
Debugowanie ładunku w postaci zwykłego tekstu z treści raportu.
Otwórz narzędzie Debugowanie dekodera ładunku dla prywatnej agregacji, wklej dane debug_cleartext_payload
w polu „WEJŚCIE” i kliknij „Odkoduj”.
Dekoder ładunku.
Strona zwraca wartość dziesiętną klucza puli. Poniżej znajduje się przykładowy klucz zasobnika.
Wynik dekodera ładunku.
2.4. Tworzenie domeny wyjściowej AVRO
Gdy już mamy klucz zasobnika, skopiuj jego wartość dziesiętną. Utwórz output_domain.avro
, używając klucza zasobnika. Sprawdź, czy zastępujesz
kluczem zasobnika, który został pobrany.
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 zbiorczych za pomocą narzędzia do testowania lokalnego
Do tworzenia raportów podsumowania użyjemy pliku LocalTestingTool_{version}.jar
pobranego w sekcji 1.1. Użyj tego polecenia. Musisz zastąpić LocalTestingTool_{version}.jar
wersją pobraną dla LocalTestingTool.
Aby wygenerować raport podsumowujący w lokalnym środowisku programistycznym, uruchom to polecenie:
java -jar LocalTestingTool_{version}.jar \
--input_data_avro_file report.avro \
--domain_avro_file output_domain.avro \
--output_directory .
Po wykonaniu polecenia powinieneś zobaczyć coś podobnego do tego obrazu. Gdy to nastąpi, zostanie utworzony raport output.avro
.
Plik avro z raportami podsumowującymi testy lokalne.
2.6. Przeglądanie raportu podsumowującego
Utworzony raport podsumowania jest w formacie AVRO. Aby móc je odczytać, musisz przekonwertować je z formatu AVRO na format JSON. W idealnej sytuacji technologia reklamowa powinna zawierać kod do konwertowania raportów AVRO na format JSON.
W tym Codelab użyjemy udostępnionego narzędzia aggregatable_report_converter.jar
do konwertowania raportu AVRO na format JSON.
java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file output.avro
Zwraca on raport podobny do tego na ilustracji. oraz raport output.json
utworzony w tym samym katalogu.
Plik Avro z podsumowaniem przekonwertowany na JSON.
Aby przejrzeć raport podsumowania, otwórz plik JSON w wybranym edytorze.
3. Wdrożenie usługi do agregacji
Aby wdrożyć usługę agregacji, wykonaj te czynności:
Krok 3. Wdrażanie usługi agregacji: wdróż usługę agregacji w AWS
Krok 3.1. Sklonuj repozytorium usługi do agregacji
Krok 3.2. Pobierz wstępnie utworzone zależności
Krok 3.3 Tworzenie środowiska programistycznego
Krok 3.4. Wdrażanie usługi do agregacji
3.1. Klonowanie repozytorium usługi agregacji
W środowisku lokalnym sklonuj repozytorium GitHub usługi agregacji.
git clone https://github.com/privacysandbox/aggregation-service.git
3.2. Pobieranie wstępnie utworzonych zależności
Po sklonowaniu repozytorium usługi agregacji przejdź do folderu Terraform repozytorium i do odpowiedniego folderu w chmurze. Jeśli parametr cloud_provider ma wartość AWS, możesz przejść do
cd <repository_root>/terraform/aws
W funkcji
wykonaj instrukcję download_prebuilt_dependencies.sh
.
bash download_prebuilt_dependencies.sh
3.3 Tworzenie środowiska programistycznego
Utwórz środowisko programistyczne w
. 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 edytować plik input
.
vim main.tf
Odkomentuj kod w czerwonym polu, usuwając # i zmieniając nazwy zasobnika i klucza.
W przypadku pliku main.tf w AWS:
Główny plik tf usługi AWS.
Nieskomentowany kod powinien wyglądać tak:
backend "s3" {
bucket = "<tf_state_bucket_name>"
key = "<environment_name>.tfstate"
region = "us-east-1"
}
Po zakończeniu wprowadzania zmian zapisz je i zamknij edytor, naciskając esc
-> :wq!
. W ten sposób zapiszesz aktualizacje w main.tf
.
Następnie zmień nazwę example.auto.tfvars
na dev.auto.tfvars
.
mv example.auto.tfvars dev.auto.tfvars
Zaktualizuj dev.auto.tfvars
i naciśnij i
, aby edytować plik.input
vim dev.auto.tfvars
Zaktualizuj pola w czerwonym polu na obrazku, podając prawidłowe parametry AWS ARN, które są podawane podczas wdrażania usługi agregacji, środowiska i e-maila z powiadomieniem.
Edytuj plik dev auto tfvars.
Po zakończeniu aktualizacji naciśnij esc
-> :wq!
. Spowoduje to zapisanie pliku dev.auto.tfvars
, który powinien wyglądać mniej więcej tak, jak na poniższym obrazku.
Zaktualizowano plik dev auto tfvars.
3.4. Wdrażanie usługi do agregacji
Aby wdrożyć usługę Aggregation Service, w tym samym folderze
zainicjuj Terraform.
terraform init
Powinieneś otrzymać coś podobnego do tego obrazu:
Terraform init.
Po zainicjowaniu Terraform utwórz plan wykonania Terraform. Zwraca liczbę zasobów do dodania oraz inne dodatkowe informacje podobne do tych na poniższym obrazie.
terraform plan
Poniżej możesz zobaczyć podsumowanie „Planu”. Jeśli jest to nowe wdrożenie, powinna pojawić się liczba zasobów, które zostaną dodane, z wartością 0 w kolumnach Zmień i Zniszcz.
Plan Terraform.
Gdy to zrobisz, możesz zastosować Terraform.
terraform apply
Gdy pojawi się prośba o potwierdzenie wykonania działań przez Terraform, wpisz yes
jako wartość.
Prompt dotyczący stosowania Terraform.
Gdy usługa terraform apply
zakończy działanie, zwraca te punkty końcowe: createJob
i getJob
. Zwracana jest też wartość frontend_api_id
, którą musisz zaktualizować w Postman w sekcji 1.9.
Zastosowanie Terraform zakończone.
4. Tworzenie danych wejściowych usługi do agregacji
Utwórz raporty AVRO do grupowania w usłudze do agregacji.
Krok 4. Tworzenie danych wejściowych usługi do agregacji: utwórz raporty usługi do agregacji, które są grupowane w partie na potrzeby usługi do agregacji.
Krok 4.1. Wyzwalanie raportu
Krok 4.2 Zbieraj raporty zbiorcze
Krok 4.3 Konwertowanie raportów na format AVRO
Krok 4.4. Tworzenie domeny wyjściowej AVRO
4.1. Raport o aktywatorach
Otwórz stronę demo Piaskownicy prywatności. Spowoduje to wygenerowanie prywatnego raportu zbiorczego. Raport możesz wyświetlić na stronie chrome://private-aggregation-internals
.
Wewnętrzne mechanizmy prywatnego agregatora w Chrome.
Jeśli raport ma stan „Oczekuje”, możesz go wybrać i kliknąć „Wyślij wybrane raporty”. '
Wyślij prywatny raport zbiorczy.
4.2. Zbieranie raportów zbiorczych
Zbieraj raporty podlegające agregacji z punktów końcowych .well-known
odpowiedniego interfejsu API.
- Private Aggregation
[reporting-origin] /.well-known/private-aggregation/report-shared-storage
- Raport Atrybucja – podsumowanie
[reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution
W tym ćwiczeniu zbierzesz raporty ręcznie. W środowisku produkcyjnym firmy zajmujące się technologiami reklamowymi powinny zbierać i konwertować raporty programowo.
W chrome://private-aggregation-internals
skopiuj „treść raportu”, który został przesłany w punkcie końcowym [reporting-origin]/.well-known/private-aggregation/report-shared-storage
.
Upewnij się, że w sekcji „Treść raportu” element aggregation_coordinator_origin
zawiera wartość https://publickeyservice.msmt.aws.privacysandboxservices.com
, co oznacza, że raport jest raportem zbiorczym AWS.
Raport prywatny.
Umieść w pliku JSON element „Report Body”. W tym przykładzie możesz użyć programu vim. Możesz jednak użyć dowolnego edytora tekstu.
vim report.json
Wklej raport w miejscu report.json
i zapisz plik.
Plik JSON raportu.
4.3. Konwertowanie raportów na format AVRO
Raporty otrzymywane z punktów końcowych .well-known
są w formacie JSON i muszą zostać przekonwertowane do formatu raportu AVRO. Gdy masz już raport w formacie JSON, przejdź do folderu raportów i użyj funkcji aggregatable_report_converter.jar
, aby utworzyć agregowany raport debugowania. Spowoduje to utworzenie w bieżącym katalogu raportu o nazwie report.avro
, który można agregować.
java -jar aggregatable_report_converter.jar \
--request_type convertToAvro \
--input_file report.json
4.4. Tworzenie domeny wyjściowej AVRO
Aby utworzyć plik output_domain.avro
, musisz mieć klucze zasobników, które można pobrać z raportów.
Klucze zbiorów są projektowane przez technologię reklamową. W tym przypadku klucze zbiorów tworzy witryna demo Piaskownicy prywatności. Ponieważ prywatna agregacja danych w przypadku tej witryny jest w trybie debugowania, możesz użyć wartości debug_cleartext_payload
z sekcji „Treść raportu”, aby uzyskać klucz zbioru.
Skopiuj debug_cleartext_payload
z treści raportu.
Debugowanie ładunku w postaci zwykłego tekstu z treści raportu.
Otwórz stronę goo.gle/ags-payload-decoder, wklej dane debug_cleartext_payload
do pola „INPUT” i kliknij „Decode”.
Dekoder ładunku.
Strona zwraca wartość dziesiętną klucza puli. Poniżej znajduje się przykładowy klucz zasobnika.
Wynik dekodera ładunku.
Gdy mamy już klucz zasobnika, utwórz output_domain.avro
. Sprawdź, czy zastępujesz
kluczem zasobnika, który został pobrany.
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. Przenoszenie raportów 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ę wyjściową do puli S3 na potrzeby raportowania.
Jeśli masz skonfigurowany interfejs wiersza poleceń AWS w środowisku lokalnym, użyj podanych niżej poleceń, aby skopiować raporty do odpowiedniego folderu raportów i zasosobu 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. Korzystanie z usługi do agregacji
Z terraform apply
zwracane są wartości create_job_endpoint
, get_job_endpoint
i frontend_api_id
. Skopiuj wartość frontend_api_id
i wstaw ją do zmiennej globalnej Postmana frontend_api_id
skonfigurowanej w sekcji wymagań wstępnych 1.9.
Krok 5. Korzystanie z usługi agregacji: twórz raporty podsumowujące i je przeglądaj za pomocą interfejsu API usługi agregacji.
Krok 5.1. Używanie punktu końcowego createJob do zbiorczego przetwarzania
Krok 5.2. Używanie punktu końcowego getJob do pobierania stanu zbiorczego
Krok 5.3. Sprawdzanie raportu zbiorczego
5.1. Używanie punktu końcowego createJob
do zbiorczego przetwarzania
W Postman otwórz kolekcję „Privacy Sandbox” i wybierz „createJob”.
Aby umieścić ładunek żądania, wybierz „Body” (Treść) i „raw” (Dane wejściowe).
postman createJob request body
Schemat ładunku createJob
jest dostępny na github i wygląda podobnie do tego: Zastąp <>
odpowiednimi polami.
{
"job_request_id": "<job_request_id>",
"input_data_blob_prefix": "<report_folder>/<report_name>.avro",
"input_data_blob_prefixes": [
"<report_folder>/<report_name-1>/",
"<report_folder>/<report_name-2>/",
"<report_folder>/<report_name>.avro"
], // Mutually exclusive to input_data_blob_prefix as of v2.11.0
"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>", // Mutually exclusive to attribution_report_to as of v2.7.0
"report_error_threshold_percentage": "10",
"debug_run": "true"
}
}
Gdy klikniesz „Wyślij”, utworzy się zadanie z job_request_id
. Gdy usługa agregacji zaakceptuje żądanie, powinna zostać zwrócona odpowiedź HTTP 202. Inne możliwe kody zwracane znajdziesz w sekcji Kody odpowiedzi HTTP.
Stan żądania postman createJob
5.2. Używanie punktu końcowego getJob do pobierania stanu zbiorczego
Aby sprawdzić stan żądania zadania, możesz użyć punktu końcowego getJob
. W kolekcji „Privacy Sandbox” wybierz „getJob”.
W sekcji „Parametr” zaktualizuj wartość job_request_id na job_request_id
, która została wysłana w żądaniu createJob
.
postman getJob request
Wynik wywołania getJob
powinien zwracać stan żądania zadania z kodem stanu HTTP 200. Żądanie „Body” zawiera niezbędne informacje, takie jak job_status
, return_message
i error_messages
(jeśli wystąpił błąd).
postman getJob request status
Ponieważ witryna raportowania wygenerowanego raportu demonstracyjnego różni się od witryny wdrożonej w Twoim identyfikatorze AWS, możesz otrzymać odpowiedź z kodem return_code PRIVACY_BUDGET_AUTHORIZATION_ERROR
. To normalne, ponieważ witryna pochodzenia raportów nie jest taka sama jak witryna raportowania dołączona do 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_blob_prefixes": [ // Mutually exclusive to input_data_blob_prefix as of v2.11.0
"<report_folder>/<report_name-1>/",
"<report_folder>/<report_name-2>/",
"<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>", // Mutually exclusive to attribution_report_to as of v2.7.0
},
"request_processing_started_at": "2023-12-07T22:51:06.034472697Z"
}
5.3. Sprawdzanie raportu zbiorczego
Gdy otrzymasz raport podsumowujący w swojej puli S3 wyjściowej, możesz go pobrać do środowiska lokalnego. Raporty podsumowania są w formacie AVRO i można je przekonwertować z powrotem do formatu JSON. Aby odczytać raport, możesz użyć aggregatable_report_converter.jar
, wykonując to polecenie.
java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file <summary_report_avro>
Zwraca to dane JSON z wartościami zbiorczymi każdego klucza zbiornika, które wyglądają podobnie do tego obrazu.
Raport zbiorczy.
Jeśli Twoje żądanie createJob
zawiera debug_run
jako true
, możesz otrzymać raport podsumowania w folderze debugowania w folderze output_data_blob_prefix
. Raport jest w formacie AVRO i można go przekonwertować do formatu JSON za pomocą poprzedniego polecenia.
Raport zawiera klucz zbioru, dane bez szumu oraz szum, który został dodany do danych bez szumu, aby utworzyć raport podsumowujący. Raport wygląda podobnie do tego na poniższym obrazku.
Raport Debugowanie podsumowania.
Oprócz tego adnotacje zawierają in_reports
i in_domain
, co oznacza:
- in_reports – klucz zbioru jest dostępny w raportach podlegających agregacji.
- in_domain – klucz zasobnika jest dostępny w pliku AVRO domeny wyjściowej.