Диагностика вашей среды (новая или обновленная)

Множество факторов могут создавать проблемы при работе с Aggregation Service, включая форматирование отчетов, проблемы с выходным доменом и проблемы с координатором. Важно понимать источник ошибки и любые метаданные, которые он содержит, чтобы точно диагностировать проблему.

Темы руководства:

Проверьте настройку API клиентских измерений

Убедившись, что ваш исходный сервер зарегистрирован должным образом, выполните следующие действия:

  1. Проверьте, как вы запускаете отчеты. Подтвердите, что вы получаете правильный формат отчета в соответствии с используемым API:

    • API для создания отчетов об атрибуции
    • Частный API агрегации
      • Отчетность в API Private Aggregation может быть завершена с помощью функции contributeToHistogram . Убедитесь, что вы передаете ключ и значение контейнера. Ключ контейнера должен быть в формате BigInt . (Подробнее API Private Aggregation )
  2. Если вы запускаете отчеты в соответствии с рекомендациями, но проблема по-прежнему возникает, проверьте, нет ли ошибок в консоли разработчика Chrome на вкладках «Консоль» и «Сеть».

Если вам требуется дополнительная поддержка по устранению неполадок для этих клиентских API, перейдите к нашему руководству по отладке для API отчетов об атрибуции и API частного агрегирования + общего хранилища .

Устранение неполадок с настройкой источника отчетов

Сервер-источник отчетов — это то место, где вы объявили правильные соответствующие .well-known конечные точки, куда будут отправляться агрегированные отчеты. Убедитесь, что ваш развернутый сервер-источник отчетов был правильно зарегистрирован и зарегистрирован.

Получает ли ваш источник отчетов отчеты?

Проверьте, что ваш развернутый сервер-источник отчетов был правильно зарегистрирован и зарегистрирован. На этом сервере вы объявили правильные соответствующие .well-known конечные точки, куда будут отправляться агрегированные отчеты.

API измерения на стороне клиента Соответствующая агрегируемая конечная точка
Отчетность об атрибуции POST /.well-known/attribution-reporting/report-aggregate-attribution
Частная агрегация + общее хранилище (комбо) POST /.well-known/частное-агрегирование/отчет-общее-хранилище
Частная агрегация + защищенная аудитория (комбо) POST /.well-known/private-aggregation/report-protected-audience

Убедившись, что ваш исходный сервер зарегистрирован правильно, выполните следующие действия:

  1. Проверьте, как вы запускаете отчеты. Подтвердите, что вы получаете правильный формат отчета в соответствии с используемым API:

  2. Если вы запускаете отчеты в соответствии с рекомендациями, но проблема по-прежнему возникает, проверьте, нет ли ошибок в консоли разработчика Chrome на вкладках «Консоль» и «Сеть».

Если вам требуется дополнительная поддержка по устранению неполадок для этих клиентских API, продолжайте следовать руководству по отладке для API отчетов об атрибуции и API частного агрегирования + общего хранилища .

Устранение неполадок в ваших сводных отчетах

Агрегированные отчеты генерируются API измерения на стороне клиента и отправляются в ваш источник отчетов. Эти отчеты должны быть преобразованы в формат AVRO вашей конечной точкой отчетов. Если возникли проблемы с этим преобразованием или если сами отчеты не являются целыми, вы можете увидеть ошибки в службе агрегации.

Правильно ли конвертируются ваши агрегированные отчеты?

Убедитесь, что ваша конечная точка отчетности ( .well-known/… ) правильно преобразует данный агрегируемый отчет JSON в AVRO .

Из-за этой проблемы могут возникнуть следующие ошибки API:

Ошибка ОШИБКА_РАСШИФРОВКИ
Пример
                "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, а затем преобразуются в массив байтов. Если вы видите более одного счетчика ошибок, вы можете узнать больше об ошибках на странице 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": []
                    }
                }
            
Проверять API для создания отчетов об атрибуции

Для API Attribution Reporting эта ошибка может быть вызвана проблемой с регистрацией триггера. Проверьте, зарегистрировали ли они свой триггер в правильном облаке с помощью поля aggregation_coordinator_origin ( инструкции здесь ). Вы также можете предоставлять зашифрованные AWS отчеты для своего развертывания Google Cloud Aggregation Service или зашифрованные Google Cloud отчеты для своего развертывания AWS. Попросите их проверить, какая конечная точка открытого ключа использовалась для шифрования агрегируемых отчетов. Для Google Cloud поле `aggregation_coordinator_origin` в агрегируемом отчете должно быть https://publickeyservice.msmt.gcp.privacysandboxservices.com. Для AWS это https://publickeyservice.msmt.aws.privacysandboxservices.com.

