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
- Cómo solucionar problemas con la configuración del origen de informes
- Cómo solucionar problemas relacionados con tus informes agregados
- Inspecciona la versión de tu implementación
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:
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
- En el caso de la API de Attribution Reporting, verifica que hayas registrado correctamente la fuente (Evento y Resumen). Para realizar el registro del activador (Evento y Resumen), verifica que el JSON que se pasó a
Attribution-Reporting-Register-Triggersea correcto con la herramienta de validación de encabezados. (Más información sobre los informes de resumen de la API de Attribution Reporting)
- En el caso de la API de Attribution Reporting, verifica que hayas registrado correctamente la fuente (Evento y Resumen). Para realizar el registro del activador (Evento y Resumen), verifica que el JSON que se pasó a
- 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 formatoBigInt. (Obtén más información sobre la API de Private Aggregation).
- Los informes en la API de Private Aggregation se pueden completar con la función
- API de Attribution Reporting
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:
Verifica cómo activas los informes. Confirma que recibes el formato de informe correcto según la API que se usa:
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 AggregationEn 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 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:
Puedes usar la herramienta
aggregatable_report_converterpara 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).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:
Verifica el informe agregado:
- Genera informes agregados y usa la herramienta
aggregatable_report_converterpara convertir el dominio de salida al formatoAVRO. - Ejecuta una solicitud
createJobcon 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.
- Genera informes agregados y usa la herramienta
Verifica el archivo de dominio de salida:
- Genera el archivo de dominio de salida y usa la herramienta
aggregatable_report_converterpara crear el informe agregable. - Ejecuta una solicitud
createJobcon 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.
- Genera el archivo de dominio de salida y usa la herramienta
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_payloadcomo carga útil. - Ejecuta la herramienta de pruebas locales con tu archivo de dominio. Si es un
SUCCESS, significa que se manipuló tu archivoshared_info.
- Verifica que tengas habilitados los informes de depuración. Los informes con la depuración habilitada tendrán disponible el campo
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
- Navega a Compute Engine > Instancias de VM.
- Haz clic en la instancia de máquina virtual con
-worker-en el nombre. - Busca la sección
Custom Metadatay, luego, la clavetee-image-reference.- Nota: Cada VM aprovisionada en Google Cloud por Terraform debe tener estos metadatos (metadatos de
tee-image-referenceen el módulo de trabajador).
- Nota: Cada VM aprovisionada en Google Cloud por Terraform debe tener estos metadatos (metadatos de
- El valor de
tee-image-referencecontendrá el número de versión. Por ejemplo, el número de versión de la siguiente ruta de acceso esv2.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)
- 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:
Pasos para Amazon Web Services
- Navega a Instancias de EC2 en la consola de Amazon Web Services.
- Haz clic en la instancia con el nombre
aggregation-service-operator-dev-env. - En la página de la instancia, busca Detalles > AMI (Amazon Machine Image).
- 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)
- 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:
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.