Mit Aggregation Service in AWS arbeiten

1. Vorbereitung

Für dieses Codelab sind einige Voraussetzungen erforderlich. Jede Anforderung ist entsprechend gekennzeichnet, ob sie für „Lokale Tests“ oder „Aggregationsdienst“ erforderlich ist.

1.1. Lokales Testtool herunterladen (lokales Testen)

Für lokale Tests muss das Tool zum lokalen Testen heruntergeladen werden. Das Tool generiert Zusammenfassungsberichte aus den unverschlüsselten Debugberichten.

Das Tool für lokale Tests kann in den Lambda-JAR-Archiven auf GitHub heruntergeladen werden. Er sollte LocalTestingTool_{version}.jar heißen.

1.2. Prüfen, ob JAVA JRE installiert ist (Local Testing and Aggregation Service)

Öffnen Sie das Terminal und prüfen Sie mit java --version, ob Java oder openJDK auf Ihrem Computer installiert ist.

java jre-version mit java\n-version prüfen

Wenn es nicht installiert ist, können Sie es von der Java-Website oder der OpenJDK-Website herunterladen und installieren.

1.3. Aggregierbaren Berichtskonverter (lokaler Test- und Aggregationsdienst) herunterladen

Eine Kopie des Aggregationstools für Berichte finden Sie im GitHub-Repository für Privacy Sandbox-Demos.

1.4 APIs für den Datenschutz bei Anzeigen (lokaler Test- und Aggregationsdienst) aktivieren

Rufen Sie in Ihrem Browser chrome://settings/adPrivacy auf und aktivieren Sie alle APIs für den Datenschutz bei Werbung.

Drittanbieter-Cookies müssen aktiviert sein.

Klicken Sie in Ihrem Browser auf chrome://settings/cookies und wählen Sie Drittanbieter-Cookies im Inkognitomodus blockieren aus.

chrome-einstellung für drittanbieter-cookies

1.5 Web- und Android-Registrierung (Aggregationsdienst)

Wenn Sie Privacy Sandbox APIs in einer Produktionsumgebung verwenden möchten, müssen Sie sowohl für Chrome als auch für Android die Registrierung und Attestierung durchlaufen.

Für lokale Tests kann die Registrierung mit einem Chrome-Flag und einem Befehlszeilenschalter 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 Demo-Website verwenden, ist keine Aktualisierung erforderlich.

privacy sandbox enrollment override chromeflag

1.6 Einrichtung des Aggregationsdienstes (Aggregation Service)

Für den Aggregationsdienst ist ein Onboarding bei Koordinatoren erforderlich, damit Sie den Dienst nutzen können. Füllen Sie das Onboarding-Formular für den Aggregationsdienst aus. Geben Sie dazu die Adresse Ihrer Website für die Berichte, Ihre AWS-Konto-ID und weitere Informationen an.

1.7. Cloud-Anbieter (Aggregationsdienst)

Für den Aggregationsdienst ist die Verwendung einer vertrauenswürdigen Ausführungsumgebung erforderlich, die eine Cloud-Umgebung nutzt. 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. Sie benötigen ein AWS-Konto. Folgen Sie der Anleitung zur Installation und Aktualisierung der AWS-Befehlszeile, um Ihre AWS-Befehlszeilen-Umgebung einzurichten.

Wenn Sie die AWS-Befehlszeile noch nicht verwendet haben, können Sie sie mithilfe der Anleitung zur Befehlszeilenkonfiguration konfigurieren.

1.7.1. AWS S3-Bucket erstellen

Erstellen Sie einen AWS S3-Bucket, um den Terraform-Zustand zu speichern, und einen weiteren S3-Bucket, um Berichte und Zusammenfassungsberichte zu speichern. Sie können den angegebenen Befehlszeilenbefehl 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. Damit werden die auf AWS erstellten createJob- und getJob-API-Endpunkte aufgerufen.

