Diagnostica l'ambiente (nuovo o di cui è stato eseguito l'upgrade)

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

Dopo aver verificato che il server di origine sia stato registrato correttamente, completa i seguenti passaggi:

  1. Controlla come attivi i report. Verifica di ricevere il formato del report corretto in base all'API utilizzata:

  2. 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:

  1. Controlla come attivi i report. Verifica di ricevere il formato del report corretto in base all'API utilizzata:

  2. 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 Aggregation

Per 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 aggregationCoordinatorOrigin.

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:

  1. Puoi utilizzare lo strumento aggregatable_report_converter per 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.

  2. 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:

  1. Verifica il report aggregato:

    • Genera report aggregati e utilizza lo strumento aggregatable_report_converter per convertire il dominio di output nel formato AVRO.
    • Esegui una richiesta createJob con 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.
  2. Verifica il file del dominio di output:

    • Genera il file di dominio di output e utilizza lo strumento aggregatable_report_converter per creare il report aggregabile.
    • Esegui una richiesta createJob con 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.
  3. Verifica le informazioni condivise:

    • Verifica di aver attivato i report di debug. I report con debug abilitato avranno un campo debug_cleartext_payload disponibile.
    • Crea un report di debug da utilizzare con lo strumento di test locale e utilizza debug_cleartext_payload come payload.
    • Esegui lo strumento di test locale con il file di dominio. Se si tratta di un SUCCESS, significa che il file shared_info è stato manomesso.

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

  1. Vai a Compute Engine > Istanze VM.
  2. Fai clic sull'istanza della macchina virtuale con -worker- nel nome.
  3. Individua la sezione Custom Metadata e poi la chiave tee-image-reference.
  4. Il valore di tee-image-reference conterrà 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)

Passaggi per Amazon Web Services

  1. Vai a Istanze EC2 nella console Amazon Web Services.
  2. Fai clic sull'istanza con il nome aggregation-service-operator-dev-env.
  3. Nella pagina dell'istanza, trova Dettagli > AMI (Amazon Machine Image).
  4. 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)

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.