集計サービスを使用する際に、レポートの形式、出力ドメインの問題、コーディネーターの問題など、さまざまな要因によって問題が発生する可能性があります。問題を正確に診断するには、エラーの発生源とそれに含まれるメタデータを理解することが重要です。
ガイドのトピック:
クライアント測定 API の設定を確認する
オリジン サーバーが正しく登録されていることを確認したら、次の手順を行います。
レポートのトリガー方法を確認します。使用している API に応じて正しいレポート形式を受け取っていることを確認します。
- Attribution Reporting API
- Private Aggregation API
- Private Aggregation API でのレポートは、
contributeToHistogram関数を使用して完了できます。バケットのキーと値が渡されていることを確認します。バケットキーはBigInt形式にする必要があります。(詳しくは、Private Aggregation API をご覧ください)。
- Private Aggregation API でのレポートは、
推奨どおりにレポートをトリガーしているにもかかわらず問題が解決しない場合は、Chrome デベロッパー コンソールの [コンソール] タブと [ネットワーク] タブの両方でエラーが発生していないか確認してください。
これらのクライアント API のトラブルシューティング サポートが必要な場合は、Attribution Reporting API のデバッグ ガイダンスと Private Aggregation API + Shared Storage をご覧ください。
レポート送信元の設定に関するトラブルシューティング
レポートのオリジン サーバーは、集計可能レポートの送信先となる正しい対応する .well-known エンドポイントを宣言した場所です。デプロイされたレポート送信元サーバーが適切に登録されていることを確認します。
レポートの送信元でレポートを受信していますか?
デプロイされたレポート送信元サーバーが適切に登録されていることを確認します。このサーバーは、集計可能なレポートの送信先となる対応する .well-known エンドポイントを正しく宣言したサーバーです。
| クライアントサイドの測定 API | 集計可能なエンドポイントのマッチング |
|---|---|
| アトリビューション レポート | POST /.well-known/attribution-reporting/report-aggregate-attribution |
| Private Aggregation + Shared Storage(コンボ) | POST /.well-known/private-aggregation/report-shared-storage |
| Private Aggregation + Protected Audience(コンボ) | POST /.well-known/private-aggregation/report-protected-audience |
オリジン サーバーが正しく登録されていることを確認したら、次の手順を完了します。
レポートのトリガー方法を確認します。使用している API に応じて正しいレポート形式を受け取っていることを確認します。
推奨どおりにレポートをトリガーしても問題が解決しない場合は、Chrome デベロッパー コンソールの [コンソール] タブと [ネットワーク] タブの両方でエラーが発生していないか確認してください。
これらのクライアント API のトラブルシューティング サポートが必要な場合は、Attribution Reporting API のデバッグ ガイダンスと Private Aggregation API + Shared Storage をご覧ください。
集計レポートのトラブルシューティング
集計レポートはクライアントサイド測定 API によって生成され、レポート作成元に送信されます。これらのレポートは、レポート エンドポイントによって AVRO 形式に変換される必要があります。このコンバージョンに問題がある場合や、レポート自体が完全でない場合は、集計サービスでエラーが発生することがあります。
集計可能なレポートは正しく変換されていますか?
レポート エンドポイント(.well-known/…)が、指定された集計可能な JSON レポートを AVRO に正しく変換していることを確認します。
この問題により発生する API エラーは次のとおりです。
| エラー | DECRYPTION_ERROR |
|---|---|
| 例 |
"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": []
}
}
|
| 小切手 |
これは、復号エラーが原因で発生することがあります。復号エラーは、集計可能な AVRO レポートまたは出力ドメイン AVRO のいずれであっても、AVRO レポートが正しく生成されないことが原因で発生する可能性があります。集計可能な AVRO レポートは正しく生成されていますか?ペイロードは base64 でデコードしてバイト配列に変換する必要があります。レポートが avro 形式であることを確認します。また、出力ドメイン AVRO が正しいかどうかも確認します。バケットはエスケープされた Unicode 16 進数形式に変換され、バイト配列に変換されます。エラー数が複数表示された場合は、集計サービスの GitHub ページでエラーの詳細を確認できます。 |
| エラー | DECRYPTION_KEY_NOT_FOUND |
|---|---|
| 例 |
"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": []
}
}
|
| 小切手 |
Attribution Reporting API
Attribution Reporting API の場合、このエラーはトリガー登録の問題が原因で発生する可能性があります。aggregation_coordinator_origin フィールドを使用して、トリガーが正しいクラウドに登録されていることを確認します(こちらの手順を参照)。また、AWS で暗号化されたレポートを Google Cloud の集計サービス デプロイに提供したり、Google Cloud で暗号化されたレポートを AWS のデプロイに提供したりすることもあります。集計可能レポートの暗号化に使用された公開鍵エンドポイントを検証するよう依頼します。Google Cloud の場合、集計可能なレポートの `aggregation_coordinator_origin` フィールドは https://publickeyservice.msmt.gcp.privacysandboxservices.com になります。AWS の場合は https://publickeyservice.msmt.aws.privacysandboxservices.com になります。 Private Aggregation APIPrivate Aggregation API の場合、Private Aggregation API の説明の「Aggregation coordinator choice」セクションの例を使用して、`aggregationCoordinatorOrigin` を定義する必要があります。 次に例を示します。
sharedStorage.run('someOperation', {'privateAggregationConfig':
{'aggregationCoordinatorOrigin': ' https://publickeyservice.msmt.gcp.privacysandboxservices.com'}});
|
| エラー | DECRYPTION_KEY_FETCH_ERROR |
|---|---|
| 例 |
"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."
}
]
}
}
|
| 小切手 | 承認されていないバイナリやデバッグモードに関する問題の場合は、正しいバイナリを使用することで問題が解決します。こちらの手順に沿って、事前構築済みの AMI を使用するか、AMI を自分でビルドしてください。 |
確認するには、次の手順を行います。
aggregatable_report_converterツールを使用すると、.well-known エンドポイントから収集した集計可能なレポートを AVRO に変換し、出力ドメインキーを作成できます。(注: 出力ドメイン ファイルは 16 バイトのビッグ エンディアン バイト文字列である必要があります)。パブリック クラウド プロバイダの Codelab の手順に沿って、デバッグ レポートを収集し、出力ドメインキーを使用して Aggregation Service ジョブを実行します。 a. Google Cloud: Aggregation Service Google Cloud Codelab の手順 3.1.2 ~ 3.2.3 に沿って操作します。Amazon Web Services: Aggregation Service AWS Codelab の手順 4.2 ~ 5.3 に沿って操作します。
SUCCESS レスポンスが返された場合、コンバージョンは機能しています。
集計可能レポートはそのままですか?
集計レポート、出力ドメインキー、共有情報がそのまま残っていることを確認します。詳細については、サンプルコードをご覧ください。集計可能なレポートを変換してドメイン ファイルを作成できます。
この問題に関連して表示される可能性のある API エラーは次のとおりです。
| エラー | INPUT_DATA_READ_FAILED |
|---|---|
| エンドポイント | createJob |
| 小切手 |
createJob リクエストの input_data_bucket_name、input_data_blob_prefix、output_data_bucket_name、output_data_blob_prefix フィールドは正しいですか?入力レポートのデータロケーションに、処理するレポートはありますか?レポートと出力ドメインのストレージの場所から読み取る権限がありますか? |
確認するには、次の手順を行います。
集計レポートを確認します。
- 集計レポートを生成し、
aggregatable_report_converterツールを使用して出力ドメインをAVRO形式に変換します。 - この集計可能なレポートと出力ドメイン ファイルを使用して
createJobリクエストを実行します。 SUCCESSが返された場合、集計可能なレポートはそのままです。エラーが返された場合は、集計可能レポート、またはレポートとドメインの両方に問題があります。- 次のステップに進んで、ドメイン ファイルを確認します。
- 集計レポートを生成し、
出力ドメイン ファイルを確認します。
- 出力ドメイン ファイルを生成し、
aggregatable_report_converterツールを使用して集計可能レポートを作成します。 - この集計可能なレポートと出力ドメイン ファイルを使用して
createJobリクエストを実行します。 SUCCESSが返された場合は、出力ドメインはそのまま残っており、集計可能なレポートを作成するコードに問題があることを意味します。- 次のステップに進んで
shared_infoを確認します。
- 出力ドメイン ファイルを生成し、
共有された情報を確認します。
- デバッグが有効になっているレポートがあることを確認します。デバッグが有効になっているレポートには、
debug_cleartext_payloadフィールドが用意されています。 - ローカル テストツールで使用するデバッグ レポートを作成し、ペイロードとして
debug_cleartext_payloadを使用します。 - ドメイン ファイルを使用してローカル テストツールを実行します。これが
SUCCESSの場合、shared_infoファイルが改ざんされていることを意味します。
- デバッグが有効になっているレポートがあることを確認します。デバッグが有効になっているレポートには、
エラーや改ざんが疑われる場合は、JSON 集計レポート、ドメインキー、生成された集計 AVRO レポート、出力ドメインを収集して、次のステップに進みます。
新しいデプロイ バージョンを検査する
集計サービスのバージョンがまだサポートされていることを確認します。使用しているバージョンを特定したら、Aggregation Service のリリースの一覧を確認し、そのバージョンにサポート終了の警告が表示されていないことを確認します。This release has reached its end of support on { date }デプロイしたバージョンを確認する手順は、サポートされているパブリック クラウドを対象としています。
Google Cloud の手順
- [Compute Engine] > [VM インスタンス] に移動します。
- 名前に
-worker-が含まれる仮想マシン インスタンスをクリックします。 Custom Metadataセクションを見つけて、キーtee-image-referenceを探します。- 注: Terraform によって Google Cloud にプロビジョニングされたすべての VM には、このメタデータ(ワーカー モジュールの
tee-image-referenceメタデータ)が必要です。
- 注: Terraform によって Google Cloud にプロビジョニングされたすべての VM には、このメタデータ(ワーカー モジュールの
tee-image-referenceの値にはバージョン番号が含まれます。たとえば、次のパスのバージョン番号はv2.9.1です。これらは、Google Cloud プロジェクトの Artifact Registry に存在する事前構築済みのイメージです。- 注: これは、事前構築済みのアセットを使用している場合に該当します。使用していない場合は、ご自身で名前を付けてタグ付けした画像と一致している必要があります。(例:
us.docker.pkg.dev/<gcp_project_name>/artifacts:aggregation-service- container-artifacts-worker_mp_go_prod:2.9.1)
- 注: これは、事前構築済みのアセットを使用している場合に該当します。使用していない場合は、ご自身で名前を付けてタグ付けした画像と一致している必要があります。(例:
Amazon Web Services の手順
- Amazon Web Services コンソールで EC2 インスタンスに移動します。
aggregation-service-operator-dev-envという名前のインスタンスをクリックします。- インスタンス ページで、[詳細] > [AMI(Amazon マシンイメージ)] を見つけます。
- バージョン名は画像パスに含める必要があります。たとえば、次のパスのバージョン番号は
v2.9.1です。- 注: これは、事前構築済みのアセットを使用している場合に該当します。使用していない場合は、ご自身で名前を付けてタグ付けした画像と一致している必要があります。(例:
aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z)
- 注: これは、事前構築済みのアセットを使用している場合に該当します。使用していない場合は、ご自身で名前を付けてタグ付けした画像と一致している必要があります。(例:
次のステップ
集計サービスの問題の解決策が見つからない場合は、GitHub の問題を報告するか、テクニカル サポート フォームを送信して、Google にお知らせください。