1.7.3. AWS-Nutzer- und ‑Gruppenberechtigungen

Wenn Sie den Aggregations-Dienst auf AWS bereitstellen möchten, 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 volle Berechtigungen bei der Bereitstellung zu erhalten.

1.8. Terraform (Aggregationsdienst)

In diesem Codelab wird der Aggregationsdienst mit Terraform bereitgestellt. Achten Sie darauf, dass 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 im Pfad verfügbar ist.

terraform -v

1.9. Postman (für Aggregationsdienst AWS)

Verwenden Sie für dieses Codelab Postman zur Anfrageverwaltung.

Klicken Sie auf Workspaces und dann auf Create Workspace (Arbeitsbereich erstellen), um einen Arbeitsbereich zu erstellen.

postmanworkspace

Wählen Sie „Leere Arbeitsfläche“ aus, klicken Sie auf „Weiter“ und geben Sie den Namen „Privacy Sandbox“ ein. Wählen Sie Persönlich aus und klicken Sie auf Erstellen.

Laden Sie die JSON-Konfiguration und die Datei für die globale Umgebung des vorab konfigurierten Arbeitsbereichs herunter.

Importieren Sie die JSON-Dateien über die Schaltfläche Importieren in Mein Arbeitsbereich.

Postman-JSON-Dateien importieren

Dadurch wird die Privacy Sandbox-Sammlung zusammen mit den createJob- und getJob-HTTP-Anfragen für Sie erstellt.

postman importedcollection

Aktualisieren Sie den AWS-Zugriffsschlüssel und den geheimen Schlüssel über die Umgebungsübersicht.

Postman-Umgebung – Schnellübersicht

Klicken Sie auf Bearbeiten und aktualisieren Sie den „Aktuellen Wert“ sowohl für access_key als auch für secret_key. frontend_api_id wird in Abschnitt 3.1.4 dieses Dokuments bereitgestellt. Wir empfehlen die Verwendung der Region „us-east-1“. Wenn Sie die Bereitstellung jedoch in einer anderen Region vornehmen möchten, müssen Sie das veröffentlichte AMI in Ihr Konto kopieren oder mit den bereitgestellten Scripts selbst ein Image erstellen.

Postman-globale Variablen

postman edit globalvariables

2. Codelab zum lokalen Testen

Sie können das lokale Testtool auf Ihrem Computer verwenden, um die Aggregation durchzuführen und Zusammenfassungsberichte mithilfe der unverschlüsselten Debugberichte zu erstellen.

Codelab-Schritte

Schritt 2.1: Bericht auslösen: Sie können Berichte zur privaten Aggregation auslösen, um sie abrufen zu können.

Schritt 2.2: Aggregierbaren Debug-Bericht erstellen: Konvertieren Sie den erfassten JSON-Bericht in einen Bericht im AVRO-Format.
Dieser Schritt ähnelt dem, wenn Anzeigentechnologien die Berichte von den API-Berichtsendpunkten abrufen und die JSON-Berichte in Berichte im AVRO-Format konvertieren.

Schritt 2.3: Bucket-Schlüssel aus dem Debug-Bericht analysieren: Bucket-Schlüssel werden von Anbietern von Anzeigentechnologien erstellt. Da die Bucket in diesem Codelab vordefiniert sind, rufen Sie die Bucket-Schlüssel wie angegeben ab.

Schritt 2.4: AVRO-Datei für die Ausgabedomain erstellen: Nachdem die Bucketschlüssel abgerufen wurden, erstellen Sie die AVRO-Datei für die Ausgabedomain.

Schritt 2.5: Zusammenfassungsberichte mit dem Tool für lokale Tests erstellen: Mit dem Tool für lokale Tests können Sie Zusammenfassungsberichte in der lokalen Umgebung erstellen.

Schritt 2.6: Zusammenfassungsbericht prüfen: Sehen Sie sich den vom Tool für lokale Tests erstellten Zusammenfassungsbericht an.

2.1. Triggerbericht

