環境(新規またはアップグレード)を診断する

集計サービスを使用する際に、レポートの形式、出力ドメインの問題、コーディネーターの問題など、さまざまな要因によって問題が発生する可能性があります。問題を正確に診断するには、エラーの発生源とそれに含まれるメタデータを理解することが重要です。

ガイドのトピック:

クライアント測定 API の設定を確認する

オリジン サーバーが正しく登録されていることを確認したら、次の手順を行います。

  1. レポートのトリガー方法を確認します。使用している API に応じて正しいレポート形式を受け取っていることを確認します。

    • Attribution Reporting API
    • Private Aggregation API
      • Private Aggregation API でのレポートは、contributeToHistogram 関数を使用して完了できます。バケットのキーと値が渡されていることを確認します。バケットキーは BigInt 形式にする必要があります。(詳しくは、Private Aggregation API をご覧ください)。
  2. 推奨どおりにレポートをトリガーしているにもかかわらず問題が解決しない場合は、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

オリジン サーバーが正しく登録されていることを確認したら、次の手順を完了します。

  1. レポートのトリガー方法を確認します。使用している API に応じて正しいレポート形式を受け取っていることを確認します。

  2. 推奨どおりにレポートをトリガーしても問題が解決しない場合は、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 API

Private Aggregation API の場合、Private Aggregation API の説明の「Aggregation coordinator choice」セクションの例を使用して、`aggregationCoordinatorOrigin` を定義する必要があります。aggregationCoordinatorOrigin として https://publickeyservice.msmt.gcp.privacysandboxservices.com を指定してください。

次に例を示します。

                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 を自分でビルドしてください。

確認するには、次の手順を行います。

  1. aggregatable_report_converter ツールを使用すると、.well-known エンドポイントから収集した集計可能なレポートを AVRO に変換し、出力ドメインキーを作成できます。(注: 出力ドメイン ファイルは 16 バイトのビッグ エンディアン バイト文字列である必要があります)。

  2. パブリック クラウド プロバイダの 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_nameinput_data_blob_prefixoutput_data_bucket_nameoutput_data_blob_prefix フィールドは正しいですか?入力レポートのデータロケーションに、処理するレポートはありますか?レポートと出力ドメインのストレージの場所から読み取る権限がありますか?

確認するには、次の手順を行います。

  1. 集計レポートを確認します。

    • 集計レポートを生成し、aggregatable_report_converter ツールを使用して出力ドメインAVRO 形式に変換します。
    • この集計可能なレポートと出力ドメイン ファイルを使用して createJob リクエストを実行します。
    • SUCCESS が返された場合、集計可能なレポートはそのままです。エラーが返された場合は、集計可能レポート、またはレポートとドメインの両方に問題があります。
    • 次のステップに進んで、ドメイン ファイルを確認します。
  2. 出力ドメイン ファイルを確認します。

    • 出力ドメイン ファイルを生成し、aggregatable_report_converter ツールを使用して集計可能レポートを作成します。
    • この集計可能なレポートと出力ドメイン ファイルを使用して createJob リクエストを実行します。
    • SUCCESS が返された場合は、出力ドメインはそのまま残っており、集計可能なレポートを作成するコードに問題があることを意味します。
    • 次のステップに進んで shared_info を確認します。
  3. 共有された情報を確認します。

    • デバッグが有効になっているレポートがあることを確認します。デバッグが有効になっているレポートには、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 の手順

  1. [Compute Engine] > [VM インスタンス] に移動します。
  2. 名前に -worker- が含まれる仮想マシン インスタンスをクリックします。
  3. Custom Metadata セクションを見つけて、キー tee-image-reference を探します。
  4. 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 の手順

  1. Amazon Web Services コンソールで EC2 インスタンスに移動します。
  2. aggregation-service-operator-dev-env という名前のインスタンスをクリックします。
  3. インスタンス ページで、[詳細] > [AMI(Amazon マシンイメージ)] を見つけます。
  4. バージョン名は画像パスに含める必要があります。たとえば、次のパスのバージョン番号は v2.9.1 です。
    • 注: これは、事前構築済みのアセットを使用している場合に該当します。使用していない場合は、ご自身で名前を付けてタグ付けした画像と一致している必要があります。(例: aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z

次のステップ

集計サービスの問題の解決策が見つからない場合は、GitHub の問題を報告するか、テクニカル サポート フォームを送信して、Google にお知らせください。