Diagnosticar o ambiente (novo ou atualizado)

Vários fatores podem criar problemas ao trabalhar com o serviço de agregação, incluindo formatação de relatórios, problemas de domínio de saída e problemas de coordenador. É importante entender a origem do erro e os metadados que ele contém para diagnosticar o problema com precisão.

Temas do guia:

Verificar a configuração da API de medição do cliente

Depois de verificar se o servidor de origem foi registrado corretamente, siga estas etapas:

  1. Confira como você está gerando relatórios. Confirme se você está recebendo o formato de relatório correto de acordo com a API usada:

    • API Attribution Reporting
    • API Private Aggregation
      • Os relatórios na API Private Aggregation podem ser concluídos usando a função contributeToHistogram. Verifique se você está transmitindo a chave e o valor do bucket. A chave do bucket precisa estar no formato BigInt. (Saiba mais sobre a API Private Aggregation.)
  2. Se você estiver acionar relatórios conforme recomendado, mas ainda estiver com o problema, verifique se há erros observados no console do desenvolvedor do Chrome nas guias "Console" e "Rede".

Se você precisar de mais suporte para solução de problemas com essas APIs de cliente, consulte as orientações de depuração da API Attribution Reporting e API Private Aggregation + Shared Storage.

Resolver problemas de configuração da origem de relatórios

O servidor de origem de relatórios é onde você declarou os endpoints .well-known corretos correspondentes para onde os relatórios agregáveis serão enviados. Verifique se o servidor de origem de relatórios implantado foi inscrito e registrado corretamente.

A origem de relatórios está recebendo relatórios?

Verifique se o servidor de origem de relatórios implantado foi inscrito e registrado corretamente. É nesse servidor que você declarou os endpoints .well-known corretos correspondentes para onde os relatórios agregáveis serão enviados.

API Measurement do lado do cliente Endpoint agregável correspondente
Relatórios de atribuição 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

Depois de verificar se o servidor de origem foi registrado corretamente, siga estas etapas:

  1. Confira como você está gerando relatórios. Confirme se você está recebendo o formato de relatório correto de acordo com a API usada:

  2. Se você estiver acionar relatórios conforme recomendado, mas ainda estiver com o problema, verifique se há erros nas guias "Console" e "Rede" do console do desenvolvedor do Chrome.

Se você precisar de mais suporte para resolver problemas com essas APIs de cliente , continue com as orientações de depuração para a API Attribution Reporting e a API Private Aggregation + Shared Storage.

Resolver problemas nos relatórios agregados

Os relatórios agregados são gerados pelas APIs de medição do lado do cliente e enviados para a origem de relatórios. Esses relatórios precisam ser convertidos para o formato AVRO pelo endpoint de relatórios. Se houver problemas com essa conversão ou se os relatórios não estiverem intactos, você poderá encontrar erros no serviço de agregação.

Seus relatórios agregáveis estão convertendo corretamente?

Verifique se o endpoint de relatórios (.well-known/…) está convertendo o relatório JSON agregável corretamente em AVRO.

Os erros de API que seriam gerados devido a esse problema são os seguintes:

Erro DECRYPTION_ERROR
Exemplo
                "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 Isso pode ocorrer devido a erros de descriptografia, que podem ser causados por relatórios AVRO não gerados corretamente, seja nos relatórios AVRO agregáveis ou no AVRO do domínio de saída. Os relatórios de AVRO agregáveis são gerados corretamente? O payload precisa ser decodificado em base64 e convertido em uma matriz de bytes. Verifique se o relatório está no formato Avro. Além disso, verifique se o domínio de saída AVRO está correto. Os buckets são convertidos para o formato hexadecimal unicode com escape e, em seguida, para uma matriz de bytes. Se você encontrar mais de uma contagem de erros, saiba mais sobre eles na página do serviço de agregação no GitHub.
Erro DECRYPTION_KEY_NOT_FOUND
Exemplo
                "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 Attribution Reporting

Na API Attribution Reporting, esse erro pode ser causado por um problema com o registro do acionador. Verifique se o acionador foi registrado na nuvem correta usando o campo aggregation_coordinator_origin (instruções aqui). Você também pode fornecer relatórios criptografados pela AWS para a implantação do serviço de agregação do Google Cloud ou relatórios criptografados pelo Google Cloud para a implantação da AWS. Peça para eles validarem qual endpoint de chave pública foi usado para criptografar os relatórios agregáveis. No Google Cloud, o campo "aggregation_coordinator_origin" no relatório agregável precisa ser https://publickeyservice.msmt.gcp.privacysandboxservices.com. Na AWS, é https://publickeyservice.msmt.aws.privacysandboxservices.com.

API Private Aggregation

Para a API Private Aggregation, você precisa definir o "aggregationCoordinatorOrigin" usando o exemplo na seção "Escolha do coordenador de agregação" no explicador da API Private Aggregation. Especifique https://publickeyservice.msmt.gcp.privacysandboxservices.com como o aggregationCoordinatorOrigin.

Exemplo:

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

            
Erro DECRYPTION_KEY_FETCH_ERROR
Exemplo
                "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 Em caso de problemas com binários não aprovados ou no modo de depuração, o uso do binário correto corrigirá o problema. Siga as instruções aqui para usar AMIs pré-criadas ou crie sua própria AMI.

