Trabaja con el servicio de agregación en AWS

1. Requisitos previos

Para realizar este codelab, se requieren algunos requisitos previos. Cada requisito se marca según corresponda si es necesario para las "Pruebas locales" o el "Servicio de agregación".

1.1. Descarga la herramienta de pruebas locales (Local Testing)

Las pruebas locales requerirán la descarga de la herramienta de pruebas locales. La herramienta generará informes resumidos a partir de los informes de depuración sin encriptar.

La herramienta de pruebas locales está disponible para su descarga en los archivos JAR de Lambda en GitHub. Debería llamarse LocalTestingTool_{version}.jar.

1.2. Verifica que esté instalado el JRE de JAVA (servicio de pruebas locales y agregación)

Abre "Terminal" y usa java --version para verificar si tu máquina tiene instalado Java o openJDK.

Comprobación de la versión de JRE de Java con "java --version". Verifica la versión de JRE de Java con "java --version".

Si no está instalado, puedes descargarlo e instalarlo desde el sitio de Java o el sitio de openJDK.

1.3. Descarga el convertidor de informes agregables (pruebas locales y servicio de agregación)

Puedes descargar una copia del convertidor de informes agregables desde el repositorio de GitHub de las demostraciones de Privacy Sandbox.

1.4. Habilita las APIs de Ad Privacy (pruebas locales y servicio de agregación)

En tu navegador, ve a chrome://settings/adPrivacy y habilita todas las APIs de Ad Privacy.

Verifica que las cookies de terceros estén habilitadas.

En tu navegador, ve a chrome://settings/cookies y selecciona "Bloquear cookies de terceros en el modo Incógnito".

Es el parámetro de configuración de cookies de terceros de Chrome. Parámetro de configuración de cookies de terceros de Chrome.

1.5. Inscripción en la Web y Android (servicio de agregación)

Para usar las APIs de Privacy Sandbox en un entorno de producción, asegúrate de haber completado la inscripción y la certificación para Chrome y Android.

Para realizar pruebas locales, la inscripción se puede inhabilitar con una marca de Chrome y un parámetro de CLI.

Para usar la marca de Chrome en nuestra demostración, ve a chrome://flags/#privacy-sandbox-enrollment-overrides y actualiza la anulación con tu sitio. Si usarás nuestro sitio de demostración, no se requiere ninguna actualización.

Es una marca de Chrome que anula la inscripción en Privacy Sandbox. Es una marca de Chrome para anular la inscripción en Privacy Sandbox.

1.6. Incorporación del Servicio de agregación (Servicio de agregación)

El Servicio de agregación requiere la incorporación a los coordinadores para poder usar el servicio. Completa el formulario de incorporación del servicio de agregación proporcionando la dirección de tu sitio de informes, el ID de la cuenta de AWS y otra información.

1.7. Proveedor de servicios en la nube (servicio de agregación)

El Servicio de agregación requiere el uso de un entorno de ejecución confiable que utilice un entorno de nube. El servicio de agregación es compatible con Amazon Web Services (AWS) y Google Cloud (GCP). En este codelab, solo se abarcará la integración de AWS.

AWS proporciona un entorno de ejecución confiable llamado Nitro Enclaves. Verifica que tengas una cuenta de AWS y sigue las instrucciones de instalación y actualización de la CLI de AWS para configurar tu entorno de la CLI de AWS.

Si tu CLI de AWS es nueva, puedes configurarla siguiendo las instrucciones de configuración de la CLI.

1.7.1. Crea un bucket de AWS S3

Crea un bucket de AWS S3 para almacenar el estado de Terraform y otro bucket de S3 para almacenar tus informes y resúmenes. Puedes usar el comando de la CLI proporcionado. Reemplaza el campo en <> por las variables adecuadas.

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. Crea una clave de acceso de usuario

Crea claves de acceso de usuario con la guía de AWS. Se usará para llamar a los extremos de API createJob y getJob creados en AWS.

1.7.3. Permisos de usuarios y grupos de AWS

