Aggregation Service の使用中に問題が発生する原因は、レポートの形式、出力ドメインの問題、コーディネーターの問題など、複数あります。問題を正確に診断するには、エラーの原因とそれに含まれるメタデータを理解することが重要です。
ガイドのトピック:
クライアント測定 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 + 共有ストレージ(組み合わせ) | 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 進数形式に変換され、バイト配列に変換されます。エラー数が複数ある場合は、Aggregation Service の 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 で暗号化されたレポートを Aggregation Service の 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 の説明の「集計コーディネータの選択」セクションの例を使用して、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 ジョブを実行します。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 のバージョンが引き続きサポートされていることを確認します。使用しているバージョンを確認したら、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 に通知してください。