При работе со службой агрегации могут возникать проблемы из-за множества факторов, включая форматирование отчетов, проблемы с доменом вывода и проблемы с координатором. Важно понимать источник ошибки и содержащиеся в ней метаданные, чтобы точно диагностировать проблему.
Темы руководства:
- Проверьте настройку API для измерения параметров клиента.
- Устранение неполадок в настройке источника отчетов
- Устранение неполадок в сводных отчетах
- Проверьте версию развертывания.
Проверьте настройку API для измерения параметров клиента.
После того, как вы убедитесь в правильности регистрации вашего исходного сервера, выполните следующие шаги:
Проверьте, как вы запускаете отчеты. Убедитесь, что получаете отчеты в правильном формате в зависимости от используемого API:
- API для составления отчетов об атрибуции
- Для API отчетов по атрибуции убедитесь, что источник ( событие и сводка ) успешно зарегистрирован. Для регистрации триггера ( событие и сводка ) проверьте корректность JSON-данных, передаваемых в
Attribution-Reporting-Register-Triggerиспользуя инструмент проверки заголовков . (Подробнее о сводных отчетах API отчетов по атрибуции )
- Для API отчетов по атрибуции убедитесь, что источник ( событие и сводка ) успешно зарегистрирован. Для регистрации триггера ( событие и сводка ) проверьте корректность JSON-данных, передаваемых в
- API частной агрегации
- Создание отчетов в рамках API частной агрегации можно выполнить с помощью функции
contributeToHistogram. Убедитесь, что вы передаете ключ и значение сегмента. Ключ сегмента должен быть в форматеBigInt. (Подробнее об API частной агрегации )
- Создание отчетов в рамках API частной агрегации можно выполнить с помощью функции
- API для составления отчетов об атрибуции
Если вы запускаете отчеты, как рекомендовано, но проблема все еще сохраняется, проверьте, нет ли ошибок в консоли разработчика Chrome на вкладках «Консоль» и «Сеть».
Если вам потребуется дополнительная помощь в устранении неполадок с этими клиентскими API, перейдите к нашим рекомендациям по отладке для API Attribution Reporting и Private Aggregation API + Shared Storage .
Устранение неполадок в настройке источника отчетов
Сервер-источник отчетов — это место, где вы указали соответствующие конечные точки .well-known куда будут отправляться агрегированные отчеты. Убедитесь, что развернутый вами сервер-источник отчетов правильно зарегистрирован и выполнена процедура регистрации.
Получает ли ваш источник информации отчеты?
Убедитесь, что развернутый вами сервер-источник отчетов правильно зарегистрирован. На этом сервере вы указали соответствующие конечные точки .well-known куда будут отправляться агрегированные отчеты.
| API для измерения на стороне клиента | Соответствующая агрегируемая конечная точка |
|---|---|
| Отчеты об атрибуции | POST /.well-known/attribution-reporting/report-aggregate-attribution |
| Частная агрегация + общее хранилище (комбинация) | POST /.well-known/private-aggregation/report-shared-storage |
| Приватная агрегация + Защищенная аудитория (Комбинация) | POST /.well-known/private-aggregation/report-protected-audience |
После того, как вы убедитесь в правильности регистрации вашего исходного сервера, выполните следующие шаги:
Проверьте, как вы запускаете отчеты. Убедитесь, что получаете отчеты в правильном формате в зависимости от используемого API:
Если вы запускаете отчеты, как рекомендовано, но проблема все еще сохраняется, проверьте, нет ли ошибок в консоли разработчика 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, а затем в массив байтов. Если вы видите более одного сообщения об ошибке, вы можете узнать больше об ошибках на странице 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 отчетов по атрибуции эта ошибка может быть вызвана проблемой с регистрацией триггера. Убедитесь, что они зарегистрировали свой триггер в правильном облаке, используя поле 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. API частной агрегации Для использования Private Aggregation API вам потребуется определить `aggregationCoordinatorOrigin`, используя пример из раздела «Выбор координатора агрегации» в пояснении к Private Aggregation API. Укажите https://publickeyservice.msmt.gcp.privacysandboxservices.com в качестве Например:
sharedStorage.run('someOperation', {'privateAggregationConfig':
{'aggregationCoordinatorOrigin': ' https://publickeyservice.msmt.gcp.privacysandboxservices.com'}});
|
| Ошибка | ОШИБКА ПРИ ПОЛУЧЕНИИ КЛЮЧА ДЕКРИПЦИИ |
|---|---|
| Пример |
"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 байт в порядке байтов big-endian .)Выполните действия, описанные в практическом руководстве для вашего поставщика общедоступного облачного сервиса, чтобы собрать отладочные отчеты и запустить задание службы агрегации, используя ключи вашего выходного домена: a. Google Cloud: выполните шаги 3.1.2–3.2.3 из практического руководства по службе агрегации Google Cloud. b. Amazon Web Services: выполните шаги 4.2–5.3 из практического руководства по службе агрегации AWS .
Если в ответе будет указано SUCCESS , значит, преобразование работает.
Сохранилась ли целостность ваших сводных отчетов?
Убедитесь, что ваш сводной отчет, ключи выходного домена и общая информация целы. Для получения дополнительной информации обратитесь к примерам кода для преобразования сводных отчетов и создания файлов домена.
К числу ошибок API, которые могут соответствовать данной проблеме, относятся следующие:
| Ошибка | INPUT_DATA_READ_FAILED |
|---|---|
| Конечная точка | создатьВакансии |
| Проверять | Правильно ли указаны поля input_data_bucket_name , input_data_blob_prefix , output_data_bucket_name и output_data_blob_prefix в запросе createJob ? Содержит ли местоположение входных данных отчетов отчеты, подлежащие обработке? Есть ли у вас разрешение на чтение из места хранения отчетов и выходного домена? |
Для проверки выполните следующие шаги:
Проверьте сводный отчет:
- Сгенерируйте сводные отчеты и используйте инструмент
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 > Экземпляры виртуальных машин .
- Щелкните по экземпляру виртуальной машины, в имени которого присутствует
-worker-. - Найдите раздел
Custom Metadata, а затем найдите ключtee-image-reference.- Примечание: Каждая виртуальная машина, созданная в Google Cloud с помощью Terraform, должна содержать эти метаданные ( метаданные
tee-image-referenceв модуле worker ).
- Примечание: Каждая виртуальная машина, созданная в Google Cloud с помощью Terraform, должна содержать эти метаданные ( метаданные
- Значение параметра
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
- Перейдите в раздел «Экземпляры EC2» в консоли Amazon Web Services.
- Щелкните по экземпляру с именем
aggregation-service-operator-dev-env. - На странице экземпляра найдите раздел «Подробности» > «AMI (образ машины Amazon)».
- Название вашей версии должно быть указано в пути к образу. Например, номер версии для следующего пути —
v2.9.1.- Примечание: Это актуально, если вы используете предварительно созданные ресурсы. Если нет, то это должно соответствовать тому, как вы лично назвали и пометили свой образ. (Пример:
aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z)
- Примечание: Это актуально, если вы используете предварительно созданные ресурсы. Если нет, то это должно соответствовать тому, как вы лично назвали и пометили свой образ. (Пример:
Следующие шаги
Если вы не нашли решения проблемы с вашей службой агрегации, сообщите нам об этом, создав заявку на GitHub или заполнив форму технической поддержки .