Para implementar el Servicio de agregación en AWS, deberás otorgar ciertos permisos al usuario que se use para implementar el servicio. Para este Codelab, verifica que el usuario tenga acceso de administrador para asegurarte de que tenga permisos completos en la implementación.

1.8. Terraform (servicio de agregación)

En este codelab, se usa Terraform para implementar el Servicio de agregación. Verifica que el objeto binario de Terraform esté instalado en tu entorno local.

Descarga el objeto binario de Terraform en tu entorno local.

Una vez que se descargue el objeto binario de Terraform, extrae el archivo y mueve el objeto binario de Terraform a /usr/local/bin.

cp <directory>/terraform /usr/local/bin

Verifica que Terraform esté disponible en classpath.

terraform -v

1.9. Postman (para el servicio de agregación de AWS)

En este codelab, usa Postman para administrar las solicitudes.

Para crear un espacio de trabajo, ve al elemento de navegación superior "Espacios de trabajo" y selecciona "Crear espacio de trabajo".

Espacio de trabajo de Postman Espacio de trabajo de Postman

Selecciona "Espacio de trabajo en blanco", haz clic en Siguiente y asígnale el nombre "Privacy Sandbox". Selecciona “Personal” y haz clic en “Crear”.

Descarga los archivos de configuración JSON y entorno global del espacio de trabajo preconfigurado.

Importa los archivos JSON a "Mi espacio de trabajo" con el botón "Importar".

Importa archivos JSON de Postman. Importa archivos JSON de Postman.

Esto creará la colección de Privacy Sandbox junto con las solicitudes HTTP createJob y getJob.

Colección importada de Postman. Colección importada de Postman.

Actualiza la "Clave de acceso" y la "Clave secreta" de AWS a través de "Revisión rápida del entorno".

Un vistazo rápido al entorno de Postman. Un vistazo rápido al entorno de Postman.

Haz clic en "Editar" y actualiza el "Valor actual" de "access_key" y "secret_key". Ten en cuenta que frontend_api_id se proporcionará en la sección 3.1.4 de este documento. Además, te recomendamos que uses la región us-east-1. Sin embargo, si deseas realizar la implementación en otra región, verifica que hayas copiado la AMI lanzada en tu cuenta o realiza una compilación propia con las secuencias de comandos proporcionadas.

Variables globales de Postman Variables globales de Postman. Edición de variables globales en Postman Edita variables globales de Postman.

2. Codelab de Local Testing

Puedes usar la herramienta de pruebas locales en tu máquina para realizar la agregación y generar informes de resumen con los informes de depuración sin encriptar.

Pasos del codelab

Paso 2.1: Informe de activación: Activa la generación de informes de Private Aggregation para poder recopilar el informe.

Paso 2.2: Crea un informe agregable de depuración: Convierte el informe JSON recopilado en un informe con formato AVRO.
Este paso será similar a cuando las tecnologías publicitarias recopilan los informes de los extremos de informes de la API y convierten los informes JSON en informes con formato AVRO.

Paso 2.3: Analiza la clave del bucket del informe de depuración: Las claves del bucket están diseñadas por las plataformas de tecnología publicitaria. En este codelab, como los buckets están predefinidos, recupera las claves de bucket tal como se proporcionan.

Paso 2.4. Crea el archivo AVRO del dominio de salida: Una vez que se recuperan las claves del bucket, crea el archivo AVRO del dominio de salida.

Paso 2.5: Crea informes de resumen con la Herramienta de pruebas locales: Usa la Herramienta de pruebas locales para crear informes de resumen en el entorno local.

Paso 2.6. Revisa el informe de resumen: Revisa el informe de resumen que crea la herramienta de prueba local.

2.1. Informe de activador

Ve al sitio de la demostración de Privacy Sandbox. Esto activa un informe de agregación privada. Puedes ver el informe en chrome://private-aggregation-internals.

Es la página interna de la agregación privada de Chrome. Registros internos de la agregación privada de Chrome.

Si tu informe tiene el estado "Pendiente", puedes seleccionarlo y hacer clic en "Enviar informes seleccionados".

Envía un informe de agregación privada. Envía un informe de agregación privado.

2.2. Crea un informe agregable de depuración