Частный API агрегации

Для API Private Aggregation вам придется определить `aggregationCoordinatorOrigin`, используя пример в разделе Выбор координатора Aggregation в объяснении API Private Aggregation. Пожалуйста, укажите https://publickeyservice.msmt.gcp.privacysandboxservices.com в качестве 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 .

Для проверки выполните следующие шаги:

  1. Вы можете использовать инструмент aggregatable_report_converter для преобразования агрегируемых отчетов, собранных вами из конечной точки .well-known, в AVRO и создания ключей выходного домена . (Примечание: файлы выходного домена должны представлять собой 16-байтовую строку байтов с прямым порядком байтов .)

  2. Следуйте инструкциям в кодовой лаборатории для вашего поставщика общедоступного облака, чтобы собрать отчеты об отладке и запустить задание Aggregation Service, используя ключи выходного домена: a. Google Cloud: выполните шаги 3.1.2–3.2.3 из кодовой лаборатории Aggregation Service Google Cloud . b. Amazon Web Services: выполните шаги 4.2–5.3 из кодовой лаборатории Aggregation Service AWS .

Если возвращается ответ SUCCESS , ваше преобразование работает.

Ваши агрегированные отчеты не повреждены?

Проверьте, что ваш совокупный отчет, выходные доменные ключи и общая информация не повреждены. Обратитесь к примерам кодов для преобразования агрегируемых отчетов и создания файлов домена, если вам нужна дополнительная информация.

Ошибки API, которые вы можете увидеть и которые соответствуют этой проблеме, следующие:

Ошибка ВВОД_ДАННЫХ_СЧИТАНО_НЕУДАЧНО
Конечная точка создатьРаботу
Проверять Правильно ли указаны поля input_data_bucket_name , input_data_blob_prefix , output_data_bucket_name и output_data_blob_prefix в запросе createJob ? Содержит ли расположение данных входного отчета отчеты для обработки? Есть ли у вас разрешение на чтение из расположения хранилища отчетов и выходного домена?

Для проверки выполните следующие шаги:

  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 все еще поддерживается. После того, как вы определили, какую версию вы используете, проверьте список выпусков Aggregation Service и убедитесь, что ваша версия не имеет предупреждения об окончании поддержки: This release has reached its end of support on { date } . Следующие инструкции по определению того, какая версия у вас развернута, предназначены для поддерживаемых публичных облаков.

Шаги для Google Cloud

  1. Перейдите в папку Compute Engine > Экземпляры виртуальной машины .
  2. Щелкните по экземпляру виртуальной машины, в имени которого есть -worker- .
  3. Найдите раздел Custom Metadata , а затем найдите ключ tee-image-reference .
  4. Значение tee-image-reference будет содержать номер версии. Например, номер версии следующего пути — v2.9.1 . Это готовые образы, которые находятся в реестре артефактов проекта Google Cloud.
    • Примечание: это актуально, если вы используете готовые ресурсы. Если нет, то это должно соответствовать тому, как вы лично назвали и пометили свой образ. (пример: us.docker.pkg.dev/<gcp_project_name>/artifacts:aggregation-service- container-artifacts-worker_mp_go_prod:2.9.1 )

Действия для Amazon Web Services

  1. Перейдите в раздел EC2 Instances в консоли Amazon Web Services.
  2. Щелкните экземпляр с именем aggregation-service-operator-dev-env .
  3. На странице экземпляра найдите Details > AMI (Amazon Machine Image)
  4. Имя вашей версии должно быть включено в путь к образу. Например, номер версии следующего пути — v2.9.1 .
    • Примечание: это актуально, если вы используете готовые ресурсы. Если нет, то это должно соответствовать тому, как вы лично назвали и пометили свое изображение. (пример: aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z )

Следующие шаги

Если вы не видите решения вашей проблемы со службой агрегации, сообщите нам об этом, опубликовав сообщение о проблеме на GitHub или отправив форму технической поддержки .