Diagnostica tu entorno (nuevo o actualizado)

Varios factores pueden generar problemas cuando se trabaja con el Servicio de agregación, incluidos los problemas de formato de los informes, los problemas de dominio de salida y los problemas del coordinador. Es importante comprender la fuente del error y los metadatos que contiene para diagnosticar el problema con precisión.

Temas de la guía:

Verifica la configuración de la API de medición del cliente

Después de verificar que tu servidor de origen se registró correctamente, completa los siguientes pasos:

  1. Verifica cómo activas los informes. Confirma que recibes el formato de informe correcto según la API que se usa:

    • API de Attribution Reporting
    • API de Private Aggregation
      • Los informes en la API de Private Aggregation se pueden completar con la función contributeToHistogram. Verifica que estés pasando la clave y el valor del bucket. La clave del bucket debe tener el formato BigInt. (Obtén más información sobre la API de Private Aggregation).
  2. Si activas los informes según lo recomendado, pero el problema persiste, verifica si se observan errores en la consola para desarrolladores de Chrome en las pestañas "Console" y "Network".

Si necesitas más ayuda para solucionar problemas con estas APIs de cliente, consulta nuestra guía de depuración para la API de Attribution Reporting y la API de Private Aggregation + Shared Storage.

Soluciona problemas de la configuración del origen de informes

El servidor de origen de informes es donde declaraste los extremos .well-known correspondientes correctos a los que se enviarán los informes agregables. Verifica que tu servidor de origen de informes implementado se haya inscrito y registrado correctamente.

¿Tu origen de informes recibe informes?

Verifica que tu servidor de origen de informes implementado se haya inscrito y registrado correctamente. Este servidor es donde declaraste los extremos .well-known correspondientes correctos a los que se enviarán los informes agregables.

API de medición del cliente Extremo que coincide con el extremo agregable
Attribution Reporting POST /.well-known/attribution-reporting/report-aggregate-attribution
Private Aggregation + Shared Storage (Combo) POST /.well-known/private-aggregation/report-shared-storage
Private Aggregation + Protected Audience (Combo) POST /.well-known/private-aggregation/report-protected-audience

Después de verificar que tu servidor de origen se registró correctamente, completa los siguientes pasos:

  1. Verifica cómo activas los informes. Confirma que recibes el formato de informe correcto según la API que se usa:

  2. Si activas los informes según lo recomendado, pero el problema persiste, verifica si se observan errores en la consola para desarrolladores de Chrome en las pestañas "Console" y "Network".

Si necesitas más ayuda para solucionar problemas con estas APIs de cliente , continúa con la guía de depuración para la API de Attribution Reporting y la API de Private Aggregation + Shared Storage.

Cómo solucionar problemas relacionados con tus informes agregados

Las APIs de medición del cliente generan informes agregados y los envían a tu origen de informes. Tu extremo de informes debe convertir estos informes al formato AVRO. Si hay problemas con esta conversión o si los informes no están intactos, es posible que veas errores en el Servicio de agregación.

¿Tus informes agregables registran conversiones correctamente?

Verifica que tu extremo de informes (.well-known/…) convierta correctamente el informe JSON agregable proporcionado en AVRO.

Los errores de API que surgirían debido a este problema son los siguientes:

Error DECRYPTION_ERROR
Ejemplo
                "result_info": {
                    "return_code": "REPORTS_WITH_ERRORS_EXCEEDED_THRESHOLD",
                    "return_message": "Aggregation job failed early because the number of reports excluded from aggregation exceeded threshold.",
                    "error_summary": {
                        "error_counts": [
                            {
                                "category": "DECRYPTION_ERROR",
                                "count": 1,
                                "description": "Unable to decrypt the report. This may be caused by: tampered aggregatable report shared info, corrupt encrypted report, or other such issues."
                            },
                            {
                                "category": "NUM_REPORTS_WITH_ERRORS",
                                "count": 1,
                                "description": "Total number of reports that had an error. These reports were not considered in aggregation. See additional error messages for details on specific reasons."
                            }
                        ],
                        "error_messages": []
                    }
                }
            