En chrome://private-aggregation-internals, copia el "Cuerpo del informe" que se recibió en el extremo [reporting-origin]/.well-known/private-aggregation/report-shared-storage.

Asegúrate de que, en el "Cuerpo del informe", aggregation_coordinator_origin contenga https://publickeyservice.msmt.aws.privacysandboxservices.com, lo que significa que el informe es un informe agregable de AWS.

Es un informe de agregación privada. Informe de agregación privada.

Coloca el "Cuerpo del informe" JSON en un archivo JSON. En este ejemplo, puedes usar vim. Sin embargo, puedes usar el editor de texto que quieras.

vim report.json

Pega el informe en report.json y guarda el archivo.

Es el archivo JSON del informe. Archivo JSON del informe.

Una vez que lo tengas, navega a la carpeta de tu informe y usa aggregatable_report_converter.jar para crear el informe agregable de depuración. Esto crea un informe agregable llamado report.avro en tu directorio actual.

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

2.3. Analiza la clave del bucket en el informe de depuración

El Servicio de agregación requiere dos archivos cuando se procesa por lotes. Es el informe agregable y el archivo de dominio de salida. El archivo de dominio de salida contiene las claves que deseas recuperar de los informes agregables. Para crear el archivo output_domain.avro, necesitas las claves del bucket que se pueden recuperar de los informes.

El llamador de la API diseña las claves de bucket, y la demostración contiene claves de bucket de ejemplo creadas previamente. Dado que la demostración habilitó el modo de depuración para la Agregación privada, puedes analizar la carga útil de texto no encriptado de depuración desde el "Cuerpo del informe" para recuperar la clave del bucket. Sin embargo, en este caso, el sitio de demostración de Privacy Sandbox crea las claves de bucket. Dado que la agregación privada para este sitio está en modo de depuración, puedes usar debug_cleartext_payload del "Cuerpo del informe" para obtener la clave del bucket.

Copia el debug_cleartext_payload del cuerpo del informe.

Depura la carga útil de texto sin formato del cuerpo del informe. Depura la carga útil de texto sin formato del cuerpo del informe.

Abre la herramienta Debug payload decoder for Private Aggregation, pega tu debug_cleartext_payloaden el cuadro "INPUT" y haz clic en "Decode".

Es un decodificador de carga útil. Decodificador de carga útil.

La página devuelve el valor decimal de la clave del bucket. A continuación, se muestra una clave de bucket de ejemplo.

Es el resultado del decodificador de carga útil. Es el resultado del decodificador de carga útil.

2.4. Crea el AVRO del dominio de salida

Ahora que tenemos la clave del bucket, copia el valor decimal de la clave del bucket. Continúa para crear el output_domain.avro con la clave del bucket. Verifica que hayas reemplazado por la clave del bucket que recuperaste.

java -jar aggregatable_report_converter.jar \
 --request_type createDomainAvro \
 --bucket_key <bucket key>

La secuencia de comandos crea el archivo output_domain.avro en tu carpeta actual.

2.5. Crea informes de resumen con la Herramienta de pruebas locales

Usaremos LocalTestingTool_{version}.jar, que se descargó en la sección 1.1, para crear los informes de resumen. Usa el siguiente comando. Debes reemplazar LocalTestingTool_{version}.jar por la versión descargada para LocalTestingTool.

Ejecuta el siguiente comando para generar un informe de resumen en tu entorno de desarrollo local:

java -jar LocalTestingTool_{version}.jar \
--input_data_avro_file report.avro \
--domain_avro_file output_domain.avro \
--output_directory .

Deberías ver algo similar a la siguiente imagen una vez que se ejecute el comando. Una vez que se complete este proceso, se creará un informe output.avro.

Archivo Avro del informe de resumen de pruebas locales. Archivo Avro del informe de resumen de pruebas locales.

2.6. Revisa el informe de resumen

El informe de resumen que se crea está en formato AVRO. Para poder leerlo, debes convertirlo de AVRO a un formato JSON. Lo ideal sería que la tecnología publicitaria codificara para convertir los informes de AVRO nuevamente a JSON.