Rufen Sie die Demo-Website für die Privacy Sandbox auf. Dadurch wird ein Bericht zur privaten Aggregation ausgelöst. Sie können den Bericht unter chrome://private-aggregation-internals aufrufen.

chrome private aggregationinternals

Wenn der Status Ihres Berichts Ausstehend ist, können Sie ihn auswählen und auf Ausgewählte Berichte senden klicken.

send private aggregationreport

2.2. Aggregierbaren Debug-Bericht erstellen

Kopiere in chrome://private-aggregation-internals den Report Body, der am Endpunkt [reporting-origin]/.well-known/private-aggregation/report-shared-storage empfangen wurde.

Achten Sie darauf, dass im Berichtskörper die aggregation_coordinator_origin die https://publickeyservice.msmt.aws.privacysandboxservices.com enthält. Das bedeutet, dass der Bericht in AWS aggregiert werden kann.

private aggregationreport

Platzieren Sie den JSON-Berichtstext in einer JSON-Datei. In diesem Beispiel können Sie vim verwenden. Sie können aber auch einen beliebigen anderen Texteditor verwenden.

vim report.json

Fügen Sie den Bericht in report.json ein und speichern Sie die Datei.

JSON-Datei für die Meldung

Rufen Sie dann Ihren Berichtsordner auf und erstellen Sie mit aggregatable_report_converter.jar einen aggregierten Bericht zur Fehlerbehebung. Dadurch wird im aktuellen Verzeichnis ein aggregierbarer Bericht mit dem Namen report.avro 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 beim Batching zwei Dateien erforderlich. 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 erstellt. Die Demo enthält vorab erstellte Beispiel-Bucket-Schlüssel. Da in der Demo der Debug-Modus für die private Aggregation aktiviert ist, können Sie die Debug-Nutzlast im Klartext aus dem Berichtskörper parsen, um den Bucket-Schlüssel abzurufen. In diesem Fall werden die Bucket-Schlüssel jedoch von der Website Privacy Sandbox-Demo erstellt. Da die private Aggregation für diese Website im Debug-Modus ist, können Sie den Bucket-Schlüssel mithilfe von debug_cleartext_payload aus dem Berichtskörper abrufen.

Kopieren Sie die debug_cleartext_payload aus dem Berichtstext.

Klartextnutzlast aus dem Berichtskörper debuggen

Öffnen Sie das Tool Debug payload decoder for Private Aggregation (Debug-Nutzlast-Decoder für die private Aggregation), fügen Sie Ihre debug_cleartext_payload in das Feld INPUT ein und klicken Sie auf Decode (Decodieren).

payloaddecoder

Die Seite gibt den Dezimalwert des Bucket-Schlüssels zurück. Im Folgenden finden Sie ein Beispiel für einen Bucket-Schlüssel.

payload decoderresult

2.4 Ausgabedomain „AVRO“ erstellen

Jetzt haben wir den Bucket-Schlüssel. Kopieren Sie den Dezimalwert des Bucket-Schlüssels. Erstellen Sie 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 Script erstellt die output_domain.avro-Datei im aktuellen Ordner.

2.5 Mit dem Tool für lokale Tests Zusammenfassungsberichte 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 für LocalTestingTool heruntergeladene Version.

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 .

Nach Ausführung des Befehls sollte ein Bildschirm ähnlich dem folgenden angezeigt werden. Danach wird ein Bericht output.avro erstellt.

avrofile des Berichts zur Zusammenfassung lokaler Tests

2.6. Zusammenfassungsbericht ansehen

Der erstellte Zusammenfassungsbericht ist im AVRO-Format. Damit Sie sie lesen können, müssen Sie sie von AVRO in ein JSON-Format konvertieren. Idealerweise sollte die Anzeigentechnologie so programmiert sein, dass AVRO-Berichte wieder in JSON konvertiert werden.

