Diversi fattori potrebbero creare problemi durante l'utilizzo del servizio di aggregazione, tra cui la formattazione dei report, i problemi relativi al dominio di output e i problemi del coordinatore. È importante comprendere l'origine dell'errore e i metadati che contiene per diagnosticare con precisione il problema.
Argomenti della guida:
- Verificare la configurazione dell'API di misurazione lato client
- Risoluzione dei problemi relativi alla configurazione dell'origine dei report
- Risoluzione dei problemi relativi ai report aggregati
- Controllare la versione del deployment
Verificare la configurazione dell'API di misurazione lato client
Dopo aver verificato che il server di origine sia stato registrato correttamente, completa i seguenti passaggi:
Controlla come attivi i report. Verifica di ricevere il formato del report corretto in base all'API utilizzata:
- API Attribution Reporting
- Per l'API Attribution Reporting, verifica di aver registrato correttamente l'origine (Evento e Riepilogo). Per eseguire la registrazione dei trigger (evento e riepilogo), verifica che il JSON passato in
Attribution-Reporting-Register-Triggersia corretto utilizzando lo strumento di convalida delle intestazioni. (Scopri di più sui report di riepilogo dell'API Attribution Reporting)
- Per l'API Attribution Reporting, verifica di aver registrato correttamente l'origine (Evento e Riepilogo). Per eseguire la registrazione dei trigger (evento e riepilogo), verifica che il JSON passato in
- API Private Aggregation
- La generazione di report nell'API Private Aggregation può essere completata utilizzando la funzione
contributeToHistogram. Verifica di aver inserito la chiave e il valore del bucket. La chiave del bucket deve essere nel formatoBigInt. Scopri di più sull'API Private Aggregation.
- La generazione di report nell'API Private Aggregation può essere completata utilizzando la funzione
- API Attribution Reporting
Se attivi i report come consigliato, ma il problema persiste, controlla se nella console degli sviluppatori di Chrome sono stati rilevati errori nelle schede "Console" e "Rete".
Se hai bisogno di ulteriore assistenza per la risoluzione dei problemi relativi a queste API client, continua a leggere la nostra guida al debug per l'API Attribution Reporting e l'API Private Aggregation + Shared Storage.
Risoluzione dei problemi relativi alla configurazione dell'origine dei report
Il server di origine dei report è il punto in cui hai dichiarato gli endpoint .well-known corrispondenti corretti a cui verranno inviati i report aggregabili. Verifica che il server di origine dei report di cui è stato eseguito il deployment sia stato registrato e
registrato correttamente.
L'origine dei report riceve i report?
Verifica che il server di origine dei report di cui è stato eseguito il deployment sia stato registrato
e che la registrazione sia stata eseguita correttamente. Questo server è quello in cui hai dichiarato gli endpoint .well-known corrispondenti corretti a cui verranno inviati i report aggregabili.
| API di misurazione lato client | Endpoint aggregabile corrispondente |
|---|---|
| Attribution Reporting | POST /.well-known/attribution-reporting/report-aggregate-attribution |
| Private Aggregation + Shared Storage (combinazione) | POST /.well-known/private-aggregation/report-shared-storage |
| Private Aggregation + Protected Audience (combinazione) | POST /.well-known/private-aggregation/report-protected-audience |
Dopo aver verificato che il server di origine sia stato registrato correttamente, completa i seguenti passaggi:
Controlla come attivi i report. Verifica di ricevere il formato del report corretto in base all'API utilizzata:
Se attivi i report come consigliato, ma il problema persiste, controlla se nella console di sviluppo di Chrome sono stati rilevati errori nelle schede "Console" e "Rete".
Se hai bisogno di ulteriore assistenza per la risoluzione dei problemi relativi a queste API client , continua a seguire le indicazioni per il debug dell'API Attribution Reporting e dell'API Private Aggregation + Shared Storage.
Risolvere i problemi relativi ai report aggregati
I report aggregati vengono generati dalle API di misurazione lato client e inviati all'origine dei report. Questi report devono essere convertiti in formato AVRO dall'endpoint di reporting. Se si verificano problemi con questa conversione o se i report stessi non sono intatti, potresti visualizzare errori nel servizio di aggregazione.
I report aggregabili vengono convertiti correttamente?
Verifica che l'endpoint dei report (.well-known/…) converta correttamente il report JSON aggregabile fornito in AVRO.
Gli errori API che si verificherebbero a causa di questo problema sono i seguenti:
| Errore | DECRYPTION_ERROR |
|---|---|
| Esempio |
"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": []
}
}
|
| Assegno |
Ciò può verificarsi a causa di errori di decriptazione, che possono essere causati da report AVRO non generati correttamente, che si tratti di report AVRO aggregabili o di AVRO del dominio di output. I report AVRO aggregabili vengono generati correttamente? Il payload dovrà essere decodificato in base64 e convertito in un array di byte. Verifica che il report sia in formato Avro. Inoltre, verifica che il dominio di output AVRO sia corretto. I bucket vengono convertiti nel formato esadecimale Unicode con caratteri di escape e poi in un array di byte.
Se visualizzi più di un conteggio degli errori, puoi scoprire di più sugli errori nella pagina GitHub del servizio di aggregazione.
|
| Errore | DECRYPTION_KEY_NOT_FOUND |
|---|---|
| Esempio |
"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": []
}
}
|
| Assegno |
API Attribution Reporting
Per l'API Attribution Reporting, questo errore potrebbe essere causato da un problema con la registrazione del trigger. Verifica che abbia registrato il trigger con il cloud corretto utilizzando il campo aggregation_coordinator_origin (istruzioni qui). Potresti anche fornire report criptati con AWS al deployment di Aggregation Service su Google Cloud o report criptati con Google Cloud al deployment AWS. Chiedi loro di convalidare quale endpoint della chiave pubblica è stato utilizzato per criptare i report aggregabili. Per Google Cloud, il campo `aggregation_coordinator_origin` nel report aggregabile deve essere https://publickeyservice.msmt.gcp.privacysandboxservices.com. Per AWS, è https://publickeyservice.msmt.aws.privacysandboxservices.com. API Private AggregationPer l'API Private Aggregation, devi definire `aggregationCoordinatorOrigin` utilizzando l'esempio nella sezione Scelta del coordinatore dell'aggregazione della spiegazione dell'API Private Aggregation. Specifica https://publickeyservice.msmt.gcp.privacysandboxservices.com come Ad esempio:
sharedStorage.run('someOperation', {'privateAggregationConfig':
{'aggregationCoordinatorOrigin': ' https://publickeyservice.msmt.gcp.privacysandboxservices.com'}});
|
| Errore | DECRYPTION_KEY_FETCH_ERROR |
|---|---|
| Esempio |
"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."
}
]
}
}
|
| Assegno | In caso di problemi relativi alla modalità di debug o ai file binari non approvati, l'utilizzo del file binario corretto risolverà il problema. Segui le istruzioni riportate qui per utilizzare l'AMI predefinita o creare la tua AMI. |
Completa i seguenti passaggi per verificare:
Puoi utilizzare lo strumento
aggregatable_report_converterper convertire in AVRO i report aggregabili che hai raccolto dall'endpoint .well-known e creare le chiavi di dominio di output. Nota: i file di dominio di output devono essere una stringa di byte big-endian di 16 byte.Segui i passaggi del codelab per il tuo fornitore di servizi cloud pubblico per raccogliere i report di debug ed esegui un job del servizio di aggregazione utilizzando le chiavi di dominio di output: a. Google Cloud: segui i passaggi da 3.1.2 a 3.2.3 del Codelab del servizio di aggregazione Google Cloud b. Amazon Web Services: segui i passaggi da 4.2 a 5.3 del Codelab del servizio di aggregazione AWS.
Se viene restituita una risposta SUCCESS, la conversione funziona.
I report aggregabili sono intatti?
Verifica che il report aggregato, le chiavi di dominio di output e le informazioni condivise siano intatti. Consulta i codici di esempio per convertire i report aggregabili e creare file di dominio se vuoi ulteriori informazioni.
Gli errori dell'API che potresti visualizzare e che corrispondono a questo problema sono i seguenti:
| Errore | INPUT_DATA_READ_FAILED |
|---|---|
| Endpoint | createJob |
| Assegno |
Il campo input_data_bucket_name, input_data_blob_prefix, output_data_bucket_name e output_data_blob_prefix nella richiesta createJob è corretto? La posizione dei dati del report di input contiene i report da elaborare? Hai l'autorizzazione per leggere dalla posizione di archiviazione per i report e il dominio di output?
|
Completa i seguenti passaggi per verificare:
Verifica il report aggregato:
- Genera report aggregati e utilizza lo strumento
aggregatable_report_converterper convertire il dominio di output nel formatoAVRO. - Esegui una richiesta
createJobcon questo report aggregabile e il file di dominio di output. - Se viene restituito
SUCCESS, significa che il report aggregabile è intatto. Se viene restituito un errore, il problema riguarda il report aggregabile o sia il report che il dominio. - Nel passaggio successivo, controlla il file di dominio.
- Genera report aggregati e utilizza lo strumento
Verifica il file del dominio di output:
- Genera il file di dominio di output e utilizza lo strumento
aggregatable_report_converterper creare il report aggregabile. - Esegui una richiesta
createJobcon questo report aggregabile e il file di dominio di output. - Se viene restituito
SUCCESS, significa che il dominio di output è intatto e che c'è un problema con il tuo codice per creare il report aggregabile. - Vai al passaggio successivo per controllare
shared_info.
- Genera il file di dominio di output e utilizza lo strumento
Verifica le informazioni condivise:
- Verifica di aver attivato i report di debug. I report con debug abilitato avranno un
campo
debug_cleartext_payloaddisponibile. - Crea un report di debug da utilizzare con lo strumento di test locale e utilizza
debug_cleartext_payloadcome payload. - Esegui lo strumento di test locale con il file di dominio. Se si tratta di un
SUCCESS, significa che il fileshared_infoè stato manomesso.
- Verifica di aver attivato i report di debug. I report con debug abilitato avranno un
campo
Se sospetti ulteriori errori o manomissioni, raccogli il report aggregato JSON, la chiave di dominio, il report aggregato AVRO generato e il dominio di output e continua con i passaggi successivi.
Controlla la nuova versione del deployment
Verifica che la tua versione del servizio di aggregazione sia ancora supportata. Dopo aver
determinato la versione in uso, controlla l'elenco delle release
del servizio di aggregazione
e verifica che la tua versione non contenga l'avviso di fine del supporto:
This release has reached its end of support on { date }. Le seguenti
istruzioni per determinare la versione di cui hai eseguito il deployment sono valide per i
cloud pubblici supportati.
Passaggi per Google Cloud
- Vai a Compute Engine > Istanze VM.
- Fai clic sull'istanza della macchina virtuale con
-worker-nel nome. - Individua la sezione
Custom Metadatae poi la chiavetee-image-reference.- Nota: ogni VM di cui viene eseguito il provisioning in Google Cloud da Terraform deve avere questi metadati (metadati
tee-image-referencenel modulo worker).
- Nota: ogni VM di cui viene eseguito il provisioning in Google Cloud da Terraform deve avere questi metadati (metadati
- Il valore di
tee-image-referenceconterrà il numero di versione. Ad esempio, il numero di versione del seguente percorso èv2.9.1. Si tratta di immagini predefinite che si trovano in Artifact Registry di un progetto Google Cloud.- Nota: questo è pertinente se utilizzi gli asset predefiniti. In caso contrario, deve corrispondere al nome e al tag che hai assegnato personalmente all'immagine.
(ad esempio:
us.docker.pkg.dev/<gcp_project_name>/artifacts:aggregation-service- container-artifacts-worker_mp_go_prod:2.9.1)
- Nota: questo è pertinente se utilizzi gli asset predefiniti. In caso contrario, deve corrispondere al nome e al tag che hai assegnato personalmente all'immagine.
(ad esempio:
Passaggi per Amazon Web Services
- Vai a Istanze EC2 nella console Amazon Web Services.
- Fai clic sull'istanza con il nome
aggregation-service-operator-dev-env. - Nella pagina dell'istanza, trova Dettagli > AMI (Amazon Machine Image).
- Il nome della versione deve essere incluso nel percorso dell'immagine. Ad esempio, il
numero di versione del seguente percorso è
v2.9.1.- Nota: questo è pertinente se utilizzi gli asset predefiniti. In caso contrario, deve corrispondere al nome e al tag che hai assegnato personalmente all'immagine.
(ad esempio:
aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z)
- Nota: questo è pertinente se utilizzi gli asset predefiniti. In caso contrario, deve corrispondere al nome e al tag che hai assegnato personalmente all'immagine.
(ad esempio:
Passaggi successivi
Se non vedi una soluzione al problema del servizio di aggregazione, comunicacelo segnalando un problema su GitHub o inviando il modulo di assistenza tecnica.