En nuestro codelab, usaremos la herramienta aggregatable_report_converter.jar proporcionada para convertir el informe de AVRO de nuevo a JSON.

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

Esto devuelve un informe similar a la siguiente imagen. Junto con un informe output.json creado en el mismo directorio.

Archivo avro de resumen convertido a json. Archivo avro de resumen convertido a json.

Abre el archivo JSON en el editor que prefieras para revisar el informe de resumen.

3. Implementación del servicio de agregación

Para implementar el Servicio de agregación, sigue estos pasos:

Paso 3: Aggregation Service Deployment: Implementa el servicio de agregación en AWS
Paso 3.1. Clona el repositorio del servicio de agregación
Paso 3.2. Descarga las dependencias compiladas previamente
Paso 3.3. Crea un entorno de desarrollo
Paso 3.4. Implementa el servicio de agregación

3.1. Clona el repositorio del servicio de agregación

En tu entorno local, clona el repositorio de GitHub del Servicio de agregación.

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

3.2. Descarga las dependencias precompiladas

Una vez que hayas clonado el repositorio de Aggregation Service, ve a la carpeta de Terraform del repositorio y a la carpeta de Cloud correspondiente. Si tu cloud_provider es AWS, puedes continuar con /terraform/aws.

cd <repository_root>/terraform/aws

En /terraform/aws, ejecuta download_prebuilt_dependencies.sh.

bash download_prebuilt_dependencies.sh

3.3. Crea un entorno de desarrollo

Crea un entorno de desarrollo en /terraform/aws/environments. Crea una carpeta llamada dev.

mkdir dev

Copia el contenido de la carpeta demo en la carpeta dev.