In diesem Codelab verwenden wir das bereitgestellte aggregatable_report_converter.jar-Tool, um den AVRO-Bericht wieder in JSON umzuwandeln.

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

Dies gibt einen Bericht zurück, der in etwa so aussieht: und eine Berichtsdatei output.json, die im selben Verzeichnis erstellt wurde.

Zusammenfassungs-Avro-Datei in JSON konvertiert

Öffnen Sie die JSON-Datei in einem Editor Ihrer Wahl, um den Zusammenfassungsbericht aufzurufen.

3. Bereitstellung des Aggregationsdiensts

So stellen Sie den Aggregationsdienst bereit:

Schritt 3: Bereitstellung des Aggregationsdienstes: Aggregationsdienst bei AWS bereitstellen
Schritt 3.1 Repository des Aggregationsdiensts klonen
Schritt 3.2 Vordefinierte Abhängigkeiten herunterladen
Schritt 3.3 Entwicklungsumgebung erstellen
Schritt 3.4 Aggregationsdienst bereitstellen

3.1. Aggregationsdienst-Repository klonen

Klonen Sie in Ihrer lokalen Umgebung das GitHub-Repository des Aggregationsdiensts.

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

3.2. Vordefinierte Abhängigkeiten herunterladen

Nachdem Sie das Repository des Aggregation Service geklont haben, rufen Sie den Terraform-Ordner und den entsprechenden Cloud-Ordner des Repositorys auf. Wenn cloud_provider AWS ist, fahren Sie mit /terraform/aws fort.

cd <repository_root>/terraform/aws

Führen Sie in /terraform/aws download_prebuilt_dependencies.sh aus.

bash download_prebuilt_dependencies.sh

3.3 Entwicklungsumgebung erstellen

Erstellen Sie eine Entwicklungsumgebung in /terraform/aws/environments. 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

Verschieben Sie sich in den Ordner dev.

cd dev

Aktualisieren Sie die Datei main.tf und drücken Sie i für input, um die Datei zu bearbeiten.

vim main.tf