Siga estas etapas para verificar:

  1. Você pode usar a ferramenta aggregatable_report_converter para converter os relatórios agregáveis coletados do endpoint .well-known para AVRO e criar as chaves de domínio de saída. Observação: os arquivos de domínio de saída precisam ser uma bytestring big-endian de 16 bytes.

  2. Siga as etapas no codelab para que seu provedor de nuvem pública colete os relatórios de depuração e execute um job de serviço de agregação usando as chaves de domínio de saída: Google Cloud: siga as etapas 3.1.2 a 3.2.3 do Aggregation Service Google Cloud Codelab. b. Amazon Web Services: siga as etapas 4.2 a 5.3 do Aggregation Service AWS Codelab.

Se isso retornar uma resposta SUCCESS, a conversão está funcionando.

Seus relatórios agregáveis estão intactos?

Verifique se o relatório agregado, as chaves de domínio de saída e as informações compartilhadas estão intatos. Consulte os exemplos de códigos para converter relatórios agregáveis e criar arquivos de domínio, se quiser mais informações.

Os erros da API que podem aparecer e corresponder a esse problema são os seguintes:

Erro INPUT_DATA_READ_FAILED
Endpoint createJob
Cheque Os campos input_data_bucket_name, input_data_blob_prefix, output_data_bucket_name e output_data_blob_prefix na solicitação createJob estão corretos? O local de dados de entrada do relatório tem os relatórios a serem processados? Você tem permissão para ler o local de armazenamento dos relatórios e do domínio de saída?

Siga estas etapas para verificar:

  1. Verifique o relatório agregado:

    • Gere relatórios agregados e use a ferramenta aggregatable_report_converter para converter o domínio de saída no formato AVRO.
    • Execute uma solicitação createJob com esse relatório agregável e o arquivo de domínio de saída.
    • Se ele retornar SUCCESS, significa que o relatório agregável está intacto. Se isso retornar um erro, você terá um problema com seu relatório agregável ou com o relatório e o domínio.
    • Verifique o arquivo de domínio na próxima etapa.
  2. Verifique o arquivo de domínio de saída:

    • Gere o arquivo de domínio de saída e use a ferramenta aggregatable_report_converter para criar o relatório agregável.
    • Execute uma solicitação createJob com esse relatório agregável e o arquivo de domínio de saída.
    • Se ele retornar SUCCESS, significa que o domínio de saída está intacto e há um problema com o código para criar o relatório agregável.
    • Continue para a próxima etapa para verificar o shared_info.
  3. Verifique as informações compartilhadas:

    • Verifique se você tem relatórios de depuração ativados. Os relatórios com depuração ativada terão um campo debug_cleartext_payload disponível.
    • Crie um relatório de depuração para uso com a ferramenta de teste local e use debug_cleartext_payload como o payload.
    • Execute a ferramenta de teste local com seu arquivo de domínio. Se for um SUCCESS, significa que o arquivo shared_info foi adulterado.

Se você suspeitar de outros erros ou adulterações, colete o relatório de agregação JSON, a chave de domínio, o relatório AVRO agregado gerado e o domínio de saída e continue para as próximas etapas.

Inspecionar a nova versão da implantação

Verifique se a versão do serviço de agregação ainda tem suporte. Depois de determinar qual versão você está usando, confira a lista de versões do AggregationService e confirme se a sua versão não tem o aviso de fim de suporte: This release has reached its end of support on { date }. As instruções a seguir para determinar qual versão você implantou são para as nuvens públicas com suporte.

Etapas para o Google Cloud

  1. Navegue até Compute Engine > Instâncias de VM.
  2. Clique na instância de máquina virtual com -worker- no nome.
  3. Encontre a seção Custom Metadata e localize a chave tee-image-reference.
  4. O valor de tee-image-reference vai conter o número da versão. Por exemplo, o número da versão do caminho a seguir é v2.9.1. Essas são imagens pré-criadas que ficam no Artifact Registry de um projeto do Google Cloud.
    • Observação: isso é relevante se você estiver usando os recursos pré-criados. Caso não, o nome e a tag da imagem precisam ser os mesmos que você escolheu. Exemplo: us.docker.pkg.dev/<gcp_project_name>/artifacts:aggregation-service- container-artifacts-worker_mp_go_prod:2.9.1.

Etapas para o Amazon Web Services

  1. Acesse Instâncias do EC2 no console da Amazon Web Services.
  2. Clique na instância com o nome aggregation-service-operator-dev-env.
  3. Na página da instância, encontre "Detalhes" > AMI (imagem de máquina da Amazon).
  4. O nome da versão precisa estar incluído no caminho da imagem. Por exemplo, o número da versão do caminho a seguir é v2.9.1.
    • Observação: isso é relevante se você estiver usando os recursos pré-criados. Caso não, o nome e a tag da imagem precisam ser os mesmos que você escolheu. Exemplo: aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z.

Próximas etapas

Se você não encontrar uma solução para o problema do serviço de agregação, notifique-nos enviando um problema do GitHub ou preenchendo o formulário de suporte técnico.