Cheque Esto puede ocurrir debido a errores de desencriptación, que pueden deberse a que los informes AVRO no se generaron correctamente, ya sean los informes AVRO agregables o el AVRO del dominio de salida. ¿Se generan correctamente los informes AVRO agregables? La carga útil deberá decodificarse en Base64 y convertirse en un array de bytes. Verifica que el informe esté en formato Avro. Además, verifica si el dominio de salida AVRO es correcto. Los buckets se convierten al formato hexadecimal Unicode con caracteres de escape y, luego, a un array de bytes. Si ves más de un recuento de errores, puedes obtener más información sobre ellos en la página de GitHub del servicio de agregación.
Error DECRYPTION_KEY_NOT_FOUND
Ejemplo
                "result_info": {
                    "return_code": "REPORTS_WITH_ERRORS_EXCEEDED_THRESHOLD",
                    "return_message": "Aggregation job failed early because the number of reports excluded from aggregation exceeded threshold.",
                    "error_summary": {
                        "error_counts": [{
                            "category": "DECRYPTION_KEY_NOT_FOUND",
                            "count": 1,
                            "description": "Could not find decryption key on private key endpoint."
                        }, {
                            "category": "NUM_REPORTS_WITH_ERRORS",
                            "count": 1,
                            "description": "Total number of reports that had an error. These reports were not considered in aggregation. See additional error messages for details on specific reasons."
                        }],
                        "error_messages": []
                    }
                }
            
Cheque API de Attribution Reporting

En el caso de la API de Attribution Reporting, este error puede deberse a un problema con el registro del activador. Comprueba que haya registrado su activador en la nube correcta con el campo aggregation_coordinator_origin (instrucciones aquí). También es posible que proporciones informes encriptados con AWS a su implementación del Servicio de agregación en Google Cloud o informes encriptados con Google Cloud a su implementación en AWS. Pídele que valide qué extremo de clave pública se usó para encriptar los informes agregables. En el caso de Google Cloud, el campo `aggregation_coordinator_origin` del informe agregable debe ser https://publickeyservice.msmt.gcp.privacysandboxservices.com. En el caso de AWS, es https://publickeyservice.msmt.aws.privacysandboxservices.com.

API de Private Aggregation

En el caso de la API de Private Aggregation, deberás definir `aggregationCoordinatorOrigin` con el ejemplo de la sección Elección del coordinador de agregación en el documento explicativo de la API de Private Aggregation. Especifica https://publickeyservice.msmt.gcp.privacysandboxservices.com como aggregationCoordinatorOrigin.

Por ejemplo:

                sharedStorage.run('someOperation', {'privateAggregationConfig':
                {'aggregationCoordinatorOrigin': ' https://publickeyservice.msmt.gcp.privacysandboxservices.com'}});

            
Error DECRYPTION_KEY_FETCH_ERROR
Ejemplo
                "result_info": {
                        "return_code": "REPORTS_WITH_ERRORS_EXCEEDED_THRESHOLD",
                        "return_message": "Aggregation job failed early because the number of reports excluded from aggregation exceeded threshold.",
                        "error_summary": {
                            "error_counts": [
                                {
                                    "category": "DECRYPTION_KEY_FETCH_ERROR",
                                    "count": 1,
                                    "description": "Fetching the decryption key for report decryption failed. This can happen using an unapproved aggregation service binary, running the aggregation service binary in debug mode, key corruption or service availability issues."
                                },
                                {
                                    "category": "NUM_REPORTS_WITH_ERRORS",
                                    "count": 1,
                                    "description": "Total number of reports that had an error. These reports were not considered in aggregation. See additional error messages for details on specific reasons."
                                }
                            ]
                        }
                }
            
Cheque En caso de problemas con el modo de depuración o el binario no aprobado, usar el binario correcto solucionará el problema. Sigue las instrucciones que se indican aquí para usar una AMI prediseñada o crea tu propia AMI.

Para verificarlo, completa los siguientes pasos:

  1. Puedes usar la herramienta aggregatable_report_converter para convertir los informes agregables que recopilaste del extremo .well-known a AVRO y crear las claves de dominio de salida. (Nota: Los archivos de dominio de salida deben ser una cadena de bytes big-endian de 16 bytes).

  2. Sigue los pasos del codelab para tu proveedor de nube pública y recopila tus informes de depuración, y ejecuta un trabajo del Servicio de agregación con tus claves de dominio de salida: a. Google Cloud: Sigue los pasos del 3.1.2 al 3.2.3 del Codelab de Google Cloud del servicio de agregación. b. Amazon Web Services: Sigue los pasos del 4.2 al 5.3 del Codelab de AWS del servicio de agregación.

Si se muestra una respuesta SUCCESS, tu conversión funciona correctamente.

¿Tus informes agregables están intactos?