Entfernen Sie das Kommentarzeichen (#) im roten Feld und aktualisieren Sie die Bucket- und Schlüsselnamen, um den Code zu aktivieren.

Für AWS-main.tf:

AWS-Haupt-tffile

Der Code ohne Kommentare sollte in etwa so aussehen:

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

Speichern Sie die Änderungen und schließen Sie den Editor, indem Sie esc -> :wq! drücken. Dadurch werden die Updates auf 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 im folgenden Bild mit den richtigen AWS-ARN-Parametern, die beim Onboarding des Aggregationsdiensts, in der Umgebung und in der Benachrichtigungs-E-Mail angegeben wurden.

edit dev auto tfvarsfile

Wenn die Updates abgeschlossen sind, drücken Sie esc -> :wq!. Dadurch wird die Datei dev.auto.tfvars gespeichert. Sie sollte in etwa so aussehen wie im folgenden Bild.

dev auto tfvarsfile aktualisiert

3.4. Aggregationsdienst bereitstellen

Wenn Sie den Aggregations-Dienst bereitstellen möchten, initialisieren Sie Terraform im selben Ordner /terraform/aws/environments/dev.

terraform init

Die Ausgabe sollte in etwa so aussehen:

terraforminit

Nachdem Terraform initialisiert wurde, erstellen Sie den Terraform-Ausführungsplan. Dabei wird die Anzahl der hinzuzufügenden Ressourcen und weitere Informationen zurückgegeben, ähnlich wie im folgenden Bild.

terraform plan

Unten sehen Sie die Zusammenfassung Plan. Bei einer Neubereitstellung sollte die Anzahl der hinzugefügten Ressourcen angezeigt werden, wobei „0“ für „Ändern“ und „0“ für „Löschen“ steht.

terraformplan

Danach können Sie mit der Anwendung von Terraform fortfahren.

terraform apply

Wenn Sie von Terraform aufgefordert werden, die Ausführung der Aktionen zu bestätigen, geben Sie yes als Wert ein.

terraform applyprompt

Sobald terraform apply abgeschlossen ist, werden die folgenden Endpunkte für createJob und getJob zurückgegeben. Außerdem wird frontend_api_id zurückgegeben, das Sie in Abschnitt 1.9 in Postman aktualisieren müssen.

terraform applycomplete

4. Eingabe für Aggregationsdienst erstellen

Erstellen Sie die AVRO-Berichte für das Batching im Aggregationsdienst.

Schritt 4: Eingabe für den Aggregationsdienst erstellen: Erstellen Sie die Berichte für den Aggregationsdienst, die für den Aggregationsdienst in Batches zusammengefasst werden.
Schritt 4.1 Triggerbericht
Schritt 4.2 Berichte erfassen, die zusammengefasst werden können
Schritt 4.3 Berichte in AVRO konvertieren
Schritt 4.4 Ausgabedomain „AVRO“ erstellen

4.1. Triggerbericht

Rufen Sie die Privacy Sandbox-Demowebsite auf. Dadurch wird ein Bericht zur privaten Aggregation ausgelöst. Sie können den Bericht unter chrome://private-aggregation-internals aufrufen.

chrome private aggregationinternals

Wenn der Status Ihres Berichts Ausstehend ist, können Sie ihn auswählen und auf Ausgewählte Berichte senden klicken.

send private aggregationreport

4.2. Berichte erfassen, die zusammengefasst werden können

Erfassen Sie Ihre aggregierbaren Berichte über die .well-known-Endpunkte Ihrer 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 Berichterstellung manuell durch. In der Produktion werden die Berichte von den Anzeigentechnologien programmatisch erfasst und konvertiert.

Kopiere in chrome://private-aggregation-internals den Report Body, der am Endpunkt [reporting-origin]/.well-known/private-aggregation/report-shared-storage empfangen wurde.

Achten Sie darauf, dass im Berichtskörper die aggregation_coordinator_origin die https://publickeyservice.msmt.aws.privacysandboxservices.com enthält. Das bedeutet, dass der Bericht in AWS aggregiert werden kann.

private aggregationreport

Platzieren Sie den JSON-Berichtstext in einer JSON-Datei. In diesem Beispiel können Sie vim verwenden. Sie können aber auch einen beliebigen anderen Texteditor verwenden.

vim report.json

Fügen Sie den Bericht in report.json ein und speichern Sie die Datei.

JSON-Datei für die Meldung

4.3. Berichte in AVRO konvertieren

Die von den .well-known-Endpunkten empfangenen Berichte sind im JSON-Format und müssen in das AVRO-Berichtsformat konvertiert werden. Rufen Sie den Berichtsordner auf und erstellen Sie mit aggregatable_report_converter.jar einen aggregierten Bericht zur Fehlerbehebung. Dadurch wird im aktuellen Verzeichnis ein aggregierbarer Bericht mit dem Namen report.avro erstellt.

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

4.4. Ausgabedomain „AVRO“ 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. In diesem Fall werden die Bucket-Schlüssel jedoch von der Website Privacy Sandbox-Demo erstellt. Da die private Aggregation für diese Website im Debug-Modus ist, können Sie den Bucket-Schlüssel mithilfe von debug_cleartext_payload aus dem Berichtskörper abrufen.

Kopieren Sie die debug_cleartext_payload aus dem Berichtstext.

Klartextnutzlast aus dem Berichtskörper debuggen

Öffnen Sie goo.gle/ags-payload-decoder, fügen Sie Ihre debug_cleartext_payload in das Feld INPUT ein und klicken Sie auf Decode.

payloaddecoder

Die Seite gibt den Dezimalwert des Bucket-Schlüssels zurück. Im Folgenden finden Sie ein Beispiel für einen Bucket-Schlüssel.

payload decoderresult

Nachdem wir den Bucket-Schlüssel haben, können wir die 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 Script erstellt die output_domain.avro-Datei im aktuellen Ordner.

4.5. Berichte in den AWS-Bucket verschieben

Nachdem die AVRO-Berichte (siehe Abschnitt 3.2.3) und die Ausgabedomain (siehe Abschnitt 3.2.4) erstellt wurden, verschieben Sie die Berichte und die Ausgabedomain in die S3-Buckets für die Berichterstellung.

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 den 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 Aggregationsdiensts

Über die terraform apply werden die create_job_endpoint, get_job_endpoint und frontend_api_id zurückgegeben. Kopieren Sie frontend_api_id und fügen Sie es in die globale Postman-Variable frontend_api_id ein, die Sie im Abschnitt mit den Voraussetzungen (1.9) eingerichtet haben.

Schritt 5: Aggregationsdienst verwenden: Mit der Aggregation Service API können Sie Zusammenfassungsberichte erstellen und prüfen.
Schritt 5.1 Mit dem Endpunkt „createJob“ Jobs in Batches ausführen
Schritt 5.2 Batchstatus mit dem Endpunkt „getJob“ abrufen
Schritt 5.3 Zusammenfassungsbericht prüfen

5.1. createJob-Endpunkt für Batches 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 Ihrer Anfrage zu platzieren.

Postman createJob requestbody

Das createJob-Nutzlastschema ist auf github verfügbar und sieht in etwa so aus: Ersetzen Sie die <> 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"
  }
}