cp -R demo/* dev

Ve a tu carpeta dev.

cd dev

Actualiza tu archivo main.tf y presiona i para que input edite el archivo.

vim main.tf

Quita el comentario del código en el cuadro rojo quitando el signo # y actualizando los nombres del bucket y la clave.

Para main.tf de AWS:

Archivo main.tf de AWS. Archivo tf principal de AWS.

El código sin comentarios debería verse de la siguiente manera.

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

Cuando se completen las actualizaciones, guárdalas y sal del editor presionando esc -> :wq!. Esto guarda las actualizaciones en main.tf.

A continuación, cambia el nombre de example.auto.tfvars a dev.auto.tfvars.

mv example.auto.tfvars dev.auto.tfvars

Actualiza dev.auto.tfvars y presiona i para que input edite el archivo.

vim dev.auto.tfvars

Actualiza los campos del cuadro rojo de la siguiente imagen con los parámetros correctos del ARN de AWS que se proporcionan durante la incorporación al Servicio de agregación, el entorno y el correo electrónico de notificación.

Edita el archivo tfvars automático de desarrollo. Edita el archivo tfvars automático para desarrollo.

Cuando terminen las actualizaciones, presiona esc -> :wq!. Esto guarda el archivo dev.auto.tfvars, que debería verse similar a la siguiente imagen.

Se actualizó el archivo dev auto tfvars. Se actualizó el archivo tfvars automático para desarrolladores.

3.4. Implementa el servicio de agregación

Para implementar el servicio de agregación, inicializa Terraform en la misma carpeta /terraform/aws/environments/dev.

terraform init

Debería mostrar algo similar a la siguiente imagen:

Ejecuta terraform init. Ejecuta terraform init.

Una vez que se inicialice Terraform, crea el plan de ejecución de Terraform. Devuelve la cantidad de recursos que se agregarán y otra información adicional similar a la siguiente imagen.

terraform plan

En el siguiente ejemplo, puedes ver el resumen del "Plan". Si se trata de una implementación nueva, deberías ver la cantidad de recursos que se agregarán con 0 para cambiar y 0 para destruir.

Plan de Terraform. Plan de Terraform.

Una vez que completes este paso, podrás aplicar Terraform.

terraform apply

Cuando se te solicite que confirmes la realización de las acciones por parte de Terraform, ingresa un yes en el valor.

Mensaje de Terraform apply. Mensaje de Terraform apply.

Una vez que finaliza terraform apply, se muestran los siguientes extremos para createJob y getJob. También se devuelve el frontend_api_id que debes actualizar en Postman en la sección 1.9.

Se completó la aplicación de Terraform. Se completó la aplicación de Terraform.

4. Creación de entradas del servicio de agregación

Continúa para crear los informes AVRO para el procesamiento por lotes en el Servicio de agregación.

Paso 4: Creación de entradas del servicio de agregación: Crea los informes del servicio de agregación que se procesan por lotes para el servicio de agregación.
Paso 4.1. Informe de activador
Paso 4.2. Recopila informes agregables.
Paso 4.3. Convierte informes a AVRO
Paso 4.4: Crea el AVRO del dominio de salida

4.1. Informe de activador

Ve al sitio de la demostración de Privacy Sandbox. Esto activa un informe de agregación privada. Puedes ver el informe en chrome://private-aggregation-internals.

Es la página interna de la agregación privada de Chrome. Registros internos de la agregación privada de Chrome.

Si tu informe tiene el estado "Pendiente", puedes seleccionarlo y hacer clic en "Enviar informes seleccionados". '

Envía un informe de agregación privada. Envía un informe de agregación privado.

4.2. Recopila informes agregables

Recopila tus informes agregables de los extremos de .well-known de la API correspondiente.

  • Private Aggregation
    [reporting-origin] /.well-known/private-aggregation/report-shared-storage
  • Informes de atribución: Informe de resumen
    [reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution

En este codelab, recopilarás el informe de forma manual. En producción, se espera que las tecnologías publicitarias recopilen y conviertan los informes de forma programática.

En chrome://private-aggregation-internals, copia el "Cuerpo del informe" que se recibió en el extremo [reporting-origin]/.well-known/private-aggregation/report-shared-storage.

Asegúrate de que, en el "Cuerpo del informe", aggregation_coordinator_origin contenga https://publickeyservice.msmt.aws.privacysandboxservices.com, lo que significa que el informe es un informe agregable de AWS.

Es un informe de agregación privada. Informe de agregación privada.

Coloca el "Cuerpo del informe" JSON en un archivo JSON. En este ejemplo, puedes usar vim. Sin embargo, puedes usar el editor de texto que quieras.

vim report.json

Pega el informe en report.json y guarda el archivo.

Es el archivo JSON del informe. Archivo JSON del informe.

4.3. Cómo convertir informes a AVRO

Los informes que se reciben de los extremos de .well-known están en formato JSON y deben convertirse al formato de informe AVRO. Una vez que tengas el informe en formato JSON, navega a la carpeta del informe y usa aggregatable_report_converter.jar para crear el informe agregable de depuración. Esto crea un informe agregable llamado report.avro en tu directorio actual.

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

4.4. Crea el AVRO del dominio de salida

Para crear el archivo output_domain.avro, necesitas las claves del bucket que se pueden recuperar de los informes.

Las claves de discretización están diseñadas por la tecnología publicitaria. Sin embargo, en este caso, la demostración de Privacy Sandbox del sitio crea las claves de discretización. Dado que la agregación privada para este sitio está en modo de depuración, puedes usar debug_cleartext_payload del "Cuerpo del informe" para obtener la clave del bucket.

Copia el debug_cleartext_payload del cuerpo del informe.

Depura la carga útil de texto sin formato del cuerpo del informe. Depura la carga útil de texto sin formato del cuerpo del informe.

Abre goo.gle/ags-payload-decoder, pega tu debug_cleartext_payloaden el cuadro “INPUT” y haz clic en “Decode”.

Es un decodificador de carga útil. Decodificador de carga útil.

La página devuelve el valor decimal de la clave del bucket. A continuación, se muestra una clave de bucket de ejemplo.

Es el resultado del decodificador de carga útil. Es el resultado del decodificador de carga útil.

Ahora que tenemos la clave del bucket, creemos el elemento output_domain.avro. Verifica que hayas reemplazado por la clave del bucket que recuperaste.

java -jar aggregatable_report_converter.jar \
 --request_type createDomainAvro \
 --bucket_key <bucket key>

La secuencia de comandos crea el archivo output_domain.avro en tu carpeta actual.

4.5. Mueve informes al bucket de AWS

Una vez que se creen los informes AVRO (de la sección 3.2.3) y el dominio de salida (de la sección 3.2.4), procede a mover los informes y el dominio de salida a los buckets de informes de S3.

Si tienes configurada la CLI de AWS en tu entorno local, usa los siguientes comandos para copiar los informes en el bucket de S3 y la carpeta de informes correspondientes.

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. Uso del Servicio de agregación

Desde el objeto terraform apply, se te devuelven los objetos create_job_endpoint, get_job_endpoint y frontend_api_id. Copia frontend_api_id y colócalo en la variable global de Postman frontend_api_id que configuraste en la sección de requisitos previos 1.9.

Paso 5. Uso del servicio de agregación: Usa la API del servicio de agregación para crear informes de resumen y revisarlos.
Paso 5.1. Usa el extremo createJob para procesar por lotes
Paso 5.2. Cómo usar el extremo getJob para recuperar el estado del lote
Paso 5.3. Revisa el Informe de resumen

5.1. Usa el extremo createJob para el procesamiento por lotes

En Postman, abre la colección "Privacy Sandbox" y selecciona "createJob".

Selecciona "Cuerpo" y, luego, "sin procesar" para colocar la carga útil de la solicitud.

Cuerpo de la solicitud createJob de Postman Cuerpo de la solicitud createJob de Postman

El esquema de carga útil de createJob está disponible en GitHub y es similar al siguiente. Reemplaza <> por los campos correspondientes.

{
    "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"
    }
}

Una vez que hagas clic en "Enviar", se creará el trabajo con el job_request_id. Deberías recibir una respuesta HTTP 202 una vez que el Servicio de agregación acepte la solicitud. Otros códigos de devolución posibles se pueden encontrar en Códigos de respuesta HTTP

Estado de la solicitud de createJob de Postman Estado de la solicitud createJob de Postman

5.2. Cómo usar el extremo getJob para recuperar el estado del lote

Para verificar el estado de la solicitud de trabajo, puedes usar el extremo getJob. Selecciona "getJob" en la colección "Privacy Sandbox".

En "Params", actualiza el valor de job_request_id al job_request_id que se envió en la solicitud createJob.

Solicitud getJob de Postman Solicitud getJob de Postman

El resultado de getJob debe devolver el estado de tu solicitud de trabajo con un estado HTTP 200. El "Cuerpo" de la solicitud contiene la información necesaria, como job_status, return_message y error_messages (si el trabajo generó un error).

Estado de la solicitud de getJob de Postman postman getJob request status

Dado que el sitio de informes del informe de demostración generado es diferente del sitio incorporado en tu ID de AWS, es posible que recibas una respuesta con el valor PRIVACY_BUDGET_AUTHORIZATION_ERROR de return_code. Esto es normal, ya que el sitio del origen de los informes no coincide con el sitio de informes incorporado para el ID de 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. Revisa el Informe de resumen

Una vez que recibas el informe de resumen en tu bucket de S3 de salida, podrás descargarlo en tu entorno local. Los informes de resumen están en formato AVRO y se pueden volver a convertir a JSON. Puedes usar aggregatable_report_converter.jar para leer tu informe con el siguiente comando.

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

Esto devuelve un JSON de los valores agregados de cada clave de bucket, que se parece a la siguiente imagen.

Es el informe de resumen. Informe de resumen.

Si tu solicitud de createJob incluye debug_run como true, puedes recibir tu informe de resumen en la carpeta de depuración que se encuentra en output_data_blob_prefix. El informe está en formato AVRO y se puede convertir a JSON con el comando anterior.

El informe contiene la clave de discretización, la métrica sin ruido y el ruido que se agrega a la métrica sin ruido para formar el informe de resumen. El informe es similar a la siguiente imagen.

Es el informe de resumen de depuración. Informe de resumen de depuración.

Las anotaciones también contienen in_reports y in_domain, lo que significa lo siguiente:

  • in_reports: La clave de discretización está disponible en los informes agregables.
  • in_domain: La clave del bucket está disponible dentro del archivo AVRO output_domain.