Varios factores pueden generar problemas mientras se trabaja con el servicio de agregación, como el 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:
- Cómo verificar la configuración de la API de medición del cliente
- Cómo solucionar problemas de configuración del origen de los informes
- Cómo solucionar problemas de 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 haya registrado correctamente, completa los siguientes pasos:
Verifica cómo activas los informes. Confirma que estás recibiendo 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, asegúrate de haber registrado correctamente la fuente (Evento y Resumen). Para realizar el registro del activador (Evento y Resumen), asegúrate de que el JSON que se pasa a
Attribution-Reporting-Register-Trigger
sea correcto con la herramienta de validación de encabezados. (Obtén más información sobre los informes de resumen de la API de Attribution Reporting).
- En el caso de la API de Attribution Reporting, asegúrate de haber registrado correctamente la fuente (Evento y Resumen). Para realizar el registro del activador (Evento y Resumen), asegúrate de que el JSON que se pasa a
- API de Private Aggregation
- Los informes de la API de Private Aggregation se pueden completar con la función
contributeToHistogram
. Asegúrate de pasar la clave y el valor del bucket. La clave del bucket debe estar en formatoBigInt
. (Obtén más información sobre la API de Private Aggregation).
- Los informes de la API de Private Aggregation se pueden completar con la función
- API de Attribution Reporting
Si activas los informes como se recomienda, pero el problema persiste, verifica si se observan errores en la consola de Chrome Developer Console, en las pestañas "Console" y "Network".
Si necesitas más asistencia 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 configuración del origen de informes
El servidor de origen de los informes es donde declaraste los extremos .well-known
correctos a los que se enviarán los informes agregables. Verifica que el servidor de origen de informes implementado se haya inscrito y registrado correctamente.
¿Tu origen de informes recibe informes?
Verifica que el servidor de origen de informes implementado se haya inscrito y registrado correctamente. En este servidor, declaraste los extremos .well-known
correctos a los que se enviarán los informes agregables.
API de medición del cliente | Extremo agregable coincidente |
---|---|
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 haya registrado correctamente, completa los siguientes pasos:
Verifica cómo activas los informes. Confirma que estás recibiendo el formato de informe correcto según la API que se usa:
Si activas los informes como se recomienda, pero el problema persiste, verifica si se observan errores en la consola de Chrome Developer Console en las pestañas "Console" y "Network".
Si necesitas más asistencia para solucionar problemas con estas APIs de cliente , continúa con la guía de depuración de 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 generan conversiones correctamente?
Verifica que tu extremo de informes (.well-known/…
) convierta correctamente el informe JSON agregable en AVRO
.
Los errores de API que podrían surgir 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 de AVRO no se generaron correctamente, ya sea que se trate de los informes de AVRO agregables o del AVRO del dominio de salida. ¿Los informes de AVRO agregables se generan correctamente? La carga útil deberá decodificarse en base64 y convertirse en un array de bytes. Asegúrate de que el informe esté en formato Avro. Además, verifica si el dominio de salida AVRO es correcto. Los buckets se convierten a formato hexadecimal Unicode escapado 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. Verifica que hayan registrado su activador con la nube correcta usando el campo aggregation_coordinator_origin (consulta las instrucciones aquí). También es posible que proporciones informes encriptados por AWS a su implementación de Aggregation Service en Google Cloud o informes encriptados por Google Cloud a su implementación de AWS. Pídele que valide qué extremo de clave pública se usó para encriptar los informes agregables. Para Google Cloud, el campo "aggregation_coordinator_origin" en el informe agregable debe ser https://publickeyservice.msmt.gcp.privacysandboxservices.com. Para AWS, es https://publickeyservice.msmt.aws.privacysandboxservices.com. API de Private AggregationPara la API de Private Aggregation, deberás definir "aggregationCoordinatorOrigin" con el ejemplo de la sección Elección del coordinador de agregación en la explicación 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 binarios no aprobados o con el modo de depuración, usa el binario correcto para solucionarlos. Sigue las instrucciones que se indican aquí para usar una AMI precompilada o compilar tu propia AMI. |
Completa los siguientes pasos para verificar lo siguiente:
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 de orden grande de 16 bytes).Sigue los pasos del codelab para que tu proveedor de servicios en la nube pública recopile tus informes de depuración y ejecute 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 sobre el servicio de agregación. b. Amazon Web Services: Sigue los pasos del 4.2 al 5.3 del codelab de AWS de servicio de agregación.
Si se muestra una respuesta SUCCESS
, significa que tu conversión está funcionando.
¿Tus informes agregables están intactos?
Verifica que el informe agregado, las claves de dominio de salida y la información compartida estén intactos. Consulta los códigos de muestra para convertir informes agregables y crear archivos de dominio si deseas obtener más información.
Estos son los errores de API que puedes ver y que corresponden a este problema:
Error | INPUT_DATA_READ_FAILED |
---|---|
Extremo | createJob |
Cheque |
¿Los campos input_data_bucket_name , input_data_blob_prefix , output_data_bucket_name y output_data_blob_prefix de la solicitud createJob son correctos? ¿La ubicación de los datos de informes de entrada tiene los informes que se deben procesar? ¿Tienes permiso para leer desde la ubicación de almacenamiento de los informes y el dominio de salida?
|
Completa los siguientes pasos para verificar lo siguiente:
Verifica el informe agregado:
- Genera informes agregados y usa la herramienta
aggregatable_report_converter
para convertir el dominio de salida en formatoAVRO
. - Ejecuta una solicitud
createJob
con este informe agregable y el archivo de dominio de salida. - Si se muestra
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. - Continúa con la verificación del archivo de dominio en el siguiente paso.
- 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_converter
para crear el informe agregable. - Ejecuta una solicitud
createJob
con este informe agregable y el archivo de dominio de salida. - Si muestra
SUCCESS
, significa que el dominio de salida está intacto y 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:
- Asegúrate de tener habilitados los informes de depuración. Los informes con depuración habilitada tendrán un campo
debug_cleartext_payload
disponible. - Crea un informe de depuración para usarlo con la herramienta de prueba local y usa
debug_cleartext_payload
como carga útil. - Ejecuta la herramienta de prueba local con tu archivo de dominio. Si se trata de un
SUCCESS
, significa que se manipuló tu archivoshared_info
.
- Asegúrate de tener habilitados los informes de depuración. Los informes con depuración habilitada tendrán un campo
Si sospechas que hay más errores o manipulaciones, recopila el informe agregado de JSON, la clave de dominio, el informe AVRO
agregado generado y el dominio de salida, y continúa con los próximos pasos.
Inspecciona la nueva versión de implementación
Verifica que tu versión del servicio de agregación siga siendo compatible. Una vez que hayas determinado qué versión estás usando, consulta la lista de lanzamientos del servicio de agregación y confirma que tu versión no tenga la advertencia de fin de la 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 que tenga
-worker-
en el nombre. - Busca la sección
Custom Metadata
y, luego, busca la clavetee-image-reference
.- Nota: Cada VM aprovisionada en Google Cloud por Terraform debe tener estos metadatos (metadatos de
tee-image-reference
en 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-reference
contendrá el número de versión. Por ejemplo, el número de versión de la siguiente ruta de acceso esv2.9.1
. Estas son imágenes precompiladas que se encuentran en Artifact Registry de un proyecto de Google Cloud.- Nota: Esto es relevante si usas los recursos precompilados. De lo contrario, debe coincidir con el nombre que le asignaste a la imagen y la etiqueta que le agregaste.
(por 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 precompilados. De lo contrario, debe coincidir con el nombre que le asignaste a la imagen y la etiqueta que le agregaste.
(por 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 (imagen de máquina de Amazon).
- El nombre de la versión debe incluirse en la ruta de 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 precompilados. De lo contrario, debe coincidir con el nombre y la etiqueta que le asignaste personalmente a la imagen.
(por ejemplo,
aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z
)
- Nota: Esto es relevante si usas los recursos precompilados. De lo contrario, debe coincidir con el nombre y la etiqueta que le asignaste personalmente a la imagen.
(por ejemplo,
Próximos pasos
Si no encuentras una solución para tu problema con el servicio de agregación, comunícate con nosotros. Para ello, envía un problema de GitHub o completa el formulario de asistencia técnica.