Wenn 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.

postman createJob requeststatus

5.2. Batch-Status mit dem Endpunkt „getJob“ abrufen

Sie können den Status der Jobanfrage mit dem Endpunkt getJob prüfen. Wählen Sie in der Sammlung Privacy Sandbox die Option getJob aus.

Aktualisieren Sie unter Params den Wert „job_request_id“ auf die job_request_id, die in der createJob-Anfrage gesendet wurde.

postman getJobrequest

Das Ergebnis der getJob sollte den Status Ihrer Jobanfrage mit dem HTTP-Status 200 zurückgeben. Der Body der Anfrage enthält die erforderlichen Informationen wie job_status, return_message und error_messages (falls der Job einen Fehler verursacht hat).

postman getJob requeststatus

Da sich die Website für den generierten Demobericht von der Website unterscheidet, die Sie mit Ihrer AWS-ID verknüpft haben, erhalten Sie möglicherweise eine Antwort mit dem Rückgabecode PRIVACY_BUDGET_AUTHORIZATION_ERROR. Das ist normal, da die Website der Berichtsquelle nicht mit der Website für die Berichterstellung übereinstimmt, die für die AWS-ID eingerichtet wurde.

{
    "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. Zusammenfassungsbericht prüfen

Sobald Sie den Zusammenfassungsbericht in Ihrem Ausgabe-S3-Bucket erhalten haben, können Sie ihn in Ihre lokale Umgebung herunterladen. Zusammenfassungsberichte sind im AVRO-Format und können wieder in JSON umgewandelt werden. Sie können aggregatable_report_converter.jar mit dem folgenden Befehl verwenden, um den Bericht zu lesen.

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

Dadurch wird ein JSON mit aggregierten Werten für jeden Bucket-Schlüssel zurückgegeben, der in etwa so aussieht wie in der Abbildung unten.

summaryreport

Wenn Ihre createJob-Anfrage debug_run als true enthält, können Sie den Zusammenfassungsbericht im Debug-Ordner im output_data_blob_prefix erhalten. Der Bericht ist im AVRO-Format und kann mit dem vorherigen Befehl in JSON umgewandelt werden.

Der Bericht enthält den Bucket-Schlüssel, den fehlerfreien Messwert und den Fehler, der dem fehlerfreien Messwert hinzugefügt wird, um den zusammengefassten Bericht zu erstellen. Der Bericht sieht in etwa so aus:

debug summaryreport

Die Anmerkungen enthalten außerdem in_reports und in_domain, was Folgendes 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.