1. Vorbereitung
Für dieses Codelab müssen einige Voraussetzungen erfüllt sein. Jede Anforderung ist entsprechend gekennzeichnet, ob sie für „Lokale Tests“ erforderlich ist. oder „Aggregationsdienst“.
1.1. Lokales Testtool herunterladen (lokaler Test)
Für lokale Tests muss das lokale Testtool heruntergeladen werden. Das Tool erstellt zusammenfassende Berichte aus den unverschlüsselten Debug-Berichten.
Das lokale Testtool steht in den Lambda JAR-Archiven in GitHub zum Download zur Verfügung. Sie sollte den Namen LocalTestingTool_{version}.jar
haben.
1.2. Achten Sie darauf, dass JAVA JRE installiert ist (lokaler Test- und Aggregationsdienst)
Öffnen Sie das Terminal. und prüfen Sie mit java --version
, ob auf Ihrem Computer Java oder openJDK installiert ist.
Wenn es nicht installiert ist, können Sie es von der Java-Website oder der openJDK-Website herunterladen und installieren.
1.3. Aggregierbarer Report Converter herunterladen (lokaler Test- und Aggregationsdienst)
Eine Kopie des Converters für aggregierte Berichte können Sie aus dem GitHub-Repository zu Privacy Sandbox-Demos herunterladen.
1.4 APIs für Datenschutz bei Anzeigen (lokaler Test- und Aggregationsdienst) aktivieren
Rufen Sie in Ihrem Browser chrome://settings/adPrivacy
auf und aktivieren Sie alle APIs zum Datenschutz bei Werbung.
Prüfen Sie, ob Drittanbieter-Cookies aktiviert sind.
Rufen Sie in Ihrem Browser chrome://settings/cookies
auf und wählen Sie Drittanbieter-Cookies im Inkognitomodus blockieren aus.
1.5 Web- und Android-Registrierung (Aggregationsdienst)
Wenn Sie Privacy Sandbox APIs in einer Produktionsumgebung verwenden möchten, müssen Sie die Registrierung und Bescheinigung sowohl für Chrome als auch für Android abgeschlossen haben.
Für lokale Tests kann die Registrierung mithilfe eines Chrome-Flags und eines CLI-Switch deaktiviert werden.
Wenn Sie das Chrome-Flag für unsere Demo verwenden möchten, rufen Sie chrome://flags/#privacy-sandbox-enrollment-overrides
auf und aktualisieren Sie die Überschreibung mit Ihrer Website. Wenn Sie unsere Demowebsite verwenden, ist kein Update erforderlich.
1.6 Onboarding des Aggregationsdienstes (Aggregationsdienst)
Für den Aggregationsdienst ist ein Onboarding für Koordinatoren erforderlich, um den Dienst nutzen zu können. Füllen Sie das Einrichtungsformular für Aggregation Service aus. Geben Sie dazu die Adresse Ihrer Website für die Berichterstellung, die AWS-Konto-ID und andere Informationen an.
1.7 Cloud-Anbieter (Aggregationsdienst)
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 geht es nur um die AWS-Integration.
AWS bietet eine vertrauenswürdige Ausführungsumgebung namens Nitro Enclaves. Sie benötigen ein AWS-Konto und folgen Sie der Anleitung zur Installation und Aktualisierung der AWS-Befehlszeile, um Ihre AWS-CLI-Umgebung einzurichten.
Wenn Ihre AWS-Befehlszeile neu ist, können Sie sie mithilfe der Anleitung zur Konfiguration der 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 Nutzerzugriffsschlüssel mithilfe des AWS-Leitfadens. Dies wird verwendet, um die in AWS erstellten API-Endpunkte createJob
und getJob
aufzurufen.
1.7.3. AWS-Nutzer- und -Gruppenberechtigungen
Um den Aggregationsdienst in AWS bereitzustellen, müssen Sie dem Nutzer, der für die Bereitstellung des Dienstes verwendet wird, bestimmte Berechtigungen erteilen. Für dieses Codelab muss der Nutzer Administratorzugriff haben, um bei der Bereitstellung alle Berechtigungen zu erhalten.
1.8 Terraform (Aggregationsdienst)
In diesem Codelab wird Terraform verwendet, um den Aggregationsdienst bereitzustellen. Prüfen Sie, ob die Terraform-Binärdatei in Ihrer lokalen Umgebung installiert ist.
Laden Sie das Terraform-Binärprogramm in Ihre lokale Umgebung herunter.
Nachdem die Terraform-Binärdatei heruntergeladen wurde, extrahieren Sie die Datei und verschieben Sie die Terraform-Binärdatei nach /usr/local/bin
.
cp <directory>/terraform /usr/local/bin
Prüfen Sie, ob Terraform auf dem Klassenpfad verfügbar ist.
terraform -v
1.9 Postman (für AWS-Aggregationsdienst)
Verwende für dieses Codelab Postman für die Anfrageverwaltung.
Erstellen Sie einen Arbeitsbereich, indem Sie zu Arbeitsbereiche wechseln. im oberen Navigationselement und wählen Sie Arbeitsbereich erstellen aus.
Wählen Sie Leerer Arbeitsbereich aus, klicken Sie auf „Weiter“ und nennen Sie ihn Privacy Sandbox. Wähle Persönlich aus. und klicken Sie auf Erstellen.
Laden Sie die vorkonfigurierten Dateien für die JSON-Konfiguration und die globale Umgebung des Arbeitsbereichs herunter.
Importieren Sie die JSON-Dateien in Mein Arbeitsbereich. mit der Funktion Importieren Schaltfläche.
Dadurch wird die Privacy Sandbox-Sammlung zusammen mit den HTTP-Anfragen createJob
und getJob
erstellt.
AWS-Zugriffsschlüssel aktualisieren und „Sicherheitsschlüssel“ finden Sie unter Kurzübersicht „Umgebung“.
Klicke auf Bearbeiten. und aktualisieren Sie den „aktuellen Wert“ sowohl „access_key“ und secret_key. Beachten Sie, dass frontend_api_id
in Abschnitt 3.1.4 dieses Dokuments angegeben wird. Wir empfehlen außerdem, die Region us-east-1 zu verwenden. Wenn Sie die Bereitstellung jedoch in einer anderen Region vornehmen möchten, müssen Sie den freigegebenen AMI in Ihr Konto kopieren oder mithilfe der bereitgestellten Scripts selbst einen Build durchführen.
2. Codelab für lokale Tests
Sie können das lokale Testtool auf Ihrem Computer verwenden, um mithilfe der unverschlüsselten Fehlerbehebungsberichte Aggregationen durchzuführen und zusammenfassende Berichte zu generieren.
Codelab-Schritte
Schritt 2.1: Triggerbericht: Lösen Sie Berichte zur privaten Aggregation aus, damit der Bericht erfasst werden kann.
Schritt 2.2: Aggregierbaren Debug-Bericht erstellen: Konvertieren Sie den erfassten JSON-Bericht in einen AVRO-formatierten Bericht.
Dieser Schritt ähnelt dem, wenn Anzeigentechnologie-Anbieter die Berichte von den API-Endpunkten für Berichte erfassen und die JSON-Berichte in Berichte im AVRO-Format umwandeln.
Schritt 2.3: Bucket-Schlüssel aus dem Fehlerbehebungsbericht parsen: Bucket-Schlüssel werden von AdTech-Experten entwickelt. Da die Buckets in diesem Codelab vordefiniert sind, sollten Sie die Bucket-Schlüssel wie angegeben abrufen.
Schritt 2.4: Ausgabedomain AVRO erstellen: Sobald die Bucket-Schlüssel abgerufen sind, erstellen Sie die AVRO-Ausgabedomain-Datei.
Schritt 2.5: Zusammenfassungsberichte mit dem lokalen Testtool erstellen: Mit dem lokalen Testtool können Zusammenfassungsberichte in der lokalen Umgebung erstellt werden.
Schritt 2.6: Zusammenfassungsbericht überprüfen: Dies ist der im lokalen Testtool erstellte Zusammenfassungsbericht.
2.1. Triggerbericht
Rufen Sie die Demowebsite für die Privacy Sandbox auf. Dadurch wird ein privater Aggregationsbericht ausgelöst. Sie können den Bericht unter chrome://private-aggregation-internals
aufrufen.
Bericht hat den Status Ausstehend können Sie den Bericht auswählen und auf Ausgewählte Berichte senden klicken.
2.2. Aggregierbaren Debug-Bericht erstellen
Kopieren Sie in chrome://private-aggregation-internals
den Textkörper des Berichts. im Endpunkt [reporting-origin]/.well-known/private-aggregation/report-shared-storage
empfangen wurden.
Achten Sie darauf, dass im Report Body (Berichtstext) der aggregation_coordinator_origin
https://publickeyservice.msmt.aws.privacysandboxservices.com
enthält. Das bedeutet, dass es sich bei dem Bericht um einen in AWS aggregierten Bericht handelt.
Fügen Sie den Berichttext für das JSON-Format ein. in einer JSON-Datei. In diesem Beispiel verwenden Sie vim. Sie können aber einen beliebigen Texteditor verwenden.
vim report.json
Fügen Sie den Bericht in report.json
ein und speichern Sie die Datei.
Rufen Sie anschließend den Berichtsordner auf und erstellen Sie mit aggregatable_report_converter.jar
den aggregierten Debug-Bericht. 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
Für den Aggregationsdienst sind bei der Batchverarbeitung zwei Dateien erforderlich. Der aggregierte Bericht und die Ausgabedomaindatei Die Ausgabedomaindatei enthält die Schlüssel, die Sie aus den aggregierbaren 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 und die demo enthält vorgefertigte Beispiel-Bucket-Schlüssel. Da in der Demo der Fehlerbehebungsmodus für die private Aggregation aktiviert wurde, können Sie die Debug-Klartext-Nutzlast 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 Aggregation für diese Website im Debug-Modus befindet, kannst du die 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 Debug Payload-Decoder for Private Aggregation und fügen Sie Ihren debug_cleartext_payload
in die INPUT-Tabelle ein. und klicke auf Decodieren.
Die Seite gibt den Dezimalwert des Bucket-Schlüssels zurück. Hier sehen Sie ein Beispiel für einen Bucket-Schlüssel.
2.4 AVRO der Ausgabedomain erstellen
Nachdem wir nun den Bucket-Schlüssel haben, können Sie den Dezimalwert des Bucket-Schlüssels kopieren. Erstellen Sie nun die 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 Test-Tool erstellen
Wir verwenden LocalTestingTool_{version}.jar
, das in Abschnitt 1.1 heruntergeladen wurde, um die zusammenfassenden Berichte zu erstellen. Führen Sie dazu den folgenden Befehl aus. Du solltest LocalTestingTool_{version}.jar
durch die Version ersetzen, die für LocalTestingTool heruntergeladen wurde.
Führen Sie den folgenden Befehl aus, um einen Zusammenfassungsbericht 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 in etwa Folgendes angezeigt werden: Der Bericht output.avro
wird erstellt, sobald dieser Vorgang abgeschlossen ist.
2.6 Zusammenfassungsbericht ansehen
Der erstellte zusammenfassende Bericht ist im AVRO-Format erstellt. Um dies lesen zu können, müssen Sie es von AVRO in ein JSON-Format konvertieren. Idealerweise sollte die Anzeigentechnologie einen Code schreiben, um AVRO-Berichte in JSON umzuwandeln.
Für unser Codelab verwenden wir das bereitgestellte aggregatable_report_converter.jar
-Tool, um den AVRO-Bericht wieder in JSON zu konvertieren.
java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file output.avro
Daraufhin wird ein Bericht zurückgegeben, der dem folgenden Bild ähnelt. Mit einem Bericht, der im selben Verzeichnis erstellt wurde (output.json
).
Öffnen Sie die JSON-Datei in einem Editor Ihrer Wahl, um sich den zusammenfassenden Bericht anzusehen.
3. Bereitstellung des Aggregationsdiensts
So stellen Sie den Aggregationsdienst bereit:
Schritt 3: Bereitstellung des Aggregationsdienstes: Stellen Sie den Aggregationsdienst in AWS bereit
Schritt 3.1. Aggregation Service Repository klonen
Schritt 3.2 Laden Sie vordefinierte Abhängigkeiten herunter
Schritt 3.3. Entwicklungsumgebung erstellen
Schritt 3.4. Aggregationsdienst bereitstellen
3.1. Aggregationsdienst-Repository klonen
Klonen Sie in Ihrer lokalen Umgebung das Aggregation Service-GitHub-Repository.
git clone https://github.com/privacysandbox/aggregation-service.git
3.2. Vordefinierte Abhängigkeiten herunterladen
Nachdem Sie das Repository geklont haben, wechseln Sie zum Terraform-Ordner des Repositorys und zum entsprechenden Cloud-Ordner. Wenn Ihr cloud_provider AWS ist, können Sie mit
fortfahren.
cd <repository_root>/terraform/aws
Führen Sie in
den Befehl 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 Ihre main.tf
-Datei und drücken Sie i
für input
, um die Datei zu bearbeiten.
vim main.tf
Entfernen Sie das Kommentarzeichen (#) aus dem Code im roten Feld und aktualisieren Sie die Bucket- und Schlüsselnamen.
Für AWS main.tf:
Der unkommentierte Code sollte wie folgt aussehen.
backend "s3" {
bucket = "<tf_state_bucket_name>"
key = "<environment_name>.tfstate"
region = "us-east-1"
}
Nachdem die Aktualisierungen abgeschlossen sind, speichern Sie sie und beenden den Editor durch Drücken von esc
-> :wq!
. Dadurch werden die Änderungen am main.tf
gespeichert.
Benennen Sie als Nächstes 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
für input
, um die Datei zu bearbeiten.
vim dev.auto.tfvars
Aktualisieren Sie die Felder im roten Feld nach der Abbildung mit den korrekten AWS-ARN-Parametern, die während des Aggregationsdienst-Onboardings, der Umgebung und der Benachrichtigungs-E-Mail bereitgestellt werden.
Drücken Sie nach Abschluss der Änderungen esc
-> :wq!
. Dadurch wird die Datei dev.auto.tfvars
gespeichert. Sie sollte ungefähr wie in der folgenden Abbildung aussehen.
3.4. Aggregationsdienst bereitstellen
Initialisieren Sie Terraform, um den Aggregationsdienst im Ordner
bereitzustellen.
terraform init
Die Ausgabe sollte in etwa so aussehen:
Nachdem Terraform initialisiert wurde, erstellen Sie den Terraform-Ausführungsplan. Dabei werden die Anzahl der hinzuzufügenden Ressourcen und andere zusätzliche Informationen wie in der folgenden Abbildung zurückgegeben.
terraform plan
Sie sehen unten im Abschnitt Tarif Zusammenfassung. Bei einer neuen Bereitstellung sollten Sie die Anzahl der hinzugefügten Ressourcen mit 0 zum Ändern und 0 zum Löschen sehen.
Anschließend können Sie Terraform anwenden.
terraform apply
Wenn Sie aufgefordert werden, die Ausführung der Aktionen von 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. Es wird auch die frontend_api_id
zurückgegeben, die Sie in Postman in Abschnitt 1.9 aktualisieren müssen.
4. Eingabeerstellung für Aggregationsdienst
Erstellen Sie nun die AVRO-Berichte für die Batchverarbeitung im Aggregationsdienst.
Schritt 4: Eingabeerstellung für Aggregationsdienst: Erstellen Sie die Aggregationsdienstberichte, die für den Aggregationsdienst in Batches zusammengefasst werden.
Schritt 4.1: Trigger-Bericht
Schritt 4.2: Aggregierbare Berichte erstellen
Schritt 4.3: Berichte in AVRO konvertieren
Schritt 4.4: AVRO der Ausgabedomain erstellen
4.1. Triggerbericht
Rufen Sie die Demowebsite für die Privacy Sandbox auf. Dadurch wird ein privater Aggregationsbericht ausgelöst. Sie können den Bericht unter chrome://private-aggregation-internals
aufrufen.
Bericht hat den Status Ausstehend können Sie den Bericht auswählen und auf Ausgewählte Berichte senden klicken.
4.2. Aggregierbare Berichte erstellen
Erfassen Sie Ihre aggregierbaren Berichte aus den .well-known
-Endpunkten der entsprechenden API.
- Private Aggregation
[reporting-origin] /.well-known/private-aggregation/report-shared-storage
- Attributionsberichte – Zusammenfassungsbericht
[reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution
In diesem Codelab führen Sie die Berichtssammlung manuell aus. In der Produktionsumgebung müssen Anzeigentechnologie-Anbieter die Berichte programmatisch erfassen und konvertieren.
Kopieren Sie in chrome://private-aggregation-internals
den Textkörper des Berichts. im Endpunkt [reporting-origin]/.well-known/private-aggregation/report-shared-storage
empfangen wurden.
Achten Sie darauf, dass im Report Body (Berichtstext) der aggregation_coordinator_origin
https://publickeyservice.msmt.aws.privacysandboxservices.com
enthält. Das bedeutet, dass es sich bei dem Bericht um einen in AWS aggregierten Bericht handelt.
Fügen Sie den Berichttext für das JSON-Format ein. in einer JSON-Datei. In diesem Beispiel verwenden Sie vim. Sie können aber einen 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 haben das JSON-Format und müssen in das AVRO-Berichtsformat konvertiert werden. Wenn Sie den JSON-Bericht haben, rufen Sie den Berichtsordner auf und verwenden Sie aggregatable_report_converter.jar
, um den Debug-Bericht 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 der 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 entworfen. In diesem Fall werden die Bucket-Schlüssel jedoch von der Website Privacy Sandbox-Demo erstellt. Da sich die private Aggregation für diese Website im Debug-Modus befindet, kannst du die debug_cleartext_payload
aus dem Berichtstext verwenden um den Bucket-Schlüssel abzurufen.
Kopieren Sie die debug_cleartext_payload
aus dem Berichtstext.
Öffnen Sie goo.gle/ags-payload-decoder und fügen Sie debug_cleartext_payload
in das Feld INPUT ein. und klicke auf Decodieren.
Die Seite gibt den Dezimalwert des Bucket-Schlüssels zurück. Hier sehen Sie ein Beispiel für einen Bucket-Schlüssel.
Nachdem Sie 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, verschieben Sie die Berichte und die Ausgabedomain in die S3-Gruppen für die Berichterstellung.
Wenn Sie die AWS-Befehlszeile in Ihrer lokalen Umgebung eingerichtet haben, kopieren Sie die Berichte mit den folgenden Befehlen in den entsprechenden S3-Bucket und Berichtsordner.
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 Zusammenfassungsdienstes
Von terraform apply
werden create_job_endpoint
, get_job_endpoint
und frontend_api_id
zurückgegeben. Kopieren Sie den frontend_api_id
und fügen Sie ihn in die globale Postman-Variable frontend_api_id
ein, die Sie im Abschnitt 1.9 für die Voraussetzungen eingerichtet haben.
Schritt 5: Nutzung des Aggregationsdienstes: Verwenden Sie die Aggregation Service API, um zusammenfassende Berichte zu erstellen und die zusammenfassenden Berichte zu überprüfen.
Schritt 5.1: Mit dem Endpunkt „createJob“ ein Batch-Verfahren ausführen
Schritt 5.2: getJob-Endpunkt zum Abrufen des Batchstatus verwenden
Schritt 5.3: Überprüfen des Zusammenfassungsberichts
5.1. Mit dem Endpunkt createJob
ein Batch-Verfahren ausführen
Öffnen Sie in Postman die Privacy Sandbox. und wählen Sie createJob aus.
Wählen Sie Text aus. und wählen Sie 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": "<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"
}
}
Sobald Sie auf Senden klicken, wird der Job mit job_request_id
erstellt. Sie sollten eine HTTP 202-Antwort erhalten, sobald die Anfrage vom Zusammenfassungsdienst akzeptiert wurde. Andere mögliche Rückgabecodes finden Sie unter HTTP-Antwortcodes.
5.2. getJob-Endpunkt zum Abrufen des Batchstatus verwenden
Mit dem Endpunkt getJob
können Sie den Status der Jobanfrage prüfen. Wählen Sie getJob aus. in der Privacy Sandbox .
Aktualisieren Sie unter Params den Wert von job_request_id in den job_request_id
, der 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
(wenn bei dem Job ein Fehler aufgetreten ist).
Da sich die Berichtswebsite des generierten Demoberichts von der Website für die Einrichtung unter Ihrer AWS-ID unterscheidet, erhalten Sie möglicherweise eine Antwort mit PRIVACY_BUDGET_AUTHORIZATION_ERROR
return_code. Dies ist normal, da die Berichte Die Website des Berichtsquelle stimmt nicht mit der für die AWS-ID eingerichteten Website für die Berichterstellung überein.
{
"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. Überprüfen des Zusammenfassungsberichts
Sobald Sie den Zusammenfassungsbericht im S3-Ausgabe-Bucket erhalten haben, können Sie ihn 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 deine createJob
-Anfrage debug_run
als true
enthält, erhältst du den zusammenfassenden Bericht im Fehlerbehebungsordner, der sich im output_data_blob_prefix
befindet. Der Bericht ist im AVRO-Format 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 sieht in etwa so aus:
Die Annotationen enthalten auch 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.