1. Voraussetzungen
Für dieses Codelab sind einige Voraussetzungen zu erfüllen. Jede Anforderung wird entsprechend gekennzeichnet.
1.1. Lokales Testtool herunterladen (Lokale Tests)
Für lokale Tests ist der Download des lokalen Testtools erforderlich. Das Tool generiert Zusammenfassungsberichte aus den unverschlüsselten Debug-Berichten.
Das lokale Testtool kann in den Lambda-JAR-Archiven in GitHub heruntergeladen werden. Er sollte LocalTestingTool_{version}.jar
heißen.
1.2. Achten Sie darauf, dass JAVA JRE installiert ist (Local Testing and Aggregation Service)
Öffnen Sie Terminal und prüfen Sie mit java --version
, ob auf Ihrem Computer Java oder openJDK installiert ist.
Ist dies nicht der Fall, können Sie sie von der Java-Website oder der openJDK-Website herunterladen und installieren.
1.3. Tool zum Konvertieren von aggregierten Berichten herunterladen (lokaler Test- und Aggregationsdienst)
Sie können eine Kopie des Konvertierungsprogramms für aggregierte Berichte aus dem GitHub-Repository für Privacy Sandbox Demos herunterladen.
1.4 Privacy Sandbox APIs aktivieren (Local Testing and Aggregation Service)
Rufen Sie in Ihrem Browser chrome://flags/#privacy-sandbox-ads-apis
auf und aktivieren Sie die Privacy Sandbox APIs.
Achte darauf, dass Cookies von Drittanbietern aktiviert sind.
Rufe in deinem Browser chrome://settings/cookies
auf und wähle Drittanbieter-Cookies im Inkognitomodus blockieren aus.
1.5 Registrierung für Web und Android (Aggregation Service)
Wenn Sie Privacy Sandbox APIs in einer Produktionsumgebung verwenden möchten, müssen Sie die Registrierung und Attestierung sowohl für Chrome als auch für Android abgeschlossen haben.
Für lokale Tests kann die Registrierung mit einem Chrome-Flag und einem Befehlszeilen-Switch deaktiviert werden.
Wenn du das Chrome-Flag für unsere Demo verwenden möchtest, rufe chrome://flags/#privacy-sandbox-enrollment-overrides
auf und aktualisiere die Überschreibung mit deiner Website. Wenn du unsere Demowebsite verwendest, ist kein Update erforderlich.
1.6 Onboarding des Aggregationsdienstes (Aggregationsdienst)
Für den Aggregation Service müssen Koordinatoren den Dienst verwenden. Füllen Sie das Onboarding-Formular für den Aggregationsdienst aus und geben Sie die Adresse für die Berichtswebsite, die AWS-Konto-ID und weitere Informationen an.
1.7 Cloud-Anbieter (Aggregation Service)
Für den Aggregationsdienst ist eine vertrauenswürdige Ausführungsumgebung erforderlich, die eine Cloud-Umgebung verwendet. Der Aggregationsdienst wird von Amazon Web Services (AWS) und Google Cloud (GCP) unterstützt. In diesem Codelab wird nur die AWS-Integration behandelt.
AWS bietet eine vertrauenswürdige Ausführungsumgebung namens Nitro Enclaves. Prüfen Sie, ob Sie ein AWS-Konto haben, und folgen Sie der Anleitung zur Installation und Aktualisierung der AWS-Befehlszeile, um Ihre AWS-CLI-Umgebung einzurichten.
Wenn die AWS-Befehlszeile neu ist, können Sie sie mithilfe der Konfigurationsanleitung für die Befehlszeile konfigurieren.
1.7.1. AWS S3-Bucket erstellen
Erstellen Sie einen AWS S3-Bucket zum Speichern des Terraform-Zustands und einen weiteren S3-Bucket zum Speichern Ihrer Berichte und Zusammenfassungsberichte. Sie können den bereitgestellten CLI-Befehl verwenden. Ersetzen Sie das Feld in <>
durch die richtigen Variablen.
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. Nutzerzugriffsschlüssel erstellen
Erstellen Sie mithilfe des AWS-Leitfadens Nutzerzugriffsschlüssel. Damit werden die in AWS erstellten API-Endpunkte createJob
und getJob
aufgerufen.
1.7.3. AWS-Nutzer- und -Gruppenberechtigungen
Zum Bereitstellen des Aggregationsdienstes in AWS müssen Sie dem Nutzer, der für die Bereitstellung des Dienstes verwendet wird, bestimmte Berechtigungen erteilen. Achten Sie bei diesem Codelab darauf, dass der Nutzer Administratorzugriff hat, um vollständige Berechtigungen für die Bereitstellung zu erhalten.
1.8 Terraform (Aggregation Service)
In diesem Codelab wird Terraform zum Bereitstellen des Aggregationsdienstes verwendet. Prüfen Sie, ob die Terraform-Binärdatei in Ihrer lokalen Umgebung installiert ist.
Laden Sie die Terraform-Binärdatei in Ihre lokale Umgebung herunter.
Nachdem die Terraform-Binärdatei heruntergeladen wurde, entpacken Sie die Datei und verschieben Sie die Terraform-Binärdatei in /usr/local/bin
.
cp <directory>/terraform /usr/local/bin
Prüfen Sie, ob Terraform unter „classpath“ verfügbar ist.
terraform -v
1.9 Postman (für Aggregation Service AWS)
Verwenden Sie in diesem Codelab Postman für die Anfragenverwaltung.
Um einen Arbeitsbereich zu erstellen, klicken Sie im oberen Navigationsbereich auf Arbeitsbereiche und wählen Sie Arbeitsbereich erstellen aus.
Wählen Sie Leerer Arbeitsbereich aus, klicken Sie auf „Weiter“ und nennen Sie den Ordner Privacy Sandbox. Wähle Persönlich aus und klicke auf Erstellen.
Laden Sie die vorkonfigurierten JSON-Konfigurationsdateien und Globale Umgebung für den Arbeitsbereich herunter.
Importieren Sie die JSON-Dateien über die Schaltfläche Importieren in Mein Arbeitsbereich.
Dadurch wird die Privacy Sandbox-Sammlung für Sie zusammen mit den HTTP-Anfragen createJob
und getJob
erstellt.
Aktualisieren Sie den AWS-Zugriffsschlüssel und den geheimen Schlüssel über Environment Quick Look.
Klicken Sie auf Bearbeiten und aktualisieren Sie den aktuellen Wert von access_key und secret_key. Beachten Sie, dass frontend_api_id
in Abschnitt 3.1.4 dieses Dokuments bereitgestellt wird. Wir empfehlen, die Region us-east-1 zu verwenden. Wenn Sie die Bereitstellung jedoch in einer anderen Region vornehmen möchten, müssen Sie die veröffentlichte AMI in Ihr Konto kopieren oder einen Self-Build mit den bereitgestellten Scripts ausführen.
2. Codelab für lokale Tests
Sie können das lokale Testtool auf Ihrem Computer verwenden, um mithilfe der unverschlüsselten Debug-Berichte Aggregationen durchzuführen und Zusammenfassungen zu erstellen.
Codelab-Schritte
Schritt 2.1: Bericht auslösen: Lösen Sie einen privaten Aggregationsbericht aus, um den Bericht zu erfassen.
Schritt 2.2: Aggregierbaren Bericht zur Fehlerbehebung erstellen: Konvertieren Sie den erfassten JSON-Bericht in einen Bericht im AVRO-Format.
Dieser Schritt ähnelt dem Vorgang, wenn AdTech-Unternehmen die Berichte von den API-Endpunkten für die Berichterstellung erfassen und die JSON-Berichte in Berichte im AVRO-Format konvertieren.
Schritt 2.3: Bucket-Schlüssel aus dem Debug-Bericht parsen: Bucket-Schlüssel werden von Anzeigentechnologien entwickelt. Da die Buckets in diesem Codelab vordefiniert sind, rufen Sie die Bucket-Schlüssel wie angegeben ab.
Schritt 2.4: Erstellen Sie die AVRO-Datei für die Ausgabedomain: Nachdem die Bucket-Schlüssel abgerufen wurden, erstellen Sie die AVRO-Datei der Ausgabedomain.
Schritt 2.5: Zusammenfassungsberichte mit dem lokalen Testtool erstellen: Mit dem lokalen Testtool können Sie zusammenfassende Berichte in der lokalen Umgebung erstellen.
Schritt 2.6: Zusammenfassenden Bericht ansehen: Sehen Sie sich den zusammenfassenden Bericht an, der mit dem lokalen Testtool erstellt wird.
2.1. Trigger-Bericht
Rufen Sie die Privacy Sandbox-Demo auf. Dadurch wird ein privater Aggregationsbericht erstellt. Sie können den Bericht unter chrome://private-aggregation-internals
aufrufen.
Hat der Bericht den Status Ausstehend, wählen Sie ihn aus und klicken Sie auf Ausgewählte Berichte senden.
2.2. Aggregierbaren Bericht zur Fehlerbehebung erstellen
Kopieren Sie in chrome://private-aggregation-internals
den im [reporting-origin]/.well-known/private-aggregation/report-shared-storage
-Endpunkt empfangenen Berichtstext.
Achten Sie darauf, dass der aggregation_coordinator_origin
im Berichtstext den Wert https://publickeyservice.msmt.aws.privacysandboxservices.com
enthält. Das bedeutet, dass der Bericht ein aggregierter AWS-Bericht ist.
Fügen Sie den JSON-Report Body in eine JSON-Datei ein. In diesem Beispiel können Sie vim verwenden. Sie können jedoch jeden beliebigen Texteditor verwenden.
vim report.json
Fügen Sie den Bericht in report.json
ein und speichern Sie die Datei.
Rufen Sie dann den Berichtsordner auf und verwenden Sie aggregatable_report_converter.jar
, um den aggregierten Bericht zur Fehlerbehebung zu erstellen. Dadurch wird ein aggregierter Bericht mit dem Namen „report.avro
“ in Ihrem aktuellen Verzeichnis erstellt.
java -jar aggregatable_report_converter.jar \
--request_type convertToAvro \
--input_file report.json \
--debug
2.3. Bucket-Schlüssel aus dem Debug-Bericht parsen
Der Aggregationsdienst benötigt für die Batchverarbeitung zwei Dateien. Der aggregierbare Bericht und die Ausgabedomaindatei. Die Ausgabedomaindatei enthält die Schlüssel, die Sie aus den aggregierten Berichten abrufen möchten. Zum Erstellen der Datei output_domain.avro
benötigen Sie die Bucket-Schlüssel, die aus den Berichten abgerufen werden können.
Bucket-Schlüssel werden vom Aufrufer der API entworfen. Die Demo enthält vorkonfigurierte Beispiele für Bucket-Schlüssel. Da in der Demo der Fehlerbehebungsmodus für die private Aggregation aktiviert ist, können Sie die Klartextnutzlast zur Fehlerbehebung aus dem Berichtstext parsen, um den Bucket-Schlüssel abzurufen. In diesem Fall werden die Bucket-Schlüssel jedoch von der Privacy Sandbox-Demo der Website erstellt. Da sich die private Zusammenfassung für diese Website im Debug-Modus befindet, können Sie den debug_cleartext_payload
aus dem Berichtstext verwenden, um den Bucket-Schlüssel abzurufen.
Kopieren Sie die debug_cleartext_payload
aus dem Berichtstext.
Öffnen Sie das Tool Fehlerbehebung für den Nutzlast-Decoder für private Aggregation, fügen Sie Ihren debug_cleartext_payload
in das Feld INPUT ein und klicken Sie auf INPUT.
Die Seite gibt den Dezimalwert des Bucket-Schlüssels zurück. Im Folgenden finden Sie ein Beispiel für einen Bucket-Schlüssel.
2.4 AVRO für Ausgabedomain erstellen
Jetzt haben wir den Bucket-Schlüssel und kopieren den Dezimalwert des Bucket-Schlüssels. Erstellen Sie nun den output_domain.avro
mit dem Bucket-Schlüssel. Ersetzen Sie
durch den abgerufenen Bucket-Schlüssel.
java -jar aggregatable_report_converter.jar \
--request_type createDomainAvro \
--bucket_key <bucket key>
Das Skript erstellt die Datei output_domain.avro
im aktuellen Ordner.
2.5 Zusammenfassungsberichte mit dem lokalen Testtool erstellen
Wir verwenden LocalTestingTool_{version}.jar
, das in Abschnitt 1.1 heruntergeladen wurde, um die Zusammenfassungsberichte zu erstellen. Verwenden Sie den folgenden Befehl. Ersetzen Sie LocalTestingTool_{version}.jar
durch die Version, die Sie für das LocalTestingTool heruntergeladen haben.
Führen Sie den folgenden Befehl aus, um einen zusammenfassenden Bericht in Ihrer lokalen Entwicklungsumgebung zu generieren:
java -jar LocalTestingTool_{version}.jar \
--input_data_avro_file report.avro \
--domain_avro_file output_domain.avro \
--output_directory .
Sobald der Befehl ausgeführt wurde, sollte eine ähnliche Abbildung wie in der folgenden Abbildung angezeigt werden. Sobald er abgeschlossen ist, wird der Bericht „output.avro
“ erstellt.
2.6 Zusammenfassungsbericht ansehen
Der erstellte zusammenfassende Bericht liegt im AVRO-Format vor. Zum Lesen müssen Sie sie von AVRO in ein JSON-Format konvertieren. Idealerweise sollte die Anzeigentechnologie so programmieren, dass AVRO-Berichte zurück in das JSON-Format konvertiert werden.
Für unser Codelab verwenden wir das bereitgestellte aggregatable_report_converter.jar
-Tool, um den AVRO-Bericht wieder in das JSON-Format zu konvertieren.
java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file output.avro
Daraufhin wird ein Bericht zurückgegeben, der in etwa so aussieht: Zusammen mit einem Bericht, der output.json
im selben Verzeichnis erstellt wurde.
Öffnen Sie die JSON-Datei in einem Editor Ihrer Wahl, um sich den zusammenfassenden Bericht anzusehen.
3. Bereitstellung des Aggregationsdienstes
Führen Sie die folgenden Schritte aus, um den Aggregation Service bereitzustellen:
Schritt 3: Bereitstellung des Aggregationsdienstes: Stellen Sie den Aggregationsdienst auf AWS bereit.
Schritt 3.1. Klonen Sie das Aggregation Service Repository.
Schritt 3.2. Vordefinierte Abhängigkeiten herunterladen
Schritt 3.3: Entwicklungsumgebung erstellen
Schritt 3.4: Aggregationsdienst bereitstellen
3.1. Aggregation Service-Repository klonen
Klonen Sie in Ihrer lokalen Umgebung das GitHub-Repository für Aggregation Service.
git clone https://github.com/privacysandbox/aggregation-service.git
3.2. Vordefinierte Abhängigkeiten herunterladen
Nachdem Sie das Aggregation Service-Repository geklont haben, wechseln Sie zum Terraform-Ordner des Repositorys und in den entsprechenden Cloud-Ordner. Wenn Ihr cloud_provider AWS ist, können Sie mit
fortfahren.
cd <repository_root>/terraform/aws
Führen Sie in download_prebuilt_dependencies.sh
aus.
bash download_prebuilt_dependencies.sh
3.3 Entwicklungsumgebung erstellen
Erstellen Sie eine Entwicklungsumgebung in
. Erstellen Sie einen Ordner mit dem Namen dev
.
mkdir dev
Kopieren Sie den Inhalt des Ordners demo
in den Ordner dev
.
cp -R demo/* dev
In den Ordner „dev
“ verschieben.
cd dev
Aktualisieren Sie die Datei main.tf
und drücken Sie i
, um input
die Datei zu bearbeiten.
vim main.tf
Entfernen Sie das Kommentarzeichen (#) vom Code im roten Feld und aktualisieren Sie die Namen der Buckets und Schlüssel.
Für AWS main.tf:
Der Code ohne Kommentare sollte wie unten dargestellt aussehen.
backend "s3" {
bucket = "<tf_state_bucket_name>"
key = "<environment_name>.tfstate"
region = "us-east-1"
}
Sobald die Aktualisierungen abgeschlossen sind, speichern Sie sie und beenden Sie den Editor durch Drücken von esc
-> :wq!
. Dadurch werden die Aktualisierungen auf main.tf
gespeichert.
Benennen Sie dann example.auto.tfvars
in dev.auto.tfvars
um.
mv example.auto.tfvars dev.auto.tfvars
Aktualisieren Sie dev.auto.tfvars
und drücken Sie i
, damit input
die Datei bearbeiten kann.
vim dev.auto.tfvars
Aktualisieren Sie die Felder im roten Feld nach der Abbildung mit den korrekten AWS-ARN-Parametern, die während des Onboardings, der Umgebung und der Benachrichtigungs-E-Mail des Aggregationsdienstes bereitgestellt werden.
Sobald die Aktualisierung abgeschlossen ist, drücken Sie esc
-> :wq!
. Dadurch wird die Datei dev.auto.tfvars
gespeichert. Sie sollte in etwa so aussehen:
3.4. Aggregationsdienst bereitstellen
Initialisieren Sie Terraform, um den Aggregationsdienst im selben Ordner
bereitzustellen.
terraform init
Die Ausgabe sollte in etwa so aussehen:
Sobald Terraform initialisiert ist, erstellen Sie den Terraform-Ausführungsplan. Dabei wird die Anzahl der hinzuzufügenden Ressourcen und andere zusätzliche Informationen wie in der folgenden Abbildung zurückgegeben.
terraform plan
Unten sehen Sie die Zusammenfassung des Tarifs. Wenn es sich um eine neue Bereitstellung handelt, sollte die Anzahl der Ressourcen angezeigt werden, die hinzugefügt werden, wobei 0 zum Ändern und 0 zum Löschen angezeigt wird.
Anschließend können Sie Terraform anwenden.
terraform apply
Sobald Sie aufgefordert werden, die Ausführung der Aktionen über Terraform zu bestätigen, geben Sie einen yes
in den Wert ein.
Sobald terraform apply
abgeschlossen ist, werden die folgenden Endpunkte für createJob
und getJob
zurückgegeben. Die frontend_api_id
, die Sie in Postman in Abschnitt 1.9 aktualisieren müssen, wird ebenfalls zurückgegeben.
4. Eingabeerstellung für Aggregationsdienst
Fahren Sie fort, um die AVRO-Berichte für die Batchverarbeitung im Aggregation Service zu erstellen.
Schritt 4: Eingabe für den Aggregationsdienst erstellen: Erstellen Sie die Berichte für den Aggregationsdienst, die für den Aggregationsdienst als Batch zusammengefasst werden.
Schritt 4.1. Trigger-Bericht
Schritt 4.2: Aggregierbare Berichte erstellen
Schritt 4.3: Berichte in AVRO umwandeln
Schritt 4.4: AVRO für Ausgabedomain erstellen
4.1. Trigger-Bericht
Rufen Sie die Privacy Sandbox-Demo auf. Dadurch wird ein privater Aggregationsbericht erstellt. Sie können den Bericht unter chrome://private-aggregation-internals
aufrufen.
Hat der Bericht den Status Ausstehend, wählen Sie ihn aus und klicken Sie auf Ausgewählte Berichte senden.
4.2. Aggregierbare Berichte erfassen
Erfassen Sie die aggregierbaren Berichte an den .well-known
-Endpunkten der entsprechenden API.
- Private Aggregation
[reporting-origin] /.well-known/private-aggregation/report-shared-storage
- Attribution Reporting – zusammenfassender Bericht
[reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution
In diesem Codelab führen Sie die Berichtssammlung manuell aus. In der Produktion wird erwartet, dass Anzeigentechnologies Berichte programmatisch erfassen und konvertieren.
Kopieren Sie in chrome://private-aggregation-internals
den im [reporting-origin]/.well-known/private-aggregation/report-shared-storage
-Endpunkt empfangenen Berichtstext.
Achten Sie darauf, dass der aggregation_coordinator_origin
im Berichtstext den Wert https://publickeyservice.msmt.aws.privacysandboxservices.com
enthält. Das bedeutet, dass der Bericht ein aggregierter AWS-Bericht ist.
Fügen Sie den JSON-Report Body in eine JSON-Datei ein. In diesem Beispiel können Sie vim verwenden. Sie können jedoch jeden beliebigen Texteditor verwenden.
vim report.json
Fügen Sie den Bericht in report.json
ein und speichern Sie die Datei.
4.3. Berichte in AVRO konvertieren
Von den .well-known
-Endpunkten empfangene Berichte liegen im JSON-Format vor und müssen in das AVRO-Berichtsformat konvertiert werden. Wenn Sie den JSON-Bericht haben, gehen Sie zum Berichtsordner und verwenden Sie aggregatable_report_converter.jar
, um den aggregierten Bericht zur Fehlerbehebung zu erstellen. Dadurch wird ein aggregierter Bericht mit dem Namen „report.avro
“ in Ihrem aktuellen Verzeichnis erstellt.
java -jar aggregatable_report_converter.jar \
--request_type convertToAvro \
--input_file report.json
4.4. AVRO für Ausgabedomain erstellen
Zum Erstellen der Datei output_domain.avro
benötigen Sie die Bucket-Schlüssel, die aus den Berichten abgerufen werden können.
Bucket-Schlüssel werden von der Anzeigentechnologie erstellt, aber in diesem Fall werden sie von der Privacy Sandbox-Demo der Website erstellt. Da sich die private Zusammenfassung für diese Website im Debug-Modus befindet, können Sie den debug_cleartext_payload
aus dem Berichtstext verwenden, um den Bucket-Schlüssel abzurufen.
Kopieren Sie debug_cleartext_payload
aus dem Berichtstext.
Öffnen Sie goo.gle/ags-payload-decoder, fügen Sie Ihren debug_cleartext_payload
in das Feld INPUT ein und klicken Sie auf INPUT.
Die Seite gibt den Dezimalwert des Bucket-Schlüssels zurück. Im Folgenden finden Sie ein Beispiel für einen Bucket-Schlüssel.
Da wir nun den Bucket-Schlüssel haben, können Sie den output_domain.avro
erstellen. Ersetzen Sie
durch den abgerufenen Bucket-Schlüssel.
java -jar aggregatable_report_converter.jar \
--request_type createDomainAvro \
--bucket_key <bucket key>
Das Skript erstellt die Datei output_domain.avro
im aktuellen Ordner.
4.5. Berichte in AWS-Bucket verschieben
Nachdem die AVRO-Berichte (aus Abschnitt 3.2.3) und die Ausgabedomain (aus Abschnitt 3.2.4) erstellt wurden, können Sie die Berichte und die Ausgabedomain in die S3-Berichtskategorien verschieben.
Wenn Sie die AWS-CLI in Ihrer lokalen Umgebung eingerichtet haben, können Sie die Berichte mit den folgenden Befehlen in den entsprechenden S3-Bucket und Berichtsordner kopieren.
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. Nutzung des Aggregationsdienstes
Von der terraform apply
werden Ihnen die create_job_endpoint
, die get_job_endpoint
und die frontend_api_id
zurückgegeben. Kopieren Sie die frontend_api_id
und fügen Sie sie in die globale Postman-Variable frontend_api_id
ein, die Sie im Abschnitt 1.9 unter „Voraussetzungen“ eingerichtet haben.
Schritt 5: Nutzung des Aggregationsdienstes: Verwenden Sie die Aggregation Service API, um zusammenfassende Berichte zu erstellen und diese zu überprüfen.
Schritt 5.1. „createJob“-Endpunkt für die Batchverarbeitung verwenden
Schritt 5.2: GetJob-Endpunkt zum Abrufen des Batchstatus verwenden
Schritt 5.3: Zusammenfassung des Berichts
5.1. Endpunkt createJob
für Batch-Verarbeitung verwenden
Öffnen Sie in Postman die Sammlung Privacy Sandbox und wählen Sie createJob aus.
Wählen Sie Body und dann raw aus, um die Nutzlast der Anfrage zu platzieren.
Das Nutzlastschema createJob
ist in github verfügbar und sieht in etwa so aus. Ersetzen Sie <>
durch die entsprechenden Felder.
{
"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"
}
}
Sobald Sie auf Senden klicken, wird der Job mit der job_request_id
erstellt. Sie sollten eine HTTP 202-Antwort erhalten, sobald die Anfrage vom Aggregationsdienst akzeptiert wurde. Weitere mögliche Rückgabecodes finden Sie unter HTTP-Antwortcodes.
5.2. getJob-Endpunkt zum Abrufen des Batchstatus verwenden
Zum Prüfen des Status der Jobanfrage können Sie den Endpunkt getJob
verwenden. Wählen Sie in der Sammlung Privacy Sandbox die Option getJob aus.
Aktualisieren Sie in Params den Wert von job_request_id auf die job_request_id
, die in der createJob
-Anfrage gesendet wurde.
Das Ergebnis von getJob
sollte den Status der Jobanfrage mit dem HTTP-Status 200 zurückgeben. Die Anfrage "Body" enthält die erforderlichen Informationen wie job_status
, return_message
und error_messages
, falls beim Job ein Fehler aufgetreten ist.
Da sich die Berichtswebsite des generierten Demoberichts von der Website unterscheidet, die Sie auf Ihrer AWS-ID eingerichtet haben, erhalten Sie möglicherweise eine Antwort mit dem Rückgabecode PRIVACY_BUDGET_AUTHORIZATION_ERROR
. Das ist normal, da die Website des Berichtsursprungs des Berichts nicht mit der für die AWS-ID aufgenommenen Berichtswebsite übereinstimmt.
{
"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. Zusammenfassung des Berichts
Sobald Sie Ihren zusammenfassenden Bericht im ausgegebenen S3-Bucket erhalten haben, können Sie diesen in Ihre lokale Umgebung herunterladen. Zusammenfassungsberichte liegen im AVRO-Format vor und können wieder in das JSON-Format konvertiert werden. Sie können aggregatable_report_converter.jar
verwenden, um Ihren Bericht mit dem folgenden Befehl zu lesen.
java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file <summary_report_avro>
Dadurch wird eine JSON-Datei mit aggregierten Werten jedes Bucket-Schlüssels zurückgegeben, die in etwa wie in der folgenden Abbildung aussieht.
Wenn Ihre createJob
-Anfrage debug_run
als true
enthält, erhalten Sie den zusammenfassenden Bericht im Debug-Ordner, der sich im output_data_blob_prefix
befindet. Der Bericht liegt im AVRO-Format vor und kann mit dem vorherigen Befehl in ein JSON-Format konvertiert werden.
Der Bericht enthält den Bucket-Schlüssel, den nicht verrauschten Messwert und das Rauschen, das dem nicht verrauschten Messwert hinzugefügt wird, um den zusammenfassenden Bericht zu erstellen. Der Bericht ähnelt der folgenden Abbildung.
Die Anmerkungen enthalten außerdem in_reports
und in_domain
. Das bedeutet:
- in_reports - der Bucket-Schlüssel ist in den aggregierten Berichten verfügbar.
- in_domain: Der Bucket-Schlüssel ist in der AVRO-Datei "output_domain" verfügbar.