Verifica que tu informe agregado, las claves de dominio de salida y la información compartida estén intactos. Consulta los códigos de ejemplo para convertir informes agregables y crear archivos de dominio si deseas obtener más información.

Los errores de API que puedes ver y que corresponden a este problema son los siguientes:

Error INPUT_DATA_READ_FAILED
Extremo createJob
Cheque ¿El campo input_data_bucket_name, input_data_blob_prefix, output_data_bucket_name y output_data_blob_prefix de la solicitud createJob es correcto? ¿La ubicación de los datos del informe de entrada tiene los informes que se procesarán? ¿Tienes permiso para leer desde la ubicación de almacenamiento de los informes y el dominio de salida?

Para verificarlo, completa los siguientes pasos:

  1. Verifica el informe agregado:

    • Genera informes agregados y usa la herramienta aggregatable_report_converter para convertir el dominio de salida al formato AVRO.
    • Ejecuta una solicitud createJob con este informe agregable y el archivo de dominio de salida.
    • Si se devuelve SUCCESS, significa que el informe agregable está intacto. Si se muestra un error, significa que tienes un problema con tu informe agregable o con el informe y el dominio.
    • En el siguiente paso, verifica el archivo del dominio.
  2. Verifica el archivo de dominio de salida:

    • Genera el archivo de dominio de salida y usa la herramienta aggregatable_report_converter para crear el informe agregable.
    • Ejecuta una solicitud createJob con este informe agregable y el archivo de dominio de salida.
    • Si devuelve SUCCESS, significa que el dominio de salida está intacto y que hay un problema con tu código para crear el informe agregable.
    • Continúa con el siguiente paso para verificar el shared_info.
  3. Verifica la información compartida:

    • Verifica que tengas habilitados los informes de depuración. Los informes con la depuración habilitada tendrán disponible el campo debug_cleartext_payload.
    • Crea un informe de depuración para usarlo con la herramienta de pruebas locales y usa debug_cleartext_payload como carga útil.
    • Ejecuta la herramienta de pruebas locales con tu archivo de dominio. Si es un SUCCESS, significa que se manipuló tu archivo shared_info.

Si sospechas que hay más errores o manipulaciones, recopila el informe agregado en formato JSON, la clave del dominio, el informe agregado AVRO generado y el dominio de salida, y continúa con los próximos pasos.

Inspecciona la nueva versión de la implementación

Verifica que tu versión del Servicio de agregación siga siendo compatible. Una vez que hayas determinado qué versión usas, consulta la lista de versiones del Servicio de agregación y confirma que tu versión no tenga la advertencia de fin de asistencia:This release has reached its end of support on { date }. Las siguientes instrucciones para determinar qué versión implementaste son para las nubes públicas compatibles.

Pasos para Google Cloud

  1. Navega a Compute Engine > Instancias de VM.
  2. Haz clic en la instancia de máquina virtual con -worker- en el nombre.
  3. Busca la sección Custom Metadata y, luego, la clave tee-image-reference.
  4. El valor de tee-image-reference contendrá el número de versión. Por ejemplo, el número de versión de la siguiente ruta de acceso es v2.9.1. Son imágenes prediseñadas que se encuentran en el registro de Artifact Registry de un proyecto de Google Cloud.
    • Nota: Esto es relevante si usas los recursos compilados previamente. De lo contrario, debe coincidir con el nombre y las etiquetas que le asignaste personalmente a tu imagen. (ejemplo: us.docker.pkg.dev/<gcp_project_name>/artifacts:aggregation-service- container-artifacts-worker_mp_go_prod:2.9.1)

Pasos para Amazon Web Services

  1. Navega a Instancias de EC2 en la consola de Amazon Web Services.
  2. Haz clic en la instancia con el nombre aggregation-service-operator-dev-env.
  3. En la página de la instancia, busca Detalles > AMI (Amazon Machine Image).
  4. El nombre de la versión debe incluirse en la ruta de acceso a la imagen. Por ejemplo, el número de versión de la siguiente ruta es v2.9.1.
    • Nota: Esto es relevante si usas los recursos compilados previamente. De lo contrario, debe coincidir con el nombre y las etiquetas que le asignaste personalmente a tu imagen. (ejemplo: aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z)

Próximos pasos

Si no ves una solución para tu problema con el Servicio de agregación, infórmanos al respecto. Para ello, presenta un problema en GitHub o envía el formulario de asistencia técnica.